Управление точностью распознавания
Одной из ключевых настроек преобразования полигональной сетки в модель с граничным представлением является значение точности распознавания. Точность работы метода определяется максимальным допустимым отклонением распознанных поверхностей от вершин полигональной сетки. Пользователь может задать требуемую в расчётах точность, или будет использоваться значение по умолчанию. В случае, когда параметр отклонения граней от сетки заранее не известен, можно использовать относительную точность, которая будет рассчитана исходя из размеров исходного тела. Таким образом, в случае неудовлетворительного результата действия алгоритма пользователь может влиять на него, изменяя параметр точности распознавания.
Для управления значением точности используются несколько функций класса MbMeshProcessor.
Метод
void SetRelativeTolerance( double tolerance );
устанавливает значение относительной точности. При использовании относительной точности отклонение граней тела от сетки проверяется относительно габаритов текущей сетки. Входным параметром метода является:
tolerance – значение относительной точности.
Для получения абсолютной погрешности распознавания значение tolerance будет умножено на диагональ габаритного куба полигональной сетки или коллекции элементов модели. Таким образом, при заданной относительной погрешности, равной 1.0, значение абсолютной погрешности будет посчитано, исходя из размеров модели.
Метод
void SetTolerance( double tolerance );
устанавливает абсолютную точность распознавания поверхностей и расширения сегментов сетки. Входным параметром метода является:
tolerance – значение абсолютной погрешности.
Данный метод должен быть вызван перед вызовом метода SegmentMesh(). По умолчанию абсолютная точность равна 0.1.
Метод
double GetTolerance() const;
передаёт значение текущей абсолютной точности, используемой при распознавании поверхностей и расширения сегментов сетки. Метод возвращает абсолютную погрешность значением типа double.