C3D Toolkit  Kernel - 107186, Vision - 190715.107186

DimensionGeometry является базовым классом геометрий для двумерных представлений линейных, радиальных, угловых размеров. Подробнее...

#include <vsn_dimensiongeometry.h>

+ Граф наследования:DimensionGeometry:
+ Граф связей класса DimensionGeometry:

Открытые типы

enum  TextOrientation { to_Freeze, to_ScreenOnly, to_Readable }
 

Открытые члены

virtual ~DimensionGeometry ()
 Деструктор.
 
DimensionGeometry::TextOrientation GetTextOrientation () const
 Вернуть ориентацию текста на размерной линии.
 
TextVPosition GetTextVPosition () const
 Получить вертикальное выравнивание текста.
 
TextHPosition GetTextHPosition () const
 Получить горизонтальное выравнивание текста.
 
bool IsValid () const
 Вернуть true, если размер полностью определен.
 
Color GetColorLabel () const
 Вернуть цвет текста размера.
 
void SetColorLabel (const Color &color)
 Установить цвет текста размера.
 
double GetExtensionLineHeight () const
 Вернуть высоту выносной линии.
 
void SetExtensionLineHeight (double extHeight)
 Установить высоту выносной линии.
 
double GetValue () const
 Вернуть измеренное значение.
 
const MbPlaneGetPlane () const
 Установить ориентацию текста на размерной линии. Подробнее...
 
virtual void SetPlane (const MbPlane &plane)
 Установить плоскость размера, в которой будет вычисляться представление 2D - размера.
 
virtual const MbCubeGetBoundingBox () override
 Выдать габаритный куб.
 
virtual String GetDefaultUnits () const
 Вернуть единицы измерения по умолчанию, являющиеся идентичными единицам измерения модели для правильной конвертации.
 
virtual void SetDefaultUnits (const String &units)
 Установить единицы измерения по умолчанию, являющиеся идентичными единицам измерения модели для правильной конвертации.
 
virtual String GetOutputUnits () const
 Вернуть единицы измерения для вывода.
 
virtual void SetOutputUnits (const String &units)
 Установить единицы измерения для вывода.
 
bool IsTextPositionUser () const
 Вернуть true, если положение текста задано пользователем с помощью функции SetTextPosition.
 
virtual const MbCartPoint3D GetTextPosition () const
 Получить позицию текста 2D - размера.
 
virtual void SetTextPosition (const MbCartPoint3D &textPos)
 Установить позицию текста 2D - размера.
 
virtual double CalculateValue () const
 Вернуть вычисленное значение измерения.
 
- Открытые члены унаследованные от AnnotationGeometry
virtual ~AnnotationGeometry ()
 Деструктор.
 
virtual bool IsAnnotation () const
 Проверить является ли геометрия аннатационным.
 
- Открытые члены унаследованные от MeshGeometry
 MeshGeometry (Node *pParent=nullptr)
 Конструктор по умолчанию.
 
virtual ~MeshGeometry ()
 Деструктор.
 
virtual size_t GetFaceCount (size_t indexLod) const
 Получить число граней.
 
virtual size_t GetVertexCount () const
 Получить число вершин.
 
size_t GetNormalCount () const
 Получить число нормалей.
 
bool IsActiveColorVertex () const
 Является ли цвет вершины активным.
 
void SetActiveColorVertex (bool bActive)
 Задать необходимость использования индексированных цветов в вершинах.
 
size_t GetLevelsDetail () const
 Получить число уровней детализации.
 
std::vector< float > GetPositions () const
 Получить контейнер позиций.
 
std::vector< float > GetNormals () const
 Получить контейнер нормалей.
 
std::vector< float > GetTexels () const
 Получить контейнер текселей.
 
bool IsExistTriangles (int indexLod, NodeKey materialId) const
 Находится ли триангуляция в контейнере уровней детализации.
 
std::vector< uint > GetTriIndices (int indexLod, NodeKey materialId) const
 Получить указанные индексы триангуляции.
 
std::list< uint > GetSimilarTriStripsFansIndex (int lod, NodeKey materialId)
 Получить индексы треугольников, не зависящие от уровня детализации и материала.
 
