DisplayList is used to push text, lines or shapes for rendering in the NavigationLab e.g.
{
displayList->InitSingleFrameLifespan("MyDisplayList", "MyGroupOfDisplayLists");
DisplayShapeColor color(Kaim::Color::Red);
displayList->PushText(m_head, Kaim::Color::Red, "Error");
displayList->PushPoint(m_position, color);
}
In order to be able to easily find, sort and control DisplayList in the UI of the NavigationLab:
- a name must be provided to be able to control manually the rendering of a DisplayList, so it will serve as a label for a check box inside the NavigationLab UI
- a group identifier must be provided, it can be either a string or a WorldElement's VisualDebugId but it can't be both, if by mistake both would be provided the string will be ignored
- If a WorldElement Id is given, the rendering of the displayList in the NavigationLab is configured within the element's display widget. This allows for example to render some bot custom information only for a selected Bot.
- If it is a string, DisplayLists sharing this string will use it as a name for the display widget in the NavigationLab where all these DisplayLists will be gathered. In case of several DisplayList were sent with the same name and group identifier in the same frame, they will be controlled all together by the same widget labeled by their common name inside their common group widget in the NavigationLab UI.
DisplayList can per frame, i.e. the DisplayList is sent once and it is rendered only for the frame at which it is sent. But lifespan of rendering can be controlled by providing a unique identifier for the DisplayList. This identifier must be unique amongst all DisplayList, DisplayListManager::GenerateDisplayListId() must be used to get such ids. So, instead of sending a DisplayList each frame to see it over several frame whereas its content doesn't change, the DisplayList can be sent only when its content should change, thus a newly received DisplayList with an id will replace a previously received DisplayList and the end of the DisplayList can be triggered whenever you want.
{
class MyObject
{
public:
: m_displayListManager(displayListManager)
, m_displayListId(KyUInt32MAXVal)
{}
~MyObject()
{
m_displayListManager->RemoveDisplayList(m_displayListId);
}
void OnChange()
{
SendVisualdebug()
}
void SendVisualdebug()
{
m_displayListId = displayList->InitUserControlledLifespan("MyDisplayList", "MyGroupOfDisplayLists", m_displayListId);
}
}
With KY_CONFIG_RELEASE defined, this class is still present but replaced by a fully inlined emptied version.
|
void | PushPoint (const Vec3f &P, const ShapeColor &shapeColor, Flags flags) |
|
void | PushPoint (const Vec3f &P, const ShapeColor &shapeColor, Style::Enum style=Style::LineCross3d) |
|
void | PushPointLine3d (const Vec3f &P, Color color) |
|
void | PushPointLine2d (const Vec3f &P, Color color) |
|
void | PushPointFlag (const Vec3f &P, const ShapeColor &shapeColor) |
|
void | PushPoint (const Vec3f &P, KyFloat32 radius, const ShapeColor &shapeColor, Flags flags) |
|
void | PushPoint (const Vec3f &P, KyFloat32 radius, const ShapeColor &shapeColor, Style::Enum style=Style::LineCross3d) |
|
void | PushPointLine3d (const Vec3f &P, KyFloat32 radius, Color color) |
|
void | PushPointLine2d (const Vec3f &P, KyFloat32 radius, Color color) |
|
void | PushDiagonalCross2d (const Vec3f &P, KyFloat32 radius, Color color) |
|
void | PushQuad2d (const Vec3f &P, KyFloat32 radius, const ShapeColor &shapeColor) |
|
void | PushQuadAndCross2d (const Vec3f &P, KyFloat32 radius, const ShapeColor &shapeColor) |
|
void | PushQuadAndDiagonalCross2d (const Vec3f &P, KyFloat32 radius, const ShapeColor &shapeColor) |
|
void | PushDiamond2d (const Vec3f &P, KyFloat32 radius, const ShapeColor &shapeColor) |
|
void | PushDiamondAndCross2d (const Vec3f &P, KyFloat32 radius, const ShapeColor &shapeColor) |
|
void | PushPentagon2d (const Vec3f &P, KyFloat32 radius, const ShapeColor &shapeColor) |
|
void | PushHexagon2d (const Vec3f &P, KyFloat32 radius, const ShapeColor &shapeColor) |
|
void | PushOctogon2d (const Vec3f &P, KyFloat32 radius, const ShapeColor &shapeColor) |
|
void | PushOctogonAndCross2d (const Vec3f &P, KyFloat32 radius, const ShapeColor &shapeColor) |
|
void | PushArrowCross2d (const Vec3f &P, KyFloat32 radius, const ShapeColor &shapeColor) |
|
void | PushPointBox (const Vec3f &P, KyFloat32 radius, const ShapeColor &shapeColor) |
|
void | PushPointPyramidInv (const Vec3f &P, KyFloat32 radius, const ShapeColor &shapeColor) |
|
void | PushDisk (const Vec3f &P, KyFloat32 radius, const ShapeColor &shapeColor, Precision::Enum p=DefaultPrecision) |
|
void | PushDiskAndCross2d (const Vec3f &P, KyFloat32 radius, const ShapeColor &shapeColor, Precision::Enum p=DefaultPrecision) |
|
|
void | PushSegment (const Vec3f &P, const Vec3f &Q, const ShapeColor &shapeColor, Flags flags) |
|
void | PushSegment (const Vec3f &P, const Vec3f &Q, const ShapeColor &shapeColor, Style::Enum style) |
|
void | PushLine (const Vec3f &P, const Vec3f &Q, const Color &color) |
|
void | PushArrow2d5 (const Vec3f &P, const Vec3f &Q, const Color &color) |
|
void | PushArrow2d5_Double (const Vec3f &P, const Vec3f &Q, const Color &color) |
|
void | PushArrowPyramid (const Vec3f &P, const Vec3f &Q, const ShapeColor &shapeColor) |
|
void | PushArrowPyramid_Double (const Vec3f &P, const Vec3f &Q, const ShapeColor &shapeColor) |
|
|
void | PushSegment (const Vec3f &P, const Vec3f &Q, KyFloat32 radius, const ShapeColor &shapeColor, Flags flags) |
|
void | PushSegment (const Vec3f &P, const Vec3f &Q, KyFloat32 radius, const ShapeColor &shapeColor, Style::Enum style, DisplayFaces::Enum faces=DisplayFaces::All) |
|
void | PushSegmentPyramid (const Vec3f &P, const Vec3f &Q, KyFloat32 radius, const ShapeColor &shapeColor) |
|
void | PushSegmentTriangleCross (const Vec3f &P, const Vec3f &Q, KyFloat32 radius, const ShapeColor &shapeColor) |
|
void | PushSegmentBox (const Vec3f &P, const Vec3f &Q, KyFloat32 radius, const ShapeColor &shapeColor, DisplayFaces::Enum faces=DisplayFaces::All) |
|
void | PushSegmentSquareTube (const Vec3f &P, const Vec3f &Q, KyFloat32 radius, const ShapeColor &shapeColor) |
|
void | PushSegmentTriangle2d5 (const Vec3f &P, const Vec3f &Q, KyFloat32 radius, const ShapeColor &shapeColor) |
|
void | PushSegmentQuad2d5 (const Vec3f &P, const Vec3f &Q, KyFloat32 radius, const ShapeColor &shapeColor) |
|
void | PushSegmentCapsule2d5 (const Vec3f &P, const Vec3f &Q, KyFloat32 radius, const ShapeColor &shapeColor, Precision::Enum p=DefaultPrecision) |
|
void | PushArrowTube (const Vec3f &P, const Vec3f &Q, KyFloat32 radius, const ShapeColor &shapeColor) |
|
void | PushArrowTube_Double (const Vec3f &P, const Vec3f &Q, KyFloat32 radius, const ShapeColor &shapeColor) |
|
void | PushLadder (const Vec3f &P, const Vec3f &Q, KyFloat32 radius, const Color &color) |
|
void | PushArrow (const Vec3f &P, const Vec3f &Q, KyFloat32 radius, const ShapeColor &shapeColor, KyFloat32, KyFloat32) |
|
|
void | PushVerticalSegment (const Vec3f &P, KyFloat32 height, KyFloat32 radius, const ShapeColor &shapeColor, Flags flags) |
|
void | PushVerticalSegment (const Vec3f &P, KyFloat32 height, KyFloat32 radius, const ShapeColor &shapeColor, Style::Enum style, DisplayFaces::Enum faces=DisplayFaces::All) |
|
void | PushVerticalPyramid (const Vec3f &P, KyFloat32 height, KyFloat32 radius, const ShapeColor &shapeColor) |
|
void | PushVerticalPyramidInv (const Vec3f &P, KyFloat32 height, KyFloat32 radius, const ShapeColor &shapeColor) |
|
void | PushVerticalBox (const Vec3f &P, KyFloat32 height, KyFloat32 radius, const ShapeColor &shapeColor, DisplayFaces::Enum faces=DisplayFaces::All) |
|
void | PushVerticalTriangleCross (const Vec3f &P, KyFloat32 height, KyFloat32 radius, const ShapeColor &shapeColor) |
|
void | PushVerticalTriangleCrossInv (const Vec3f &P, KyFloat32 height, KyFloat32 radius, const ShapeColor &shapeColor) |
|
void | PushVerticalPentagon (const Vec3f &P, KyFloat32 height, KyFloat32 radius, const ShapeColor &shapeColor) |
|
void | PushVerticalHexagon (const Vec3f &P, KyFloat32 height, KyFloat32 radius, const ShapeColor &shapeColor) |
|
void | PushVerticalOctogon (const Vec3f &P, KyFloat32 height, KyFloat32 radius, const ShapeColor &shapeColor) |
|
void | PushVerticalCylinder (const Vec3f &P, KyFloat32 height, KyFloat32 radius, const ShapeColor &shapeColor, Precision::Enum precision=DefaultPrecision, DisplayFaces::Enum faces=DisplayFaces::All) |
|
void | PushVerticalFlag (const Vec3f &P, KyFloat32 height, KyFloat32 radius, const ShapeColor &shapeColor) |
|
|
void | PushDonut (const Vec3f &P, KyFloat32 innerRadius, KyFloat32 outerRadius, const ShapeColor &shapeColor, Precision::Enum precision=DefaultPrecision) |
|
void | PushSegmentVerticalQuad (const Vec3f &P, const Vec3f &Q, KyFloat32 above, KyFloat32 below, const ShapeColor &shapeColor) |
|
void | PushOrientedBox (const Transform &transform, const Box3f &box, const ShapeColor &shapeColor) |
|
void | PushOrientedBox2d (const OrientedBox2d &orientedBox2d, const ShapeColor &shapeColor) |
|
void | PushDiskSector (const Vec3f &P, KyFloat32 radius, const Vec3f &startPos, const Vec3f &endPos, const RotationDirection rotDir, const ShapeColor &shapeColor, Precision::Enum precision=DefaultPrecision) |
|
void | PushCellBox (const Box2i &cellBox, const KyFloat32 altitudeMinMax[], const DatabaseGenMetrics &genMetrics, const ShapeColor &shapeColor) |
|