C3D Toolkit  Kernel - 118002, Vision - 2.10.0.4

Контейнер для визуальных объектов. Подробнее...

#include <vsn_rendercontainer.h>

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

 RenderContainer ()
 Конструктор по умолчанию.
 
 ~RenderContainer ()
 Деструктор.
 
bool IsEmpty () const
 Является ли контейнер пустым. Подробнее...
 
size_t GetSize () const
 Вернуть размер контейнера объектов сцены. Подробнее...
 
ObjectList< RenderObject * > GetObjects ()
 Вернуть все RenderObject из контейнера сцены. Подробнее...
 
ObjectList< RenderObject * > GetVisibleObjects ()
 Вернуть видимые RenderObject из контейнера сцены. Подробнее...
 
RenderObjectGetObjectById (const NodeKey &objKey) const
 Вернуть указатель на RenderObject по идентификатору из контейнера, если этот объект есть. Подробнее...
 
BoundingBox GetBoundingBox (bool allObjects=false) const
 Вернуть габаритный куб всех видимых объектов. Подробнее...
 
size_t GetSelectionCount () const
 Вернуть количество выбранных объектов. Подробнее...
 
bool IsExistViewObject3D (const NodeKey &objKey) const
 Вернуть true, если объект есть в контейнере объектов сцены. Подробнее...
 
bool IsSelected (const NodeKey &objKey) const
 Вернуть true, если элемент выделен. Подробнее...
 
bool GetShowState () const
 Вернуть состояние видимости. Подробнее...
 
int GetShowObjectsCount () const
 Вернуть количество видимых объектов. Подробнее...
 
bool IsSpacePartitioningUsed () const
 Вернуть true, если используется пространственное разбиение. Подробнее...
 
const std::shared_ptr< SpacePartitioning > GetSpacePartitioning () const
 Вернуть указатель на пространственное разбиение (Octree). Подробнее...
 
bool IsVisible () const
 Вернуть true, если контейнер видимый. Подробнее...
 
void SetVisible (bool bVisible)
 Установить состояние видимости контейнера. Подробнее...
 
bool AddObject (const RenderObject &obj, uint shaderId=0)
 Добавить визуальный объект в контейнер. Подробнее...
 
bool RemoveViewObject (const NodeKey &objId)
 Удалить объект из контейнера. Подробнее...
 
void Clear ()
 Удалить все объекты из контейнера.
 
bool SetSelectObject (const NodeKey &objKey, bool primitive=false)
 Выбрать объект по идентификатору. Подробнее...
 
void SelectAll (bool allShowState=false)
 Выбрать все объекты. Подробнее...
 
bool UnselectObject (const NodeKey &objKey)
 Снять выбор с объекта по идентификатору. Подробнее...
 
void UnselectAll ()
 Снять выбор со всех объектов.
 
void SetPolygonModeForAll (DrawBufferMode face, PolygonMode mode)
 Установить режим для отрисовки полигона. Подробнее...
 
void SetVisibleObject (const NodeKey &objKey, bool bVisible)
 Установить видимость объекта по идентификатору. Подробнее...
 
void SetVisibleAll ()
 Сделать все объекты в контейнере видимыми.
 
void SetInvisibleAll ()
 Сделать все объекты в контейнере невидимыми.
 
void SwitchVisibleState ()
 Изменить состояние видимости объектов в контейнере на противоположное.
 
bool IsLevelOfDetailEnabled () const
 Вернуть признак использования LOD. Подробнее...
 
void SetLevelOfDetailEnabled (bool bEnabled, Viewport *pView)
 Установить использование LOD. Подробнее...
 
void SetLinkSpatialSplit (std::shared_ptr< SpacePartitioning > pSpacePartitioning)
 Связать пространственное разбиение с контейнером объектов. Подробнее...
 
void UnlinkSpacePartitioning ()
 Отсоединить пространственное разбиение от контейнера объектов.
 
void SetSpatialSplitUsage (bool bSpacePartitioning)
 Установить признак использования пространственного разбиения. Подробнее...
 
void UpdateObjectVisibleState (Viewport *pViewport, Matrix3DF *pMatrix=nullptr)
 Обновить видимость объектов в усеченном конусе. Подробнее...
 
void UpdateObjectVisibleState (const Frustum &frustum)
 Обновить видимость по указанному усеченному конусу. Подробнее...
 
void SetViewport (Viewport *pViewport)
 Установить контейнеру viewport. Подробнее...
 
