C3D Toolkit  Kernel - 107448, Vision - 190805.107448

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

#include <vsn_rendercontainer.h>

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

 RenderContainer ()
 Конструктор по умолчанию.
 
virtual ~RenderContainer ()
 Деструктор.
 
bool IsEmpty () const
 Является ли контейнер пустым. Подробнее...
 
size_t GetSize () const
 Вернуть размер контейнера объектов сцены. Подробнее...
 
std::list< RenderObject * > GetObjects ()
 Вернуть все RenderObject из контейнера сцены. Подробнее...
 
std::list< RenderObject * > GetVisibleObjects ()
 Вернуть видимые RenderObject из контейнера сцены. Подробнее...
 
RenderObjectGetObjectById (NodeKey objKey)
 Вернуть указатель на RenderObject по идентификатору из контейнера, если этот объект есть. Подробнее...
 
MbCube GetBoundingBox (bool allObjects=false)
 Вернуть габаритный куб всех видимых объектов. Подробнее...
 
size_t GetSelectionCount () const
 Вернуть количество выбранных объектов. Подробнее...
 
std::map< NodeKey, RenderObject * > * GetSelection ()
 Вернуть таблицу выбранных объектов. Подробнее...
 
bool IsExistViewObject3D (NodeKey objKey) const
 Вернуть true, если объект есть в контейнере объектов сцены. Подробнее...
 
bool IsSelected (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 (NodeKey objId)
 Удалить объект из контейнера. Подробнее...
 
void Clear ()
 Удалить все объекты из контейнера.
 
bool SetSelectObject (NodeKey objKey, bool primitive=false)
 Выбрать объект по идентификатору. Подробнее...
 
void SelectAll (bool allShowState=false)
 Выбрать все объекты. Подробнее...
 
bool UnselectObject (NodeKey objKey)
 Cнять выбор с объекта по идентификатору. Подробнее...
 
void UnselectAll ()
 Снять выбор со всех объектов.
 
void SetPolygonModeForAll (uint face, uint mode)
 Установить режим для отрисовки полигона. Подробнее...
 
void SetVisibleObject (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, MbMatrix3D *pMatrix=nullptr)
 Обновить видимость объектов в усеченном конусе. Подробнее...
 
void UpdateObjectVisibleState (const Frustum &frustum)
 Обновить видимость по указанному усеченному конусу. Подробнее...
 
void SetViewport (Viewport *pViewport)
 Установить контейнеру viewport. Подробнее...
 
void SetUseVertexBufferObjects (bool usage)
 Установить флаг использования VBO. Подробнее...
 
void DoRender (uint groupId, RenderMode renderingMode, Viewport *viewport=nullptr)
 Отрисовка групп контейнера. Подробнее...
 

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

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

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

Методы

◆ IsEmpty()

bool RenderContainer::IsEmpty ( ) const

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

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

◆ GetSize()

size_t RenderContainer::GetSize ( ) const

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

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

◆ GetObjects()

std::list<RenderObject*> RenderContainer::GetObjects ( )

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

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

◆ GetVisibleObjects()

std::list<RenderObject*> RenderContainer::GetVisibleObjects ( )

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

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

◆ GetObjectById()

RenderObject* RenderContainer::GetObjectById ( NodeKey  objKey)

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

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

◆ GetBoundingBox()

MbCube RenderContainer::GetBoundingBox ( bool  allObjects = false)

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

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

◆ GetSelectionCount()

size_t RenderContainer::GetSelectionCount ( ) const

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

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

◆ GetSelection()

std::map<NodeKey, RenderObject*>* RenderContainer::GetSelection ( )

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

Возвращает
Таблица объектов.

◆ IsExistViewObject3D()

bool RenderContainer::IsExistViewObject3D ( NodeKey  objKey) const

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

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

◆ IsSelected()

bool RenderContainer::IsSelected ( NodeKey  objKey) const

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

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

◆ GetShowState()

bool RenderContainer::GetShowState ( ) const

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

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

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

◆ GetShowObjectsCount()

int RenderContainer::GetShowObjectsCount ( ) const

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

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

◆ IsSpacePartitioningUsed()

bool RenderContainer::IsSpacePartitioningUsed ( ) const

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

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

◆ GetSpacePartitioning()

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

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

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

◆ IsVisible()

bool RenderContainer::IsVisible ( ) const

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

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

◆ SetVisible()

void RenderContainer::SetVisible ( bool  bVisible)

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

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

◆ AddObject()

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

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

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

◆ RemoveViewObject()

bool RenderContainer::RemoveViewObject ( NodeKey  objId)

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

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

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

◆ SetSelectObject()

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

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

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

◆ SelectAll()

void RenderContainer::SelectAll ( bool  allShowState = false)

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

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

◆ UnselectObject()

bool RenderContainer::UnselectObject ( NodeKey  objKey)

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

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

◆ SetPolygonModeForAll()

void RenderContainer::SetPolygonModeForAll ( uint  face,
uint  mode 
)

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

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

◆ SetVisibleObject()

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

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

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

◆ IsLevelOfDetailEnabled()

bool RenderContainer::IsLevelOfDetailEnabled ( ) const

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

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

◆ SetLevelOfDetailEnabled()

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

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

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

◆ SetLinkSpatialSplit()

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

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

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

◆ SetSpatialSplitUsage()

void RenderContainer::SetSpatialSplitUsage ( bool  bSpacePartitioning)

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

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

◆ UpdateObjectVisibleState() [1/2]

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

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

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

◆ UpdateObjectVisibleState() [2/2]

void RenderContainer::UpdateObjectVisibleState ( const Frustum &  frustum)

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

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

◆ SetViewport()

void RenderContainer::SetViewport ( Viewport pViewport)

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

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

◆ SetUseVertexBufferObjects()

void RenderContainer::SetUseVertexBufferObjects ( bool  usage)

Установить флаг использования VBO.

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

◆ DoRender()

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

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

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

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