Skip to content

Workspace::TransformationBase

#include "GUI/Workspace/Nodes/TransformationBase.h"

Inherits from Workspace::CoreNode, Workspace::Node, IVisitable, DIWNE::BasicNode, DIWNE::Node, DIWNE::DiwneObject, std::enable_shared_from_this< DiwneObject >

Inherited by Workspace::Transformation< T >

Public Functions

Name
TransformationBase(DIWNE::NodeEditor & diwne, Ptr< Core::Node > nodebase)
virtual voidaccept(NodeVisitor & visitor) override
virtual boolallowDrawing() override<br>Decide whether the object should be drawn (when outside the window for example)
virtual voidcenterContent(DIWNE::DrawInfo & context) override
virtual booldrawDataFull(DIWNE::DrawInfo & context)
virtual booldrawDataSetValues(DIWNE::DrawInfo & context)
virtual booldrawDataSetValues_InsideTablebuilder(DIWNE::DrawInfo & context, std::vector< std::string > const & labels, std::vector< float * > const & local_data, bool & value_changed)<br>labels have to be unique in node - otherwise change label passed to drawDragFloatWithMap_Inline() below
virtual booldrawDataSetValuesTable_builder(DIWNE::DrawInfo & context, std::string cornerLabel, std::vector< std::string > const & columnLabels, std::vector< std::string > const & rowLabels, std::vector< float * > const & local_data, bool & value_changed, int & index_of_change)
virtual voiddrawMenuExtra()
virtual voiddrawMenuLevelOfDetail() override =0
virtual voiddrawMenuSetDataMap()<br>{return true;}; // todo = 0
voiddrawMenuStorevalues()
virtual voidend(DIWNE::DrawInfo & context) override<br>Called after content().
std::vector< ImVec2 >getInteractionPointsWithSequence()
virtual intgetLODCount() override<br>Number of levels this node cycles through.
Ptr< Core::Node >getNodebaseSequence()
boolisInSequence()
virtual boolisMatrixValid() =0<br>helper function used for decision about showing the corrupted transform flag in topContent().
virtual intmaxLengthOfData() override<br>Calculates the largest number of characters/decimal places a data item has in this node.
virtual voidonDestroy(bool logEvent) override<br>Gets called the moment the object is marked for deletion by destroy().
virtual voidpopupContent(DIWNE::DrawInfo & context) override<br>Content of popup menu raised on this objec.
virtual LevelOfDetailswitchLevelOfDetail(LevelOfDetail oldLevel) override<br>Switches to the next LOD level.
virtual voidtopRightHeaderContent(DIWNE::DrawInfo & context) override<br>Special method to fill contents between the node label and the top right menu button (if present) The method call must include a m_top.spring(1.0f); call somewhere in it.

Public Attributes

Name
WPtr< Sequence >m_parentSequence
boolm_wasValid

Additional inherited members

Public Functions inherited from Workspace::CoreNode

Name
CoreNode(DIWNE::NodeEditor & diwne, Ptr< Core::Node > nodebase)
~CoreNode() override
virtual voidbegin(DIWNE::DrawInfo & context) override<br>First method to be called during object drawing.
voiddrawMenuDuplicate(DIWNE::DrawInfo & context)
voiddrawMenuSetEditable()
voiddrawMenuSetPrecision()
voiddrawTrackingBorder(bool active, bool interpolating, float progress) const
voiddrawTrackingCursor(ImRect rect, const Core::TrackedNodeData * t, bool inactiveOverlay, bool round) const
voidduplicate(DIWNE::DrawInfo & context, bool multiDuplication)
virtual voidendDiwne(DIWNE::DrawInfo & context) override
floatgetDataItemsWidth()<br>Returns the desired width of data items (ImGui number fields)
FloatPopupMode &getFloatPopupMode()
const std::string &getKeyword() const<br>Returns the string identifier of the core node type.
LevelOfDetailgetLevelOfDetail()
Ptr< Core::Node >getNodebase() const<br>Returns the managed I3TCore node.
intgetNumberOfVisibleDecimal()
virtual voidonPopup() override
virtual voidonReleased(bool justReleased, DIWNE::DrawInfo & context) override<br>Called when the object is not pressed.
virtual voidonSelection(bool selected) override
voidqueueUpdateDataItemsWidth()<br>This call requests the data items width to be recalculated on the next draw of ths node.
voidsetFloatPopupMode(FloatPopupMode mode)
LevelOfDetailsetLevelOfDetail(LevelOfDetail levelOfDetail)
virtual voidsetNumberOfVisibleDecimal(int value)
virtual voidtopContent(DIWNE::DrawInfo & context) override
voiddrawMenuLevelOfDetail_builder(Ptr< CoreNode > node, std::vector< LevelOfDetail > const & levels_of_detail)