void PickObjectsInsideRect (const MbRect &rect, const Matrix3DF &viewMatrix, Filter filter, bool bUnifying, HitList &hits)
 Найти объекты, которые находятся в указанной область.
 
void DoRender (uint groupId, RenderMode renderingMode, Viewport *viewport=nullptr)
 Отрисовка групп контейнера. Подробнее...
 
RenderContainerIterator Begin () const
 Вернуть итератор на первый элемент.
 
RenderContainerIterator End () const
 Вернуть итератор на элемент, следующий за последним.
 

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

Контейнер для визуальных объектов.

Содержит таблицу визуальных объектов.

Методы

◆ IsEmpty()

bool VSN::RenderContainer::IsEmpty ( ) const

Является ли контейнер пустым.

Возвращает
Вернуть true, если контейнер пустой.

◆ GetSize()

size_t VSN::RenderContainer::GetSize ( ) const

Вернуть размер контейнера объектов сцены.

Возвращает
Размер контейнера.

◆ GetObjects()

ObjectList<RenderObject*> VSN::RenderContainer::GetObjects ( )

Вернуть все RenderObject из контейнера сцены.

Возвращает
Список всех RenderObject в контейнере сцены.

◆ GetVisibleObjects()

ObjectList<RenderObject*> VSN::RenderContainer::GetVisibleObjects ( )

Вернуть видимые RenderObject из контейнера сцены.

Возвращает
Список всех видимых RenderObject в контейнере сцены.

◆ GetObjectById()

RenderObject* VSN::RenderContainer::GetObjectById ( const NodeKey objKey) const

Вернуть указатель на RenderObject по идентификатору из контейнера, если этот объект есть.

Аргументы
[in]objKey- Идентификатор объекта.
Возвращает
Указатель на объект, может быть равен null.

◆ GetBoundingBox()

BoundingBox VSN::RenderContainer::GetBoundingBox ( bool  allObjects = false) const

Вернуть габаритный куб всех видимых объектов.

Аргументы
[in]allObjects- Если true, то вернуть габаритный куб только видимых объектов, в противном случае- всех объектов.
Возвращает
Объединённый габаритный куб.

◆ GetSelectionCount()

size_t VSN::RenderContainer::GetSelectionCount ( ) const

Вернуть количество выбранных объектов.

Возвращает
Количество выбранных объектов.

◆ IsExistViewObject3D()

bool VSN::RenderContainer::IsExistViewObject3D ( const NodeKey objKey) const

Вернуть true, если объект есть в контейнере объектов сцены.

Аргументы
[in]objKey- Идентификатор объекта.
Возвращает
True, если объект есть в контейнере.

◆ IsSelected()

bool VSN::RenderContainer::IsSelected ( const NodeKey objKey) const

Вернуть true, если элемент выделен.

Аргументы
[in]objKey- Идентификатор объекта.
Возвращает
True, если объект выделен.

◆ GetShowState()

bool VSN::RenderContainer::GetShowState ( ) const

Вернуть состояние видимости.

Вернуть состояние видимости, рассчитанное механизмом оптимизации.

Возвращает
True, если объект видим.

◆ GetShowObjectsCount()

int VSN::RenderContainer::GetShowObjectsCount ( ) const

Вернуть количество видимых объектов.

Возвращает
Количество видимых объектов.

◆ IsSpacePartitioningUsed()

bool VSN::RenderContainer::IsSpacePartitioningUsed ( ) const

Вернуть true, если используется пространственное разбиение.

Возвращает
True, если пространственное разбиение используется.

◆ GetSpacePartitioning()

const std::shared_ptr<SpacePartitioning> VSN::RenderContainer::GetSpacePartitioning ( ) const

Вернуть указатель на пространственное разбиение (Octree).

Возвращает
Указатель на пространственное разбиение.

◆ IsVisible()

bool VSN::RenderContainer::IsVisible ( ) const

Вернуть true, если контейнер видимый.

Возвращает
True, если контейнер видимый.

◆ SetVisible()

void VSN::RenderContainer::SetVisible ( bool  bVisible)

Установить состояние видимости контейнера.

Аргументы
[in]bVisible- Флаг видимости.

◆ AddObject()

bool VSN::RenderContainer::AddObject ( const RenderObject obj,
uint  shaderId = 0 
)

Добавить визуальный объект в контейнер.

