Class TAbstractInternalGroupingNode

Unit

Declaration

type TAbstractInternalGroupingNode = class(TAbstractChildNode)

Description

Base node that may contain children nodes.

You should not use this class directly usually, instead use e.g. TAbstractGroupingNode. This class is a common ancestor to help implementing a few similar nodes, like TAbstractGroupingNode and TStaticGroupNode, but it is undefined whether they will always rely on this common ancestor.

Note: This descends from TAbstractChildNode, so it can be inserted as child of another grouping node. So, you can create a hierarchy of nodes with any depth.

Handles TTransformFunctionality for any descendant that defines an instance of it.

Hierarchy

Overview

Methods

Protected function SeparateGroup: boolean; virtual;
Protected procedure BeforeTraverse(StateStack: TX3DGraphTraverseStateStack); override;
Protected procedure AfterTraverse(StateStack: TX3DGraphTraverseStateStack); override;
Public constructor Create(const AX3DName: String = ''; const ABaseUrl: String = ''); override;
Public destructor Destroy; override;

Description

Methods

Protected function SeparateGroup: boolean; virtual;

If True (default implementation in this class), then this really behaves like a grouping node. If False, this allows everything to "leak out" (transform changes, VRML 1.0 state changes etc.). Possibility useful for VRML 1.0 extension https://castle-engine.io/x3d_extensions.php#section_ext_wwwinline_separate

Protected procedure BeforeTraverse(StateStack: TX3DGraphTraverseStateStack); override;

This item has no description. Showing description inherited from TX3DNode.BeforeTraverse.

Override these methods to determine what happens when given node is traversed during Traverse call. The main use of this is to operate on TX3DGraphTraverseStateStack.

Remember to always call inherited when overriding. In BeforeTraverse and MiddleTraverse you should call inherited at the beginning, in AfterTraverse inherited should be called at the end.

Besides changing StateStack.Top fields, you can do push/pop on the stack. Remember that if you do StateStack.Push in BeforeTraverse, and then you must call StateStack.Pop in AfterTraverse.

Protected procedure AfterTraverse(StateStack: TX3DGraphTraverseStateStack); override;

This item has no description.

Public constructor Create(const AX3DName: String = ''; const ABaseUrl: String = ''); override;

This item has no description. Showing description inherited from TX3DNode.Create.

Constructor. Initializes various properties:

  • Name, BaseUrl are initialized from given parameters.

  • The Fields, Events lists are filled in every descendant, to have all the fields/events defined by the specification.

  • DefaultContainerField, and other node-specific stuff, is filled in descendants. This is actually implemented in CreateNode, that is called at the end of this constructor.

Public destructor Destroy; override;

This item has no description.


Generated by PasDoc 0.16.0.