Protected Functions inherited from Workspace::CoreNode

Name
virtual floatupdateDataItemsWidth()<br>Calculates the final desired pixel width of data items (floats inside vectors, matrices etc.).

Public Attributes inherited from Workspace::CoreNode

Name
constexpr charCORE_NODE_FLAG
boolm_referenceSpaceSource <br>Indicates that this node is the source of a custom scene view reference space TODO: What if it's a source for multiple windows? Would be nice to keep track of that.

Protected Attributes inherited from Workspace::CoreNode

Name
floatm_dataItemsWidth
boolm_drawContextMenuButton
FloatPopupModem_floatPopupMode
boolm_isFirstDraw
boolm_isLabelBeingEdited
LevelOfDetailm_levelOfDetail
const Ptr< Core::Node >m_nodebase <br>Reference to the I3TCore node @description Each WorkspaceGUI node represents a single I3TCore node.
intm_numberOfVisibleDecimal <br>number of decimal places used while display floats in the workspace
boolm_topBottomSpacingDefault <br>Whether this node has spacing between content and header / end.
boolm_updateDataItemsWidth

Public Functions inherited from Workspace::Node

Name
Node(DIWNE::NodeEditor & diwne, std::string label ="Header")
virtual boolallowDragStart() const override<br>Determines whether a drag operation can start from this object.
virtual voiddrawMenuDelete()
boolgetDuplicateNode() const
voidsetDuplicateNode(bool value)

Public Attributes inherited from Workspace::Node

Name
boolm_duplicateNode

Public Functions inherited from DIWNE::BasicNode

Name
BasicNode(NodeEditor & editor, std::string label)
virtual voidbegin(DrawInfo & context) override<br>First method to be called during object drawing.
virtual voidbottomContent(DrawInfo & context)
virtual voidcontent(DrawInfo & context) override<br>Called after begin() during drawing.
virtual voiddrawBody()
virtual voiddrawHeader(ImDrawFlags corners =ImDrawFlags_RoundCornersTop)
const std::string &getTopLabel() const
virtual voidleftContent(DrawInfo & context)
virtual voidrightContent(DrawInfo & context)
voidsetTopLabel(const std::string & str)
virtual voidtopContent(DrawInfo & context)
virtual voidtranslate(const ImVec2 & vec) override<br>Move the object's rect and any other associated positional data.
virtual voidupdateLayout(DrawInfo & context) override<br>Updates object's m_rect, m_displayRect and any other object size variables.

Public Attributes inherited from DIWNE::BasicNode

Name
DiwnePanelm_center
DiwnePanelm_left
DiwnePanelm_middle
DiwnePanelm_right
DiwnePanelm_top

Protected Attributes inherited from DIWNE::BasicNode

Name
boolm_bottomSpacing <br>Whether to add a gap between the node content and the end.
floatm_contentSpacing <br>Gap between left, center and right panels (-1 for default item spacing).
boolm_headerSpacing <br>Whether to add a gap between the node header and its content.
std::stringm_topLabel
floatm_topLabelWidth <br>Top label width in DIWNE coordinates.
floatm_topLabelWidthChange <br>Change of top label width since last frame, used to prevent layout flicker.