size_t GetTriangleCount (int lod, NodeKey materialId) const
 Получить число треугольников в массиве уровней детализации.
 
bool IsExistStrips (int lod, NodeKey materialId) const
 Содержит ли объект сетку с заданным материалом.
 
std::vector< std::vector< uint > > GetTriStripsIndex (int lod, NodeKey materialId) const
 Получить индексы триангуляции.
 
int GetTriStripCount (int lod, NodeKey materialId) const
 Получить число треугольников, соответствующих уровню детализации.
 
bool IsExistFans (int lod, NodeKey materialId) const
 Есть ли треугольники, соответствующие заданному уровню детализации и материалу.
 
std::vector< std::vector< uint > > GetTriFansIndex (int lod, NodeKey materialId) const
 Получить индексы триангуляции.
 
int GetTriFansCount (int lod, NodeKey materialId) const
 Получить количество треугольников, соответствующих уровню детализации и материалу.
 
bool IsExistLevelOfDetail (int lod) const
 Есть ли уровень детализации с заданным идентификатором.
 
bool LevelOfDetailIncludesMaterial (int lod, NodeKey materialId) const
 Включен ли материал для указанного уровня детализации.
 
double GetAccuracyLevelOfDetail (int lod) const
 Получить точность расчёта заданного уровня детализации.
 
uint GetNextPrimitiveId () const
 Получить идентификатор следующего примитива.
 
MaterialGetMaterialPrimitiveById (uint id, int lod=0) const
 Получить материал примитива по указанному идентификатору и уровню детализации.
 
std::set< uint > GetArrayIDsPrimitives () const
 Получить идентификаторы примитивов.
 
bool IsEmpty () const
 Пуст ли объект.
 
MeshGeometryCreateMeshByIndexLod (int lodIndex)
 Создать сетку уровня детализации.
 
MeshGeometryCreateMeshFromByIndexLod (int lodIndex)
 Создать сетку уровня детализации.
 
virtual void TransformVerticesByMatrix (const MbMatrix3D &matrix) override
 Преобразовать вершины сетки по матрице.
 
virtual double GetVolume ()
 Получить объем геометрии.
 
virtual void UpdateMesh (MbMesh *pMeshItem)
 Обновить полигональную модель объекта.
 
virtual void Clear ()
 Очистить всю геометрию.
 
void ClearMeshGeometry ()
 Очистить объект и все уровни детализации.
 
void AddVertices (const std::vector< float > &vertices)
 Добавить координаты вершин.
 
void AddNormals (const std::vector< float > &normals)
 Добавить нормали.
 
void AddTexels (const std::vector< float > &texels)
 Добавить тексели.
 
void AddColors (const std::vector< float > &colors)
 Добавить цвета.
 
uint AddTriangles (TypeTriangulation type, Material *pMaterial, const std::list< uint > &, int lod=0, double accuracy=0.0)
 Добавить триангуляцию и вернуть идентификатор.
 
void ReverseNormals ()
 Инвертировать направление всех нормалей.
 
void CloseMesh ()
 Завершить подготовку объекта, данные которого заданы.
 
virtual void SetLevelDetail (int value)
 Задать уровень детализации от 0 до 100.
 
virtual void ReplaceMainMaterial (Material *)
 Заменить основной материал указанным.
 
void ReplaceMaterial (NodeKey, Material *)
 Заменить материал с заданным идентификатором.
 
void SetNextLocalId (uint id)
 Задать идентификатор примитива.
 
void SetWireframeColor (const Color &color)
 Задать цвет каркаса.
 
virtual void DuplicateVertexBufferToClientSide ()
 Скопировать буфер вершин в память.
 
virtual void ReleaseVertexBufferClientSide (bool update)
 Сформировать буфер вершин.
 
virtual void SetUseVertexBufferObjects (bool usage) override
 True, если буфер вершин используется.
 
- Открытые члены унаследованные от WireframeGeometry
 WireframeGeometry (Node *pParent=nullptr)
 Конструктор.
 
virtual ~WireframeGeometry ()
 Деструктор.
 
bool IsValid () const
 Действительна ли геометрия.
 