Аргументы
[in]obj- Добавляемый объект.
[in]shaderId- Идентификатор шейдера.
Возвращает
True, если операция прошла успешно.

◆ RemoveViewObject()

bool VSN::RenderContainer::RemoveViewObject ( const NodeKey objId)

Удалить объект из контейнера.

Удалить объект из контейнера, а также убрать все связи с ним.

Аргументы
[in]objId- Удаляемый объект.
Возвращает
True, если операция прошла успешно.

◆ SetSelectObject()

bool VSN::RenderContainer::SetSelectObject ( const NodeKey objKey,
bool  primitive = false 
)

Выбрать объект по идентификатору.

Аргументы
[in]objKey- Идентификатор объекта.
[in]primitive- Флаг выбора примитивов.
Возвращает
True, если операция выполнена успешно.

◆ SelectAll()

void VSN::RenderContainer::SelectAll ( bool  allShowState = false)

Выбрать все объекты.

Аргументы
[in]allShowState- Установить статус выбора.

◆ UnselectObject()

bool VSN::RenderContainer::UnselectObject ( const NodeKey objKey)

Снять выбор с объекта по идентификатору.

Аргументы
[in]objKey- Визуальный объект.
Возвращает
True, если операция выполнена успешно.

◆ SetPolygonModeForAll()

void VSN::RenderContainer::SetPolygonModeForAll ( DrawBufferMode  face,
PolygonMode  mode 
)

Установить режим для отрисовки полигона.

Аргументы
[in]face- Указывает, к лицевой, тыльной или к обеим сторонам применяется опция, заданная вторым параметром. Может применять значения GL_FRONT, GL_BACK и GL_FRONT_AND_BACK.
[in]mode- Указывает, как будет рисоваться полигон. Он принимает значения: GL_POINT(рисует только точки), GL_LINE(рисует линии) и GL_FILL(рисует заполненные полигоны).

◆ SetVisibleObject()

void VSN::RenderContainer::SetVisibleObject ( const NodeKey objKey,
bool  bVisible 
)

Установить видимость объекта по идентификатору.

Аргументы
[in]objKey- Визуальный объект.
[in]bVisible- Флаг видимости.

◆ IsLevelOfDetailEnabled()

bool VSN::RenderContainer::IsLevelOfDetailEnabled ( ) const

Вернуть признак использования LOD.

Возвращает
True, если используются LOD.

◆ SetLevelOfDetailEnabled()

void VSN::RenderContainer::SetLevelOfDetailEnabled ( bool  bEnabled,
Viewport pView 
)

Установить использование LOD.

Аргументы
[in]bEnabled- Флаг использования LOD.
[in]pView- Viewport.

◆ SetLinkSpatialSplit()

void VSN::RenderContainer::SetLinkSpatialSplit ( std::shared_ptr< SpacePartitioning >  pSpacePartitioning)

Связать пространственное разбиение с контейнером объектов.

Аргументы
[in]pSpacePartitioning- Пространственное разбиение.

◆ SetSpatialSplitUsage()

void VSN::RenderContainer::SetSpatialSplitUsage ( bool  bSpacePartitioning)

Установить признак использования пространственного разбиения.

Аргументы
[in]bSpacePartitioning- Флаг использования пространственного разбиения.

◆ UpdateObjectVisibleState() [1/2]

void VSN::RenderContainer::UpdateObjectVisibleState ( Viewport pViewport,
Matrix3DF pMatrix = nullptr 
)

Обновить видимость объектов в усеченном конусе.

Аргументы
[in]pViewport- Указатель на Viewport.
[in]pMatrix- Новая матрица в усеченном конусе.

◆ UpdateObjectVisibleState() [2/2]

void VSN::RenderContainer::UpdateObjectVisibleState ( const Frustum &  frustum)

Обновить видимость по указанному усеченному конусу.

Аргументы
[in]frustum- Источник усечения.

◆ SetViewport()

void VSN::RenderContainer::SetViewport ( Viewport pViewport)

Установить контейнеру viewport.

Аргументы
[in]pViewport- Указатель на viewport.

◆ DoRender()

void VSN::RenderContainer::DoRender ( uint  groupId,
RenderMode  renderingMode,
Viewport viewport = nullptr 
)

Отрисовка групп контейнера.

Аргументы
[in]groupId- Идентификатор группы.
[in]renderingMode- Способ отрисовки.
[in]viewport- Параметры отображения.

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