Public Functions inherited from DIWNE::Node

Name
Node(const Node & other) =delete
Node(NodeEditor & diwne, std::string labelDiwne ="DiwneNode")
virtual voidafterDraw(DrawInfo & context) override<br>Called last during drawing.
virtual voidbegin(DrawInfo & context) override<br>First method to be called during object drawing.
virtual voidcontent(DrawInfo & context) override<br>Called after begin() during drawing.
virtual voiddrawSelectionIndicator(DrawInfo & context)
boolgetFlag(char index) const<br>Get the node bit flag value at index.
virtual voidonDrag(DrawInfo & context, bool dragStart, bool dragEnd) override<br>This method gets called when the object is being dragged.
virtual voidonHover(DrawInfo & context) override<br>This method gets called when the object is hovered.
virtual voidonSelection(bool selected) override
Node &operator=(const Node & other) =delete
voidsetFlag(char index, bool value)<br>Set the node bit flag value at index.
virtual voidupdateLayout(DrawInfo & context) override<br>Updates object's m_rect, m_displayRect and any other object size variables.
boolwillBeRemovedFromContainer(const DiwneObject * container)

Protected Functions inherited from DIWNE::Node

Name
virtual voidafterDrawDiwne(DrawInfo & context) override<br>Updates layout, processes interactions and then calls the user afterDraw() method.
virtual boolprocessSelectDiwne(DrawInfo & context) override<br>Processes any interactions related to whether the object should be selected.
virtual voidsetInitialPositionDiwne() override<br>Internal helper for setting the object's initial position.

Public Attributes inherited from DIWNE::Node

Name
boolm_forceDraw <br>Internal flag to force drawing of the node, used by pins (TODO: move to DiwneObject?)

Protected Attributes inherited from DIWNE::Node

Name
NodeFlagm_flag <br>The node flag bit field.

Public Functions inherited from DIWNE::DiwneObject