bool HasMaterial () const
 Задан ли материал.
 
MaterialGetHeadMaterial () const
 Получить первый материал из таблицы.
 
size_t GetMaterialCount () const
 Получить число материалов из таблицы.
 
MaterialGetMaterialById (NodeKey id) const
 Получить указатель, соответствующий идентификатору.
 
std::set< Material * > GetMaterialSet () const
 Получить таблицу материалов.
 
std::list< NodeKeyGetMaterialIds () const
 Получить список идентификаторов материалов.
 
bool HasMaterialById (NodeKey id) const
 Существует ли в таблице материал с заданным идентификатором.
 
const MbCubeGetWireBoundingBox ()
 Получить габаритный куб каркаса.
 
bool IsBoundingBoxValid () const
 Является ли габаритный куб допустимым.
 
bool IsTransparent () const
 Прозрачна ли геометрия.
 
bool IsExistTransparentMaterials () const
 Имеется ли прозрачный материал в таблице.
 
bool IsColorEachVertex () const
 Задан ли цвет каждой вершины.
 
void SetColorEachVertex (bool bColorEachVertex)
 Установить флаг назначения цвета для каждой вершины.
 
bool IsWireframe () const
 Является ли геометрия каркасной.
 
double GetLineWidth () const
 Получить толщину линии(перегружены для удобства).
 
void SetLineWidth (double lineWidth)
 Задать толщину линии(перегружены для удобства).
 
Color GetWireframeColor () const
 Получить цвет каркаса(перегружены для удобства).
 
void SetWireframeColor (const Color &color)
 Задать цвет каркаса(перегружены для удобства).
 
Pen GetPen () const
 Получить перо.
 
void SetPen (const Pen &pen)
 Задать перо.
 
bool IsWireframeEmpty () const
 Получить кисть. Подробнее...
 
std::vector< float > GetWireFrameVertexPositions () const
 Получить позиции вершин.
 
int GetPolylineCount () const
 Получить число полилиний.
 
uint GetPolylineOffset (int index) const
 Получить смещение полилинии с заданным индексом в контейнере.
 
int GetPolylineSize (int index) const
 Получить размер полилинии с данным индексом.
 
bool IsUsedVertexBuffer () const
 Используется ли вершинный буфер.
 
virtual bool IsIgnorePixelCulling () const
 Нужно ли учитывать геометрию в механизме PixelCulling.
 
virtual void IgnorePixelCulling (bool value)
 Запретить PixelCulling для этой геометрии.
 
void AddMaterial (Material *pMaterial)
 Добавить материал в таблицу.
 
virtual void UpdateTransparentMaterialCount () override
 Обновить число прозрачных материалов после операций с таблицей.
 
virtual void InvertNormals ()
 Инвертировать направление всех нормалей.
 
uint AddPoligonGroup (const std::vector< float > &vector)
 Добавить группу вершин и вернуть её идентификатор.
 
uint AddPoligonQuadrangleGroup (const std::vector< float > &vector)
 Добавить группу вершин четырехугольной сетки и вернуть её идентификатор.
 
void SetUseGlobalIdentifier (int global)
 Задать, будет ли использоваться глобальный идентификатор.
 
virtual void CopyVertexBufferToClientSide ()
 Скопировать буфер вершин в память.
 
virtual void DoRender (const RenderState &)
 Выполнить отрисовку.
 
- Открытые члены унаследованные от Geometry
 Geometry (Node *pParent=nullptr)
 Конструктор по умолчанию.
 
 Geometry (NodeKey id, const String &name)
 Конструктор.
 
virtual ~Geometry ()
 Деструктор.
 
std::vector< GeometryTraits * > GetGeometryTraits () const
 Вернуть список данных геометрии из этого объекта.
 
void AddGeometryTraits (GeometryTraits *pTraits)
 Добавить группу данных о геометрическом теле.
 
void RemoveGeometryTraits (GeometryTraits *pTraits)
 Удалить группу данных о геометрическом теле.
 
void SetDoubleSidedLighting (bool value)
 Разрешить двустороннее освещение.
 
bool IsDoubleSidedLighting () const
 Проверить использует ли геометрия двусторонее освещение.
 