Name
DiwneObject(DIWNE::NodeEditor & diwne, std::string labelDiwne)
virtual~DiwneObject()
virtual voidafterDraw(DrawInfo & context)<br>Called last during drawing.
virtual boolallowDragStart() const<br>Determines whether a drag operation can start from this object.
virtual boolallowHover() const<br>Determines whether the object can be hovered.
virtual boolallowInteraction() const<br>Decide whether the object should react to user input in general.
virtual boolallowPopup() const<br>Determines whether a popup can be raised over the object.
virtual boolallowPress(const DrawInfo & context) const<br>Determines whether the object can be pressed.
virtual boolallowSelectOnClick(const DrawInfo & context) const<br>Determines whether the object can be selected by clicking it (eg.
template <typename T =DiwneObject&gt; <br>T *as()<br>Returns a raw pointer to itself casted to a type.
virtual voidbegin(DrawInfo & context) =0<br>First method to be called during object drawing.
virtual voidcontent(DrawInfo & context) =0<br>Called after begin() during drawing.
virtual voiddestroy(bool logEvent =true)<br>Marks the object for lazy destruction/deallocation and removal from any containers (like the node editor).
virtual voiddraw(DrawMode drawMode =DrawMode_Interactive)<br>Generic draw method meant to be used by external code.
virtual voiddrawDiwne(DrawInfo & context, DrawMode drawMode =DrawMode_Interactive)<br>Internal draw method.
DrawInfodrawDiwneEx(DrawInfo & context, DrawMode drawMode =DrawMode_Interactive)
virtual voidfinalize(DrawInfo & context)<br>The final method to be called, gets called every frame and doesn't do any drawing.
ImRectgetDisplayRect() const<br>Object's bounds aligned to current viewport pixel boundaries.
IDgetId() const
DiwneObject *getParentObject() const
ImVec2getPosition() const<br>Returns the top left corner of the object's rect.
virtual ImRectgetRect() const<br>Rectangle bounds of the object in DIWNE coordinates (editor canvas coordinates).
boolgetSelectable()
virtual boolgetSelected() const<br>Whether the object is selected or not.
StyleOverride *getStyleOverride() const
virtual voidinitialize(DrawInfo & context)<br>First method to be called every frame.
boolisAnyParentSelected()
boolisChildObject() const
boolisChildOfObject(DiwneObject * parent)
boolisDestroyed() const
boolisDragging(DrawInfo & context)<br>Is this object the source of an active dragging operation?
boolisFixed() const<br>Fixed objects are ones rendered at a position determined by some other object.
boolisRendered() const
boolisToBeBroughtToFront()
virtual voidonDrag(DrawInfo & context, bool dragStart, bool dragEnd)<br>This method gets called when the object is being dragged.
virtual voidonHover(DrawInfo & context)<br>This method gets called when the object is hovered.
virtual voidonPopup()
virtual voidonPressed(bool justPressed, DrawInfo & context)<br>Called when the object is pressed, meaning a key is pressed over it.
virtual voidonReleased(bool justReleased, DrawInfo & context)<br>Called when the object is not pressed.
virtual voidonSelection(bool selected)
voidopenPopup()<br>Request to open the object's popup if possible.
booloperator!=(const DiwneObject & rhs) const
booloperator==(const DiwneObject & rhs) const
virtual voidprocessInteractions(DrawInfo & context)<br>Method for reacting to user input after the object is fully drawn and its dimensions are known.
voidsetBringToFront(bool val)<br>Marks the object to be brought to front (be drawn first).
voidsetFixed(bool val)
voidsetForceDraw(bool val)<br>When true, makes the object automatically add the ForceDraw DrawMode flag.
voidsetParentObject(DiwneObject * parent)
voidsetPopupEnabled(bool val)
voidsetPosition(const ImVec2 & position)<br>Move the object's rect and any other associated positional data to the specified position.
voidsetRendered(bool val)
voidsetSelectable(bool selectable)<br>Whether the object can be selected.
virtual boolsetSelected(bool selected)<br>Set the selection state of the object.
voidsetStyleOverride(StyleOverride * styleOverride)<br>Assign a StyleOverride object to this DiwneObject.
voidsetTooltip(const std::string & text)
voidsetTooltipEnabled(bool val)
template <typename T =DiwneObject&gt; <br>std::shared_ptr< T >sharedPtr()<br>Returns a shared pointer to this object.
voidshowTooltip(const std::string & label, const ImColor && color, DrawInfo & context)<br>Immediately show a tooltip next to the mouse cursor with the specified text.
voidshowTooltip(const std::string & label, const std::string & desc, const ImColor && color, DrawInfo & context, float wrapWidth =35.f)<br>Immediately show a tooltip next to the mouse cursor with the specified text.
voidstopDrag(DrawInfo & context)<br>End an active drag operation this object is a source of.
virtual Style &style() const<br>Get the style for this object.
virtual voidtooltipContent(DrawInfo & context)<br>Content of the object's tooltip.
virtual voidtranslate(const ImVec2 & vec)<br>Move the object's rect and any other associated positional data.
virtual voidupdateLayout(DrawInfo & context) =0<br>Updates object's m_rect, m_displayRect and any other object size variables.

Protected Functions inherited from DIWNE::DiwneObject

Name
virtual voidafterDrawDiwne(DrawInfo & context)<br>Updates layout, processes interactions and then calls the user afterDraw() method.
virtual voidbeginDiwne(DrawInfo & context)
virtual voidendDiwne(DrawInfo & context)
virtual voidfinalizeDiwne(DrawInfo & context)
virtual voidinitializeDiwne(DrawInfo & context)
virtual boolisDraggedDiwne()<br>Is the object being dragged? (usually by mouse or some key combo)
virtual boolisHoveredDiwne()<br>Is the object being hovered? The default implementation mostly gets this information from ImGui::IsItemHovered() but the behavior can be changed or restricted.
virtual boolisJustPressedDiwne()<br>Determine whether a key/s of interest was/were just pressed.
virtual boolisPressedDiwne()<br>Determine whether a key/s of interest is/are pressed down over the object.
virtual boolpopupShouldBeOpenedDiwne() const<br>Determine whether a popup should be opened, that is, by default, that right mouse button was pressed and isn't dragging.
virtual voidprocessDragDiwne(DrawInfo & context)
virtual voidprocessHoverDiwne(DrawInfo & context)<br>Processes whether the object is currently hovered.
virtual voidprocessInteractionsDiwne(DrawInfo & context)
virtual voidprocessPopupAndTooltipDiwne(DrawInfo & context)<br>Processes whether a popup should be opened over this object.
virtual voidprocessPressAndReleaseDiwne(DrawInfo & context)<br>Processes whether the object is currently pressed (held) and further if it was just pressed or released.
virtual boolprocessSelectDiwne(DrawInfo & context)<br>Processes any interactions related to whether the object should be selected.
virtual voidsetInitialPositionDiwne()<br>Internal helper for setting the object's initial position.
voidsetSize(const ImVec2 & size)
voidupdateRectFromImGuiItem()

Public Attributes inherited from DIWNE::DiwneObject

Name
NodeEditor &diwne <br>Reference to the NodeEditor instance (also named 'editor' in some classes)
boolm_deletable <br>Whether the object can be destroyed by the user.
boolm_destroy <br>Indicates the object is to be deleted (and deallocated)
ImRectm_displayRect <br>Rectangle bounds aligned with the last viewport.
boolm_draggable <br>Whether dragging of the object is allowed by default.
DrawModem_drawMode <br>Read-only flag thats updated on each drawDiwne().
boolm_drawnThisFrame <br>Read only flag indicating whether the object has been drawn this frame.
boolm_fixed <br>Whether the object can be moved by user operations.
boolm_forceHoverDiwne <br>Special flag that can be used to enforce hover state, used by pin drag assist.
boolm_hoverable <br>Whether hovering is enabled by default.
boolm_hovered <br>Is the object hovered (usually by the mouse or whatever isHoveredDiwne() tracks)
boolm_hoverRoot <br>Whether hovering this object should prevent other objects from hovering.
IDm_idDiwne <br>Unique numeric identifier of the object.
boolm_isDragged <br>Is the object dragged? Returns false immediately on drag end (unlike isDragging()).
boolm_isPressed <br>Is the object pressed down (held)? Requirement for dragging.
boolm_justHidden <br>Read only flag indicating that this object was drawn last frame, but not this one.
boolm_justPressed <br>Read only flag indicating the object was pressed this frame (eg.
boolm_justReleased <br>Read only flag indicating the object was released this frame (eg.
std::stringm_labelDiwne <br>Unique string identifier, consists of <some string>:<m_idDiwne>.
ImRectm_rect <br>Rectangle bounds of the object in diwne coordinates.
StyleOverride *m_styleOverride <br>Style override to allow uniquely styled object types.

Protected Attributes inherited from DIWNE::DiwneObject

Name
unsigned long longg_diwneIDCounter <br>Static unique ID generator, unique only for current application run.
boolm_bringToFront <br>Request the object's rendering order to be moved to the front above other objects.
boolm_forceDraw <br>Request the next draw of the object to have the ForceDraw DrawMode flag.
boolm_internalHover <br>Temporary storage for an internal ImGui::IsItemHovered() check Can be set in the end() method to determine if object is hovered if applicable.
boolm_openPopup <br>Request to open popup.
boolm_openTooltip <br>Request to open tooltip.
DiwneObject *m_parentObject <br>Sets the parent object of object, relevant in node container and hover hierarchy.
boolm_popupEnabled <br>Whether this object has popup enabled.
std::stringm_popupLabelDiwne <br>ImGui popup identifier.
boolm_rendered <br>Whether the object should be drawn, this is a general flag that overrides behavior of the allowDrawing() method.
boolm_selectable <br>Should not be accessed directly.
boolm_selected <br>Should not be accessed directly.
boolm_tooltipEnabled <br>Whether this object has tooltip enabled.
std::stringm_tooltipText

Public Functions Documentation

function TransformationBase

cpp
TransformationBase(
    DIWNE::NodeEditor & diwne,
    Ptr< Core::Node > nodebase
)
TransformationBase(
    DIWNE::NodeEditor & diwne,
    Ptr< Core::Node > nodebase
)

function accept

cpp
inline virtual void accept(
    NodeVisitor & visitor
) override
inline virtual void accept(
    NodeVisitor & visitor
) override

Reimplements: IVisitable::accept

function allowDrawing

cpp
virtual bool allowDrawing() override
virtual bool allowDrawing() override

Decide whether the object should be drawn (when outside the window for example)

Reimplements: Workspace::CoreNode::allowDrawing

function centerContent

cpp
virtual void centerContent(
    DIWNE::DrawInfo & context
) override
virtual void centerContent(
    DIWNE::DrawInfo & context
) override

Reimplements: DIWNE::BasicNode::centerContent

function drawDataFull

cpp
virtual bool drawDataFull(
    DIWNE::DrawInfo & context
)
virtual bool drawDataFull(
    DIWNE::DrawInfo & context
)

Todosee #111

function drawDataSetValues

cpp
inline virtual bool drawDataSetValues(
    DIWNE::DrawInfo & context
)
inline virtual bool drawDataSetValues(
    DIWNE::DrawInfo & context
)

Reimplemented by: Workspace::Transformation::drawDataSetValues, Workspace::Transformation::drawDataSetValues, Workspace::Transformation::drawDataSetValues

function drawDataSetValues_InsideTablebuilder

cpp
virtual bool drawDataSetValues_InsideTablebuilder(
    DIWNE::DrawInfo & context,
    std::vector< std::string > const & labels,
    std::vector< float * > const & local_data,
    bool & value_changed
)
virtual bool drawDataSetValues_InsideTablebuilder(
    DIWNE::DrawInfo & context,
    std::vector< std::string > const & labels,
    std::vector< float * > const & local_data,
    bool & value_changed
)

labels have to be unique in node - otherwise change label passed to drawDragFloatWithMap_Inline() below

function drawDataSetValuesTable_builder

cpp
virtual bool drawDataSetValuesTable_builder(
    DIWNE::DrawInfo & context,
    std::string cornerLabel,
    std::vector< std::string > const & columnLabels,
    std::vector< std::string > const & rowLabels,
    std::vector< float * > const & local_data,
    bool & value_changed,
    int & index_of_change
)
virtual bool drawDataSetValuesTable_builder(
    DIWNE::DrawInfo & context,
    std::string cornerLabel,
    std::vector< std::string > const & columnLabels,
    std::vector< std::string > const & rowLabels,
    std::vector< float * > const & local_data,
    bool & value_changed,
    int & index_of_change
)

function drawMenuExtra

cpp
inline virtual void drawMenuExtra()
inline virtual void drawMenuExtra()

Reimplemented by: Workspace::Transformation::drawMenuExtra, Workspace::Transformation::drawMenuExtra, Workspace::Transformation::drawMenuExtra, Workspace::Transformation::drawMenuExtra, Workspace::Transformation::drawMenuExtra

function drawMenuLevelOfDetail

cpp
virtual void drawMenuLevelOfDetail() override =0
virtual void drawMenuLevelOfDetail() override =0

Reimplements: Workspace::CoreNode::drawMenuLevelOfDetail

Reimplemented by: Workspace::Transformation::drawMenuLevelOfDetail

function drawMenuSetDataMap

cpp
virtual void drawMenuSetDataMap()
virtual void drawMenuSetDataMap()

{return true;}; // todo = 0

Reimplemented by: Workspace::Transformation::drawMenuSetDataMap, Workspace::Transformation::drawMenuSetDataMap, Workspace::Transformation::drawMenuSetDataMap, Workspace::Transformation::drawMenuSetDataMap, Workspace::Transformation::drawMenuSetDataMap, Workspace::Transformation::drawMenuSetDataMap

used for translate, axisAngle, lookAt, and perspective

function drawMenuStorevalues

cpp
void drawMenuStorevalues()
void drawMenuStorevalues()

function end

cpp
virtual void end(
    DIWNE::DrawInfo & context
) override
virtual void end(
    DIWNE::DrawInfo & context
) override

Called after content().

Reimplements: DIWNE::BasicNode::end

Used to end content drawing.

function getInteractionPointsWithSequence

cpp
std::vector< ImVec2 > getInteractionPointsWithSequence()
std::vector< ImVec2 > getInteractionPointsWithSequence()

function getLODCount

cpp
virtual int getLODCount() override
virtual int getLODCount() override

Number of levels this node cycles through.

Reimplements: Workspace::CoreNode::getLODCount

function getNodebaseSequence

cpp
Ptr< Core::Node > getNodebaseSequence()
Ptr< Core::Node > getNodebaseSequence()

function isInSequence

cpp
bool isInSequence()
bool isInSequence()

function isMatrixValid

cpp
virtual bool isMatrixValid() =0
virtual bool isMatrixValid() =0

helper function used for decision about showing the corrupted transform flag in topContent().

Return: Core::ETransformState:: Valid, Invalid, or Unknown

Reimplemented by: Workspace::Transformation::isMatrixValid

Overriden in WorkspaceTransformation_s.h

function maxLengthOfData

cpp
virtual int maxLengthOfData() override
virtual int maxLengthOfData() override

Calculates the largest number of characters/decimal places a data item has in this node.

Reimplements: Workspace::CoreNode::maxLengthOfData

This call will often be delegated to the pins of the node.

function onDestroy

cpp
virtual void onDestroy(
    bool logEvent
) override
virtual void onDestroy(
    bool logEvent
) override

Gets called the moment the object is marked for deletion by destroy().

See: destroy()

Warning: It is possible that the onDestroy() callback is never called when destroy() wasn't properly called. DiwneObjects containing other DiwneObjects should always ensure to destroy their children in their onDestroy().

Reimplements: Workspace::CoreNode::onDestroy

It is called only once per object.

function popupContent

cpp
virtual void popupContent(
    DIWNE::DrawInfo & context
) override
virtual void popupContent(
    DIWNE::DrawInfo & context
) override

Content of popup menu raised on this objec.

Reimplements: Workspace::CoreNode::popupContent

function switchLevelOfDetail

cpp
virtual LevelOfDetail switchLevelOfDetail(
    LevelOfDetail oldLevel
) override
virtual LevelOfDetail switchLevelOfDetail(
    LevelOfDetail oldLevel
) override

Switches to the next LOD level.

Return: Thew new LOD level

Reimplements: Workspace::CoreNode::switchLevelOfDetail

function topRightHeaderContent

cpp
virtual void topRightHeaderContent(
    DIWNE::DrawInfo & context
) override
virtual void topRightHeaderContent(
    DIWNE::DrawInfo & context
) override

Special method to fill contents between the node label and the top right menu button (if present) The method call must include a m_top.spring(1.0f); call somewhere in it.

Reimplements: Workspace::CoreNode::topRightHeaderContent

Public Attributes Documentation

variable m_parentSequence

cpp
WPtr< Sequence > m_parentSequence {};
WPtr< Sequence > m_parentSequence {};

variable m_wasValid

cpp
bool m_wasValid {true};
bool m_wasValid {true};

Updated on 2025-05-31 at 12:55:31 +0000