virtual void UpdateGeometry ()
 Обновить геометрию по новым данным.
 
- Открытые члены унаследованные от Node
 Node (Node *pParent=nullptr)
 Конструктор по умолчанию.
 
 Node (const String &name)
 Конструктор по умолчанию.
 
 Node (NodeKey key, const String &name=String())
 Конструктор.
 
NodeKey GetUniqueKey () const
 Вернуть ключ, идентифицирующий экземпляр Node.
 
void SetUniqueKey (NodeKey key)
 Установить уникальный ключ для этого экземпляра.
 
NodeKey GetCustomKey () const
 Вернуть пользовательский ключ, идентифицирующий экземпляр Node.
 
void SetCustomKey (NodeKey key)
 Установить пользовательский уникальный ключ для этого экземпляра.
 
NodeGetParentNode () const
 Вернуть указатель на родительский объект или NULL, если родителя нет.
 
bool IsEnabled () const
 Вернуть флаг включение узла. По умолчанию флаг всегда включен.
 
void SetParent (Node *pParent)
 Установить родительский объект для этого объекта.
 
bool IsNotificationsBlocked () const
 Вернуть True, если уведомления заблокированы, в противном случае False.
 
bool SetBlockNotifications (bool block)
 Установить блокировку уведомлений и вернуть предыдущее значение блокировки.
 
- Открытые члены унаследованные от Object
 Object (const String &name=String())
 Конструктор по умолчанию.
 
 Object (Object *pParent)
 Конструктор c родителем.
 
virtual ~Object ()
 Деструктор.
 
void SetParent (Object *pParent)
 Установить родителя для объекта.
 
MutexGetMutex ()
 Мьютекс объекта.
 
String GetObjectName () const
 Получить имя объекта.
 
void SetObjectName (const String &name)
 Установить имя объекту.
 
bool IsControlType () const
 Вернуть тип объекта.
 
ObjectGetParent () const
 Вернуть указатель на родителя.
 
Variant GetProperty (const char *name) const
 Вернуть вариант свойства по имени.
 
bool IsSignalsBlocked () const
 Вернуть признак блокировки сигналов этого объекта.
 
bool SetBlockSignals (bool bBlock)
 Установить признак блокировки сигналов этого объекта.
 
void AddEventListener (Object *obj)
 Добавить слушателя событий.
 
void RemoveEventListener (Object *obj)
 Удалить слушателя событий.
 
ObjectGetSender () const
 Вернуть указатель на объект, который с генерировал сигнал.
 
Thread * GetThread () const
 NO TRANSLATION.
 
void BindWithThread (Thread *thread)
 Связывание c потоком.
 
int StartTimer (int interval, TimerType timerType=tt_CoarseTimer)
 NO TRANSLATION.
 
void KillTimer (int id)
 NO TRANSLATION.
 
const std::vector< Object * > & GetChildren () const
 Вернуть список указателей детей.
 
template<typename T >
FindChild (const String &objName=String(), VSN::ChildFindingPolicies policies=VSN::FindAllNestedChildren) const
 Вернуть указателей на ребенка.
 
template<typename T >
std::vector< T > FindChildren (const String &objName=String(), VSN::ChildFindingPolicies policies=VSN::FindAllNestedChildren) const
 Вернуть список указателей детей.
 
- Открытые члены унаследованные от BasicObject
 BasicObject ()
 Конструктор по умолчанию.
 
virtual ~BasicObject ()
 Деструктор.
 

Открытые статические члены

static void SetDefaultFont (const String &str)
 Установить шрифт по умолчанию.
 

Защищенные члены

 DimensionGeometry ()
 Конструктор по умолчанию.
 
 DimensionGeometry (DimensionGeometryPrivate &dd, Node *pParent)
 Конструктор с параметрами.
 
- Защищенные члены унаследованные от AnnotationGeometry
 AnnotationGeometry (AnnotationGeometryPrivate &dd, Node *pParent=nullptr)
 Конструктор для внутреннего использования.
 
- Защищенные члены унаследованные от MeshGeometry
void RenderWireframe (const RenderState &state)
 Отрисовка каркаса.
 
 MeshGeometry (MeshGeometryPrivate &dd, Node *pParent)
 Конструктор для внутреннего использования.
 
- Защищенные члены унаследованные от WireframeGeometry
virtual void OGLInitGeom (const RenderState &)
 Выполнить отрисовку.
 
void ClearWireframe ()
 Очистить всю каркасную геометрию.
 
 WireframeGeometry (WireframeGeometryPrivate &dd, Node *pParent)
 Конструктор для внутреннего использования.
 
- Защищенные члены унаследованные от Geometry
 Geometry (GeometryPrivate &dd, Node *pParent)
 Конструктор для внутреннего использования.
 
- Защищенные члены унаследованные от Node
 Node (NodePrivate &dd, Node *pParent)
 Установить флаг включения узла. Подробнее...
 
virtual ~Node ()
 Деструктор.
 
virtual void SceneModificationEvent (const std::shared_ptr< SceneModification > &modification)
 Эта функция вызывается, если произошли какие-либо изменения в сцене.
 

Подробное описание

DimensionGeometry является базовым классом геометрий для двумерных представлений линейных, радиальных, угловых размеров.

DimensionGeometry обеспечивает измерение величин, таких как длина, радиус или плоские углы. Измерение размера выполняется в пространстве всей модели. Значения измерения представлены в единицах модели, указанных пользователем. Во время отображения измеренное значение преобразуется из единицы модели в единицу отображения. Для отрисовки DimensionGeometry состоит из следующих примитивов:

  • основные точки привязок - точки, которыми размер крепится на размерной плоскости;
  • основная размерная линия, которая простирается от точек привязок в направлении вверх и содержит метку с текстом расчитанного значения, например, длины;
  • выносные линии - линии, которые содержат точки крепления с основной размерной линией;
  • линии расширения - линии, использующиеся для расширения основной размерной линии в случаях, когда текст или стрелки не вписываются в основную размерную линию из-за их размера;
  • стрелки, обозначающие конец основной размерной линии.
    Как правило, в 2D-чертежах размеры создаются на размерной плоскости, которую можно рассматривать как местоположение (placement) для построения представления размера, представляющее собой начало отсчета координат и направленные оси. Соответственно, основная размерная линия будет представлена вдоль оси X, а выносные линии - вдоль оси Y. Это помогает пользователю представить, как размер будет расположен и ориентирован в пространстве модели. Ориентация размерной линии в пространстве относительно опорной фигуры определяется с помощью выносных линий. Вычисления указывают длину выносных линий и их ориентацию относительно точек крепления на рабочей плоскости. Для линейного размера: направление выносных линий определяется направлением главной размерной линии, т.е. вектором от первой точки крепления до второй точки крепления и нормалью размерной плоскости. Для углового размера: вылеты определяются векторами от центральной точки до точек привязки. Эти направления векторов должны быть положительными направлениями выносных линий. Отрицательные направления вылета означают, что эти векторы должны быть развернуты.

Размерная плоскость может быть построена автоматически приложением (где это возможно, все зависит от измеряемой геометрии). Также размерная плоскость может быть установлена пользователем. Если же пользовательская плоскость не соответствует геометрии измерения, т.е. точки крепления не принадлежат ей, размер не может быть построен. Если невозможно вычислить автоматическую плоскость, например, в случае длины между двумя точками, то пользователь должен указать пользовательскую плоскость самостоятельно.
.

Перечисления

◆ TextOrientation

Элементы перечислений
to_Freeze 

В плоскости размера.

to_ScreenOnly 

В плоскости экрана.

to_Readable 

В плоскости размера с поворотом по вектору взгляда.

Методы

◆ GetPlane()

const MbPlane& DimensionGeometry::GetPlane ( ) const

Установить ориентацию текста на размерной линии.

Установить вертикальное выравнивание текста. Установить горизонтальное выравнивание текста. Сигнал будет сгенерирован при модификации ориентации текста. Сигнал будет сгенерирован при модификации положения текста по вертикали. Сигнал будет сгенерирован при модификации положения текста по горизонтали. Получить плоскость размера, в которой вычисляется представление 2D - размера.


Объявления и описания членов класса находятся в файле: