PixelLightAPI  .
Public Types | Public Member Functions | Public Attributes | Protected Member Functions
PLScene::SceneNode Class Reference

Abstract scene node (leaf node) class. More...

#include <SceneNode.h>

Inheritance diagram for PLScene::SceneNode:
Inheritance graph
[legend]

List of all members.

Public Types

enum  EFlags {
  Inactive = 1<<0, Invisible = 1<<1, Frozen = 1<<2, NoPause = 1<<3,
  Automatic = 1<<4, NoCulling = 1<<5, NoLighting = 1<<6, CanOcclude = 1<<7,
  CastShadow = 1<<8, ReceiveShadow = 1<<9
}
 Scene node flags. More...
enum  EDrawFunctionFlags {
  UseDrawPre = 1<<0, UseDrawSolid = 1<<1, UseDrawTransparent = 1<<2, UseDrawDebug = 1<<3,
  UseDrawPost = 1<<4
}
 Draw function flags. More...

Public Member Functions

 pl_enum (EFlags) pl_enum_value(Inactive
This scene node is currently
NOT active 
pl_enum_value (Invisible,"This scene node is currently NOT visible") pl_enum_value(Frozen
This scene node is currently
NOT active This scene node is
currently frozen and therefore
not updated 
pl_enum_value (NoPause,"Do NOT perform pause if the timer is paused. All scene nodes should perform a pause if the timer is paused! Exceptions for this should ONLY be special scene nodes like e.g. a camera node: If the camera node is set to not perform the pause, it can still be moved around while the game/simulation is paused)") pl_enum_value(Automatic
This scene node is currently
NOT active This scene node is
currently frozen and therefore
not updated This scene node
was created automatically
during runtime and should not
be saved with the scene Such
scene nodes are also hidden
for instance within the scene
editor 
pl_enum_value (NoCulling,"No visibility culling for this node, please (the container the node is in may still be culled...)") pl_enum_value(NoLighting
This scene node is currently
NOT active This scene node is
currently frozen and therefore
not updated This scene node
was created automatically
during runtime and should not
be saved with the scene Such
scene nodes are also hidden
for instance within the scene
editor No lighting for this
please 
pl_enum_value (CanOcclude,"This scene node can occlude other scene nodes") pl_enum_value(CastShadow
This scene node is currently
NOT active This scene node is
currently frozen and therefore
not updated This scene node
was created automatically
during runtime and should not
be saved with the scene Such
scene nodes are also hidden
for instance within the scene
editor No lighting for this
please Shadow caster 
pl_enum_value (ReceiveShadow,"Shadow receiver") pl_enum_endenum EDebugFlags
 Scene node debug flags.
 pl_enum (EDebugFlags) pl_enum_value(DebugEnabled
Debug mode is enabled (if this flag isn't set, no debug information is drawn at all)") pl_enum_value(DebugNoDrawSignal
Debug mode is Do not create a
draw debug signal 
pl_enum_value (DebugContainerAABBox,"Draw (the white) container space axis aligned bounding box") pl_enum_value(DebugContainerSphere
Debug mode is Do not create a
draw debug signal Draw
container space bounding
sphere 
pl_enum_value (DebugNoLocalCoordinateAxis,"Do not draw the local coordinate axis") pl_enum_value(DebugNoName
Debug mode is Do not create a
draw debug signal Draw
container space bounding
sphere Do not draw the name of
the scene node 
pl_enum_value (DebugNoAABBox,"Do not draw (the yellow) axis aligned bounding box") pl_enum_value(DebugText
 pl_class (PLS_RTTI_EXPORT, SceneNode,"PLScene", PLCore::Object,"Abstract scene node (leaf node) class") pl_properties pl_property("Icon"
Data Textures IconSceneNode
dds pl_properties_end 
pl_attribute (Flags, pl_flag_type(EFlags), 0, ReadWrite, GetSet,"Flags","") pl_attribute(DebugFlags
Data Textures IconSceneNode
dds pl_properties_end 
pl_flag_type (EDebugFlags)
Data Textures IconSceneNode
dds pl_properties_end Debug 
pl_attribute (Position, PLMath::Vector3, PLMath::Vector3(0.0f, 0.0f, 0.0f), ReadWrite, GetSet,"Position","") pl_attribute(Rotation
Data Textures IconSceneNode
dds pl_properties_end Debug 
PLMath::Vector3 (0.0f, 0.0f, 0.0f)
Data Textures IconSceneNode
dds pl_properties_end Debug
Rotation as Euler angles in if
do always if do always draw
this node before 
pl_attribute (AABBMin, PLMath::Vector3, PLMath::Vector3(0.0f, 0.0f, 0.0f), ReadWrite, GetSet,"Minimum position of the 'scene node space' axis aligned bounding box","") pl_attribute(AABBMax
Data Textures IconSceneNode
dds pl_properties_end Debug
Rotation as Euler angles in if
do always if do always draw
this node before 
PLMath::Vector3 (0.0f, 0.0f, 0.0f)
Data Textures IconSceneNode
dds pl_properties_end Debug
Rotation as Euler angles in if
do always if do always draw
this node before Maximum
position of the scene node
space axis aligned bounding 
pl_attribute (Name, PLCore::String,"", ReadWrite, GetSet,"Optional scene node name. If not defined, a name is chosen automatically","") pl_signal_0(SignalDestroy
Data Textures IconSceneNode
dds pl_properties_end Debug
Rotation as Euler angles in if
do always if do always draw
this node before Maximum
position of the scene node
space axis aligned bounding
Scene node destruction 
pl_signal_0 (SignalActive,"Scene node active state change signal","") pl_signal_0(SignalVisible
Data Textures IconSceneNode
dds pl_properties_end Debug
Rotation as Euler angles in if
do always if do always draw
this node before Maximum
position of the scene node
space axis aligned bounding
Scene node destruction Scene
node visible state change 
pl_signal_0 (SignalContainer,"Scene node parent container change signal","") pl_signal_0(SignalAABoundingBox
Data Textures IconSceneNode
dds pl_properties_end Debug
Rotation as Euler angles in if
do always if do always draw
this node before Maximum
position of the scene node
space axis aligned bounding
Scene node destruction Scene
node visible state change
Scene node axis aligned
bounding box change 
pl_signal_0 (SignalInit,"Scene node initialization signal","") pl_signal_0(SignalDeInit
Data Textures IconSceneNode
dds pl_properties_end Debug
Rotation as Euler angles in if
do always if do always draw
this node before Maximum
position of the scene node
space axis aligned bounding
Scene node destruction Scene
node visible state change
Scene node axis aligned
bounding box change Scene node
de initialization change 
pl_signal_1 (SignalAddedToVisibilityTree, VisNode &,"Scene node was added to a visibility tree signal. Visibility node representing this scene node within the visibility tree as parameter.","") pl_signal_2(SignalDrawPre
Data Textures IconSceneNode
dds pl_properties_end Debug
Rotation as Euler angles in if
do always if do always draw
this node before Maximum
position of the scene node
space axis aligned bounding
Scene node destruction Scene
node visible state change
Scene node axis aligned
bounding box change Scene node
de initialization change
PLRenderer::Renderer const
VisNode Scene node pre draw
signal Used renderer and
current visibility node of the
scene 
node (can be a null pointer) as parameter."
Data Textures IconSceneNode
dds pl_properties_end Debug
Rotation as Euler angles in if
do always if do always draw
this node before Maximum
position of the scene node
space axis aligned bounding
Scene node destruction Scene
node visible state change
Scene node axis aligned
bounding box change Scene node
de initialization change
PLRenderer::Renderer const
VisNode Scene node pre draw
signal Used renderer and
current visibility node of the
scene 
pl_signal_2 (SignalDrawSolid, PLRenderer::Renderer &, const VisNode *,"Scene node solid-draw signal. Used renderer and current visibility node of the scene node (can be a null pointer) as parameter.","") pl_signal_2(SignalDrawTransparent
Data Textures IconSceneNode
dds pl_properties_end Debug
Rotation as Euler angles in if
do always if do always draw
this node before Maximum
position of the scene node
space axis aligned bounding
Scene node destruction Scene
node visible state change
Scene node axis aligned
bounding box change Scene node
de initialization change
PLRenderer::Renderer const
VisNode Scene node pre draw
signal Used renderer and
current visibility node of the
scene PLRenderer::Renderer
const VisNode Scene node
transparent draw signal Used
renderer and current
visibility node of the scene 
node (can be a null pointer) as parameter."
Data Textures IconSceneNode
dds pl_properties_end Debug
Rotation as Euler angles in if
do always if do always draw
this node before Maximum
position of the scene node
space axis aligned bounding
Scene node destruction Scene
node visible state change
Scene node axis aligned
bounding box change Scene node
de initialization change
PLRenderer::Renderer const
VisNode Scene node pre draw
signal Used renderer and
current visibility node of the
scene PLRenderer::Renderer
const VisNode Scene node
transparent draw signal Used
renderer and current
visibility node of the scene 
pl_signal_2 (SignalDrawDebug, PLRenderer::Renderer &, const VisNode *,"Scene node debug-draw signal. Used renderer and current visibility node of the scene node (can be a null pointer) as parameter.","") pl_signal_2(SignalDrawPost
Data Textures IconSceneNode
dds pl_properties_end Debug
Rotation as Euler angles in if
do always if do always draw
this node before Maximum
position of the scene node
space axis aligned bounding
Scene node destruction Scene
node visible state change
Scene node axis aligned
bounding box change Scene node
de initialization change
PLRenderer::Renderer const
VisNode Scene node pre draw
signal Used renderer and
current visibility node of the
scene PLRenderer::Renderer
const VisNode Scene node
transparent draw signal Used
renderer and current
visibility node of the scene
PLRenderer::Renderer const
VisNode Scene node post draw
signal Used renderer and
current visibility node of the
scene 
node (can be a null pointer) as parameter."
virtual PLS_API PLCore::uint32 GetFlags () const
virtual PLS_API void SetFlags (PLCore::uint32 nValue)
virtual PLS_API PLCore::uint32 GetDebugFlags () const
virtual PLS_API void SetDebugFlags (PLCore::uint32 nValue)
PLS_API const PLMath::Vector3GetPosition () const
PLS_API void SetPosition (const PLMath::Vector3 &vValue)
PLS_API PLMath::Vector3 GetRotation () const
PLS_API void SetRotation (const PLMath::Vector3 &vValue)
PLS_API const PLMath::Vector3GetScale () const
PLS_API void SetScale (const PLMath::Vector3 &vValue)
PLS_API const PLMath::Vector3GetAABBMin () const
PLS_API void SetAABBMin (const PLMath::Vector3 &vValue)
PLS_API const PLMath::Vector3GetAABBMax () const
PLS_API void SetAABBMax (const PLMath::Vector3 &vValue)
PLS_API SceneContextGetSceneContext () const
 Returns the scene context the scene node is in.
PLS_API SceneContainerGetContainer () const
 Returns the scene container the scene node is in.
PLS_API bool SetContainer (SceneContainer &cSceneContainer)
 Sets the scene container the scene node is in.
PLS_API SceneContainerGetRootContainer () const
 Returns the scene root container.
PLS_API SceneContainerGetCommonContainer (SceneNode &cSceneNode) const
 Gets the common container of this and another scene node.
PLS_API SceneHierarchyGetHierarchy () const
 Returns the scene hierarchy this scene node is linked into.
PLS_API PLCore::String GetAbsoluteName () const
 Returns the unique absolute name of the scene node.
PLS_API bool IsInitialized () const
 Is the scene node initialized?
PLS_API bool IsActive () const
 Returns whether the scene node is active or not.
PLS_API void SetActive (bool bActive=true)
 Sets whether the scene node is active or not.
PLS_API bool EvaluateGlobalActiveState () const
 Evaluates whether or not the scene node is active in respect of the complete scene graph.
PLS_API bool IsVisible () const
 Returns whether the scene node is visible or not.
PLS_API void SetVisible (bool bVisible=true)
 Sets whether the scene node is visible or not.
PLS_API bool IsFrozen () const
 Returns whether the scene node is frozen or not.
PLS_API void SetFrozen (bool bFrozen=true)
 Sets whether the scene node is frozen or not.
PLS_API PLCore::uint8 GetDrawFunctionFlags () const
 Gets the scene node draw function flags.
PLS_API void SetDrawFunctionFlags (PLCore::uint8 nFlags)
 Sets the scene node draw function flags.
const PLMath::Transform3GetTransform () const
 Gets the node transform.
PLMath::Transform3GetTransform ()
PLS_API void MoveTo (const PLMath::Vector3 &vPosition)
 Moves the node to a new position.
PLS_API const
PLMath::AABoundingBox
GetAABoundingBox ()
 Returns the axis align bounding box in 'scene node space'.
PLS_API void SetAABoundingBox (const PLMath::AABoundingBox &cAABoundingBox)
 Sets the axis align bounding box in 'scene node space'.
PLS_API const
PLMath::AABoundingBox
GetContainerAABoundingBox ()
 Returns the current axis align bounding box in 'scene container space'.
PLS_API const PLMath::SphereGetBoundingSphere ()
 Returns the bounding sphere in 'scene node space'.
PLS_API const PLMath::SphereGetContainerBoundingSphere ()
 Returns the current bounding sphere in 'scene container space'.
bool IsContainer () const
 Returns whether this scene node is a scene container (SceneContainer) or not.
bool IsCell () const
 Returns whether this scene node is a cell (SCCell) or not.
bool IsPortal () const
 Returns whether this scene node is a portal (SNPortal) or not.
bool IsCamera () const
 Returns whether this scene node is a camera (SNCamera) or not.
bool IsLight () const
 Returns whether this scene node is a light (SNLight) or not.
bool IsFog () const
 Returns whether this scene node is a fog (SNFog) or not.
PLS_API PLCore::uint32 GetNumOfModifiers (const PLCore::String &sClass="") const
 Returns the number of modifiers.
PLS_API SceneNodeModifierAddModifier (const PLCore::String &sClass, const PLCore::String &sParameters="")
 Adds a modifier.
PLS_API SceneNodeModifierGetModifier (const PLCore::String &sClass, PLCore::uint32 nIndex=0) const
 Returns a modifier.
PLS_API bool RemoveModifierByReference (SceneNodeModifier &cModifier)
 Removes a modifier by using a given reference to the modifier to remove.
PLS_API bool RemoveModifier (const PLCore::String &sClass, PLCore::uint32 nIndex=0)
 Removes a modifier.
PLS_API void ClearModifiers ()
 Clears all modifiers.
virtual PLS_API
PLMesh::MeshHandler
GetMeshHandler ()
 Returns a pointer to the mesh handler.
virtual PLS_API
PLInput::Controller
GetInputController () const
 Get input controller.
virtual PLS_API void DrawPre (PLRenderer::Renderer &cRenderer, const VisNode *pVisNode=nullptr)
 This function is called before any solid parts of the scene are drawn.
virtual PLS_API void DrawSolid (PLRenderer::Renderer &cRenderer, const VisNode *pVisNode=nullptr)
 This function is called when the solid parts of the scene are drawn.
virtual PLS_API void DrawTransparent (PLRenderer::Renderer &cRenderer, const VisNode *pVisNode=nullptr)
 This function is called when the transparent parts of the scene are drawn.
virtual PLS_API void DrawDebug (PLRenderer::Renderer &cRenderer, const VisNode *pVisNode=nullptr)
 This function is called when the debug parts of the scene are drawn.
virtual PLS_API void DrawPost (PLRenderer::Renderer &cRenderer, const VisNode *pVisNode=nullptr)
 This function is called after transparent parts of the scene are drawn.
virtual PLS_API bool Delete (bool bProtectedToo=false) override
 Destroys the element.
virtual PLS_API bool SetName (const PLCore::String &sName) override
 Sets the element name.

Public Attributes

This scene node is currently
NOT active This scene node is
currently frozen and therefore
not updated This scene node
was created automatically
during runtime and should not
be saved with the scene Such
scene nodes are also hidden
for instance within the scene
editor No lighting for this 
node
Data Textures IconSceneNode
dds pl_properties_end 
ReadWrite
Data Textures IconSceneNode
dds pl_properties_end 
GetSet
Data Textures IconSceneNode
dds pl_properties_end Debug 
flags
Data Textures IconSceneNode
dds pl_properties_end Debug 
ReadWrite
Data Textures IconSceneNode
dds pl_properties_end Debug 
GetSet
Data Textures IconSceneNode
dds pl_properties_end Debug
Rotation as Euler angles in 
degree
Data Textures IconSceneNode
dds pl_properties_end Debug
Rotation as Euler angles in 
Inc
Data Textures IconSceneNode
dds pl_properties_end Debug
Rotation as Euler angles in if
do always 
draw
Data Textures IconSceneNode
dds pl_properties_end Debug
Rotation as Euler angles in if
do always if 
negative
Data Textures IconSceneNode
dds pl_properties_end Debug
Rotation as Euler angles in if
do always if do always draw
this node before 
other
Data Textures IconSceneNode
dds pl_properties_end Debug
Rotation as Euler angles in if
do always if do always draw
this node before 
ReadWrite
Data Textures IconSceneNode
dds pl_properties_end Debug
Rotation as Euler angles in if
do always if do always draw
this node before 
GetSet
Data Textures IconSceneNode
dds pl_properties_end Debug
Rotation as Euler angles in if
do always if do always draw
this node before Maximum
position of the scene node
space axis aligned bounding 
box
Data Textures IconSceneNode
dds pl_properties_end Debug
Rotation as Euler angles in if
do always if do always draw
this node before Maximum
position of the scene node
space axis aligned bounding
Scene node destruction 
signal
Data Textures IconSceneNode
dds pl_properties_end Debug
Rotation as Euler angles in if
do always if do always draw
this node before Maximum
position of the scene node
space axis aligned bounding
Scene node destruction Scene
node visible state change 
signal
Data Textures IconSceneNode
dds pl_properties_end Debug
Rotation as Euler angles in if
do always if do always draw
this node before Maximum
position of the scene node
space axis aligned bounding
Scene node destruction Scene
node visible state change
Scene node axis aligned
bounding box change 
signal
Data Textures IconSceneNode
dds pl_properties_end Debug
Rotation as Euler angles in if
do always if do always draw
this node before Maximum
position of the scene node
space axis aligned bounding
Scene node destruction Scene
node visible state change
Scene node axis aligned
bounding box change Scene node
de initialization change 
signal

Protected Member Functions

PLS_API SceneNode ()
 Default constructor.
virtual PLS_API ~SceneNode ()
 Destructor.
PLS_API void DirtyAABoundingBox ()
 The current axis align bounding box is dirty and must be updated if used next time.
virtual PLS_API void InitFunction ()
 This function is called when the scene node gets initialized.
virtual PLS_API void DeInitFunction ()
 This function is called when the scene node gets de-initialized.
virtual PLS_API void OnActivate (bool bActivate)
 Called when the scene node has been activated or deactivated.
virtual PLS_API void UpdateAABoundingBox ()
 Updates the axis align bounding box in 'scene node space'.
virtual PLS_API void GetBoundingSphere (PLMath::Sphere &cSphere)
 Returns the bounding sphere in 'scene node space'.
virtual PLS_API void GetContainerBoundingSphere (PLMath::Sphere &cSphere)
 Returns the current bounding sphere in 'scene container space'.
virtual PLS_API void OnAddedToVisibilityTree (VisNode &cVisNode)
 Called when the scene node was added to a visibility tree.

Detailed Description

Abstract scene node (leaf node) class.

Remarks:
This is a leaf node of the scene graph. The node transformation is relative to the container the node is in.
Note:
  • '.' characters within 'concrete' scene node names are NOT allowed (SceneNode::SetName())
  • The name 'Root' is NOT allowed for scene nodes, this name is reserved for the 'scene root container'
  • The name 'Parent' is NOT allowed for scene nodes, this name is reserved for the 'parent scene container'
  • The name 'This' is NOT allowed for scene nodes, this name is reserved for the 'this scene node'
  • The name of the 'root scene container' can NOT be changed
  • Derived classes should use a 'SN'-prefix (example: SNLight)
  • The "Rotation"-attribute of the scene node is a derived (human friendly) Euler angles (in degree) representation of the internal rotation quaternion, so, whenever possible, work internally with "GetTransform()" instead of "GetRotation()"!

Member Enumeration Documentation

Scene node flags.

Enumerator:
Inactive 

This scene node is currently NOT active

Invisible 

This scene node is currently NOT visible

Frozen 

This scene node is currently frozen and therefore not updated

NoPause 

Do NOT perform pause if the timer is paused. All scene nodes should perform a pause if the timer is paused! Exceptions for this should ONLY be special scene nodes like e.g. a camera node: If the camera node is set to not perform the pause, it can still be moved around while the game/simulation is paused)

Automatic 

This scene node was created automatically during runtime and should not be saved with the scene. Such scene nodes are also hidden for instance within the scene editor.

NoCulling 

No visibility culling for this node, please (the container the node is in may still be culled...)

NoLighting 

No lighting for this node, please

CanOcclude 

This scene node can occlude other scene nodes

CastShadow 

Shadow caster

ReceiveShadow 

Shadow receiver

Reimplemented in PLScene::SceneContainer, PLScene::SNCamera, PLEngine::SNConsoleBase, PLEngine::SNLoadScreen, PLScene::SNSpotLight, PLSound::SNSound, PLScene::SNCellPortal, PLScene::SNBitmap, PLScene::SNBitmap2D, PLScene::SNMesh, PLScene::SNText3D, PLScene::SNProjectiveSpotLight, PLScene::SNLight, PLScene::SNText2D, PLScene::SNProjectivePointLight, PLScene::SNCoordinateAxis, PLScene::SNLine, PLScene::SNLineBox, PLScene::SNLineGrid, PLScene::SNPoint, and PLScene::SNText.

Draw function flags.

Enumerator:
UseDrawPre 

Use DrawPre()-function

UseDrawSolid 

Use DrawSolid()-function

UseDrawTransparent 

Use DrawTransparent()-function

UseDrawDebug 

Use DrawDebug()-function

UseDrawPost 

Use DrawPost()-function


Constructor & Destructor Documentation

PLS_API PLScene::SceneNode::SceneNode ( ) [protected]

Default constructor.

virtual PLS_API PLScene::SceneNode::~SceneNode ( ) [protected, virtual]

Destructor.


Member Function Documentation

This scene node is currently NOT active PLScene::SceneNode::pl_enum_value ( Invisible  ,
"This scene node is currently NOT visible"   
)
This scene node is currently NOT active This scene node is currently frozen and therefore not updated PLScene::SceneNode::pl_enum_value ( NoPause  ,
"Do NOT perform pause if the timer is paused. All scene nodes should perform a pause if the timer is paused! Exceptions for this should ONLY be special scene nodes like e.g. a camera node: If the camera node is set to not perform the  pause,
it can still be moved around while the game/simulation is  paused 
)
This scene node is currently NOT active This scene node is currently frozen and therefore not updated This scene node was created automatically during runtime and should not be saved with the scene Such scene nodes are also hidden for instance within the scene editor PLScene::SceneNode::pl_enum_value ( NoCulling  ,
"No visibility culling for this  node,
please(the container the node is in may still be culled...)"   
)
This scene node is currently NOT active This scene node is currently frozen and therefore not updated This scene node was created automatically during runtime and should not be saved with the scene Such scene nodes are also hidden for instance within the scene editor No lighting for this please PLScene::SceneNode::pl_enum_value ( CanOcclude  ,
"This scene node can occlude other scene nodes"   
)
This scene node is currently NOT active This scene node is currently frozen and therefore not updated This scene node was created automatically during runtime and should not be saved with the scene Such scene nodes are also hidden for instance within the scene editor No lighting for this please Shadow caster PLScene::SceneNode::pl_enum_value ( ReceiveShadow  ,
"Shadow receiver"   
) [inline]

Scene node debug flags.

< Debug mode is enabled (if this flag isn't set, no debug information is drawn at all)

< Do not create a draw debug signal

< Draw (the white) container space axis aligned bounding box

< Draw container space bounding sphere

< Do not draw the local coordinate axis

< Do not draw the name of the scene node

< Do not draw (the yellow) axis aligned bounding box

< Draw some basic debug text information

PLScene::SceneNode::pl_enum ( EDebugFlags  )
Debug mode is PLScene::SceneNode::enabled ( if this flag isn't  set,
no debug information is drawn at  all 
)
Debug mode is Do not create a draw debug signal PLScene::SceneNode::pl_enum_value ( DebugContainerAABBox  ,
"Draw (the white) container space axis aligned bounding box  
)
Debug mode is Do not create a draw debug signal Draw container space bounding sphere PLScene::SceneNode::pl_enum_value ( DebugNoLocalCoordinateAxis  ,
"Do not draw the local coordinate axis"   
)
Debug mode is Do not create a draw debug signal Draw container space bounding sphere Do not draw the name of the scene node PLScene::SceneNode::pl_enum_value ( DebugNoAABBox  ,
"Do not draw (the yellow) axis aligned bounding box  
)
PLScene::SceneNode::pl_class ( PLS_RTTI_EXPORT  ,
SceneNode  ,
"PLScene"  ,
PLCore::Object  ,
"Abstract scene node (leaf node) class"   
)
Data Textures IconSceneNode dds pl_properties_end PLScene::SceneNode::pl_attribute ( Flags  ,
pl_flag_type(EFlags ,
,
ReadWrite  ,
GetSet  ,
"Flags"  ,
""   
)
Data Textures IconSceneNode dds pl_properties_end PLScene::SceneNode::pl_flag_type ( EDebugFlags  )
Data Textures IconSceneNode dds pl_properties_end Debug PLScene::SceneNode::pl_attribute ( Position  ,
PLMath::Vector3  ,
PLMath::  Vector30.0f, 0.0f, 0.0f,
ReadWrite  ,
GetSet  ,
"Position"  ,
""   
)
Data Textures IconSceneNode dds pl_properties_end Debug PLScene::SceneNode::PLMath::Vector3 ( 0.  0f,
0.  0f,
0.  0f 
)
Data Textures IconSceneNode dds pl_properties_end Debug Rotation as Euler angles in if do always if do always draw this node before PLScene::SceneNode::pl_attribute ( AABBMin  ,
PLMath::Vector3  ,
PLMath::  Vector30.0f, 0.0f, 0.0f,
ReadWrite  ,
GetSet  ,
"Minimum position of the 'scene node space' axis aligned bounding box ,
""   
)
Data Textures IconSceneNode dds pl_properties_end Debug Rotation as Euler angles in if do always if do always draw this node before PLScene::SceneNode::PLMath::Vector3 ( 0.  0f,
0.  0f,
0.  0f 
)
Data Textures IconSceneNode dds pl_properties_end Debug Rotation as Euler angles in if do always if do always draw this node before Maximum position of the scene node space axis aligned bounding PLScene::SceneNode::pl_attribute ( Name  ,
PLCore::String  ,
""  ,
ReadWrite  ,
GetSet  ,
"Optional scene node name. If not  defined,
a name is chosen automatically"  ,
""   
)
Data Textures IconSceneNode dds pl_properties_end Debug Rotation as Euler angles in if do always if do always draw this node before Maximum position of the scene node space axis aligned bounding Scene node destruction PLScene::SceneNode::pl_signal_0 ( SignalActive  ,
"Scene node active state change signal ,
""   
)
Data Textures IconSceneNode dds pl_properties_end Debug Rotation as Euler angles in if do always if do always draw this node before Maximum position of the scene node space axis aligned bounding Scene node destruction Scene node visible state change PLScene::SceneNode::pl_signal_0 ( SignalContainer  ,
"Scene node parent container change signal ,
""   
)
Data Textures IconSceneNode dds pl_properties_end Debug Rotation as Euler angles in if do always if do always draw this node before Maximum position of the scene node space axis aligned bounding Scene node destruction Scene node visible state change Scene node axis aligned bounding box change PLScene::SceneNode::pl_signal_0 ( SignalInit  ,
"Scene node initialization signal ,
""   
)
Data Textures IconSceneNode dds pl_properties_end Debug Rotation as Euler angles in if do always if do always draw this node before Maximum position of the scene node space axis aligned bounding Scene node destruction Scene node visible state change Scene node axis aligned bounding box change Scene node de initialization change PLScene::SceneNode::pl_signal_1 ( SignalAddedToVisibilityTree  ,
VisNode ,
"Scene node was added to a visibility tree signal. Visibility node representing this scene node within the visibility tree as parameter."  ,
""   
)
Data Textures IconSceneNode dds pl_properties_end Debug Rotation as Euler angles in if do always if do always draw this node before Maximum position of the scene node space axis aligned bounding Scene node destruction Scene node visible state change Scene node axis aligned bounding box change Scene node de initialization change PLRenderer::Renderer const VisNode Scene node pre draw signal Used renderer and current visibility node of the scene PLScene::SceneNode::node ( can be a null  pointer)
Data Textures IconSceneNode dds pl_properties_end Debug Rotation as Euler angles in if do always if do always draw this node before Maximum position of the scene node space axis aligned bounding Scene node destruction Scene node visible state change Scene node axis aligned bounding box change Scene node de initialization change PLRenderer::Renderer const VisNode Scene node pre draw signal Used renderer and current visibility node of the scene PLScene::SceneNode::pl_signal_2 ( SignalDrawSolid  ,
PLRenderer::Renderer ,
const VisNode ,
"Scene node solid-draw signal. Used renderer and current visibility node of the scene node (can be a null pointer) as parameter."  ,
""   
)
Data Textures IconSceneNode dds pl_properties_end Debug Rotation as Euler angles in if do always if do always draw this node before Maximum position of the scene node space axis aligned bounding Scene node destruction Scene node visible state change Scene node axis aligned bounding box change Scene node de initialization change PLRenderer::Renderer const VisNode Scene node pre draw signal Used renderer and current visibility node of the scene PLRenderer::Renderer const VisNode Scene node transparent draw signal Used renderer and current visibility node of the scene PLScene::SceneNode::node ( can be a null  pointer)
Data Textures IconSceneNode dds pl_properties_end Debug Rotation as Euler angles in if do always if do always draw this node before Maximum position of the scene node space axis aligned bounding Scene node destruction Scene node visible state change Scene node axis aligned bounding box change Scene node de initialization change PLRenderer::Renderer const VisNode Scene node pre draw signal Used renderer and current visibility node of the scene PLRenderer::Renderer const VisNode Scene node transparent draw signal Used renderer and current visibility node of the scene PLScene::SceneNode::pl_signal_2 ( SignalDrawDebug  ,
PLRenderer::Renderer ,
const VisNode ,
"Scene node debug-draw signal. Used renderer and current visibility node of the scene node (can be a null pointer) as parameter."  ,
""   
)
Data Textures IconSceneNode dds pl_properties_end Debug Rotation as Euler angles in if do always if do always draw this node before Maximum position of the scene node space axis aligned bounding Scene node destruction Scene node visible state change Scene node axis aligned bounding box change Scene node de initialization change PLRenderer::Renderer const VisNode Scene node pre draw signal Used renderer and current visibility node of the scene PLRenderer::Renderer const VisNode Scene node transparent draw signal Used renderer and current visibility node of the scene PLRenderer::Renderer const VisNode Scene node post draw signal Used renderer and current visibility node of the scene PLScene::SceneNode::node ( can be a null  pointer)
virtual PLS_API PLCore::uint32 PLScene::SceneNode::GetFlags ( ) const [virtual]
virtual PLS_API void PLScene::SceneNode::SetFlags ( PLCore::uint32  nValue) [virtual]
virtual PLS_API PLCore::uint32 PLScene::SceneNode::GetDebugFlags ( ) const [virtual]
virtual PLS_API void PLScene::SceneNode::SetDebugFlags ( PLCore::uint32  nValue) [virtual]
PLS_API void PLScene::SceneNode::SetPosition ( const PLMath::Vector3 vValue)
PLS_API void PLScene::SceneNode::SetRotation ( const PLMath::Vector3 vValue)
PLS_API void PLScene::SceneNode::SetScale ( const PLMath::Vector3 vValue)
PLS_API void PLScene::SceneNode::SetAABBMin ( const PLMath::Vector3 vValue)
PLS_API void PLScene::SceneNode::SetAABBMax ( const PLMath::Vector3 vValue)

Returns the scene context the scene node is in.

Returns:
The scene context the scene node is in, can but shouldn't be a null pointer
Note:
  • Do NOT use this function inside a SceneNode-constructor

Returns the scene container the scene node is in.

Returns:
Scene container this node is in, or a null pointer if this is the root node
Note:
PLS_API bool PLScene::SceneNode::SetContainer ( SceneContainer cSceneContainer)

Sets the scene container the scene node is in.

Parameters:
[in]cSceneContainerScene container this node is in
Returns:
'true' if all went fine, else 'false'
Note:
  • Position, rotation, scale etc. are NOT manipulated, ONLY the container is changed!

Returns the scene root container.

Returns:
Scene root container, (this scene container can be the root scene container) a null pointer on error
Remarks:
This function searches for the scene root container (scene container without a parent) and returns it.

Gets the common container of this and another scene node.

Parameters:
[in]cSceneNodeThe other scene node
Returns:
Common container, or a null pointer

Returns the scene hierarchy this scene node is linked into.

Returns:
Scene hierarchy this scene node is linked into, a null pointer on error

Returns the unique absolute name of the scene node.

Returns:
Unique absolute name of the scene node (for instance 'Root.MyScene.MyNode')
Note:
  • This function 'constructs' the absolute scene node name. For performance reasons DON'T call this function a few million times per frame!
PLS_API bool PLScene::SceneNode::IsInitialized ( ) const

Is the scene node initialized?

Returns:
'true' if the scene node is initialized, else 'false'
PLS_API bool PLScene::SceneNode::IsActive ( ) const

Returns whether the scene node is active or not.

Returns:
'true' if the scene node is active, else 'false'
PLS_API void PLScene::SceneNode::SetActive ( bool  bActive = true)

Sets whether the scene node is active or not.

Parameters:
[in]bActiveShould the scene node be active?
Note:
  • Sets/unsets the 'Inactive'-flag

Evaluates whether or not the scene node is active in respect of the complete scene graph.

Returns:
'true' if the scene node is active in respect of the complete scene graph, else 'false'
Note:
  • For evaluation, the scene node "Inactive"-flag as well as the "Frozen"-flag are taken into account
  • Will be 'true' if the scene node AND the parent scene container (recursive!) are active
  • Will be 'false' if the scene node OR the parent scene container (recursive!) is inactive
  • Try to avoid using this method when possible, due to it's recursive nature it may affect performance when called to often
PLS_API bool PLScene::SceneNode::IsVisible ( ) const

Returns whether the scene node is visible or not.

Returns:
'true' if the scene node is visible, else 'false' (invisible/inactive)
Remarks:
If the scene node is not active it's automatically invisible but the 'Invisible'-flag is not touched. 'Visible' doesn't mean 'currently' on screen, it just means 'can be seen in general'.
PLS_API void PLScene::SceneNode::SetVisible ( bool  bVisible = true)

Sets whether the scene node is visible or not.

Parameters:
[in]bVisibleShould the scene node be visible?
Note:
  • Sets/unsets the 'Invisible'-flag
See also:
PLS_API bool PLScene::SceneNode::IsFrozen ( ) const

Returns whether the scene node is frozen or not.

Returns:
'true' if the scene node is frozen, else 'false'
PLS_API void PLScene::SceneNode::SetFrozen ( bool  bFrozen = true)

Sets whether the scene node is frozen or not.

Parameters:
[in]bFrozenShould the scene node be frozen?
Note:
  • Sets/unsets the 'Frozen'-flag
PLS_API PLCore::uint8 PLScene::SceneNode::GetDrawFunctionFlags ( ) const

Gets the scene node draw function flags.

Returns:
Scene node draw function flags (see EDrawFunctionFlags)
PLS_API void PLScene::SceneNode::SetDrawFunctionFlags ( PLCore::uint8  nFlags)

Sets the scene node draw function flags.

Parameters:
[in]nFlagsNew scene node draw function flags which should be set (see EDrawFunctionFlags)

Gets the node transform.

Returns:
Node transform
Remarks:
This function will get/set ONLY the scene node transform. No cell-portal check etc. is performed! When just 'moving' the node, use MoveTo() instead.
PLS_API void PLScene::SceneNode::MoveTo ( const PLMath::Vector3 vPosition)

Moves the node to a new position.

Parameters:
[in]vPositionNew node position
Remarks:
Unlike 'SetPosition()' this function checks whether or not the node passes a cell-portal while 'moving' from the current position to the new one.

Returns the axis align bounding box in 'scene node space'.

Returns:
The axis align bounding box in 'scene node space'
Note:
  • The 'scene node space' can be seen as 'object space' :)
  • Use GetContainerAABoundingBox() to get this bounding box in 'scene container space' (see it as 'world space' :)
  • This axis align bounding box is recalculated internally if required
  • Within the default implementation, the axis align bounding box is not recalculated
PLS_API void PLScene::SceneNode::SetAABoundingBox ( const PLMath::AABoundingBox cAABoundingBox)

Sets the axis align bounding box in 'scene node space'.

Parameters:
[in]cAABoundingBoxThe axis align bounding box in 'scene node space'
See also:

Returns the current axis align bounding box in 'scene container space'.

Returns:
The current axis align bounding box in 'scene container space'
Note:
  • If position, rotation, scale or the bounding box itself was changed, the current axis align bounding box in 'scene container space' is recalculated internally before it is returned
See also:

Returns the bounding sphere in 'scene node space'.

Returns:
The bounding sphere in 'scene node space'
Note:
  • This sphere recalculated internally if the bounding box was changed
  • Within the default implementation, the bounding sphere is calculated by using the the bounding box
  • Note that it's not guaranteed that this sphere totally includes the axis align bounding box in any space. A derived class may decide that another radius fit's the needs better - for instance a light is using it's radius.
See also:

Returns the current bounding sphere in 'scene container space'.

Returns:
The current bounding in 'scene container space'
Note:
  • If position, rotation, scale or the bounding box itself was changed, the current bounding sphere in 'scene container space' is recalculated internally before it is returned
  • Note that it's not guaranteed that this sphere totally includes the axis align bounding box in 'scene container space' (that's no bug or so :)
See also:
bool PLScene::SceneNode::IsContainer ( ) const [inline]

Returns whether this scene node is a scene container (SceneContainer) or not.

Returns:
'true' if this scene node is a scene container, else 'false'
Note:
  • More performant than IsInstanceOf("PLScene::SceneContainer")
bool PLScene::SceneNode::IsCell ( ) const [inline]

Returns whether this scene node is a cell (SCCell) or not.

Returns:
'true' if this scene node is a cell, else 'false'
Note:
  • More performant than IsInstanceOf("PLScene::SCCell")
bool PLScene::SceneNode::IsPortal ( ) const [inline]

Returns whether this scene node is a portal (SNPortal) or not.

Returns:
'true' if this scene node is a portal, else 'false'
Note:
  • More performant than IsInstanceOf("PLScene::SNPortal")
bool PLScene::SceneNode::IsCamera ( ) const [inline]

Returns whether this scene node is a camera (SNCamera) or not.

Returns:
'true' if this scene node is a camera, else 'false'
Note:
  • More performant than IsInstanceOf("PLScene::SNCamera")
bool PLScene::SceneNode::IsLight ( ) const [inline]

Returns whether this scene node is a light (SNLight) or not.

Returns:
'true' if this scene node is a light, else 'false'
Note:
  • More performant than IsInstanceOf("PLScene::SNLight")
bool PLScene::SceneNode::IsFog ( ) const [inline]

Returns whether this scene node is a fog (SNFog) or not.

Returns:
'true' if this scene node is a fog, else 'false'
Note:
  • More performant than IsInstanceOf("PLScene::SNFog")
PLS_API PLCore::uint32 PLScene::SceneNode::GetNumOfModifiers ( const PLCore::String sClass = "") const

Returns the number of modifiers.

Parameters:
[in]sClassModifier class name to return the number of instances from, if empty return the total number of modifiers
Returns:
Number of modifiers
PLS_API SceneNodeModifier* PLScene::SceneNode::AddModifier ( const PLCore::String sClass,
const PLCore::String sParameters = "" 
)

Adds a modifier.

Parameters:
[in]sClassModifier class name of the modifier to add
[in]sParametersOptional parameter string
Returns:
Pointer to the modifier instance if all went fine, else a null pointer (maybe unknown/incompatible modifier)
PLS_API SceneNodeModifier* PLScene::SceneNode::GetModifier ( const PLCore::String sClass,
PLCore::uint32  nIndex = 0 
) const

Returns a modifier.

Parameters:
[in]sClassModifier class name of the modifier to return
[in]nIndexModifier index, used if sClass is empty or if there are multiple instances of this modifier class
Returns:
The requested modifier, a null pointer on error

Removes a modifier by using a given reference to the modifier to remove.

Parameters:
[in]cModifierModifier to remove, after this method succeeded, the given reference is no longer valid
Returns:
'true' if all went fine, else 'false' (maybe invalid modifier)
PLS_API bool PLScene::SceneNode::RemoveModifier ( const PLCore::String sClass,
PLCore::uint32  nIndex = 0 
)

Removes a modifier.

Parameters:
[in]sClassModifier class name of the modifier to remove
[in]nIndexModifier index, used if sClass is empty or if there are multiple instances of this modifier class
Returns:
'true' if all went fine, else 'false' (maybe invalid modifier)

Clears all modifiers.

Returns a pointer to the mesh handler.

Returns:
Pointer to the mesh handler, a null pointer if there's no mesh handler
Note:
  • Returns a null pointer by default, function can be implemented in derived classes
See also:

Reimplemented in PLScene::SNMesh.

virtual PLS_API PLInput::Controller* PLScene::SceneNode::GetInputController ( ) const [virtual]

Get input controller.

Returns:
Input controller (can be a null pointer)
Note:
  • The default implementation is empty
  • Derived scene nodes may add a string attribute called "InputSemantic" to tell the world about the purpose of the input controller (for example controlling a free camera)
virtual PLS_API void PLScene::SceneNode::DrawPre ( PLRenderer::Renderer cRenderer,
const VisNode pVisNode = nullptr 
) [virtual]

This function is called before any solid parts of the scene are drawn.

Parameters:
[in]cRendererThe used renderer
[in]pVisNodeThe current visibility node of this scene node, can be a null pointer
Remarks:
The DrawPre(), DrawSolid(), DrawTransparent(), DrawDebug() and DrawPost() allows custom draw calls inside a scene rendering process. The function names indicate when each function is called during scene rendering. It's not predictable which render states are currently set if these functions are called and these draw functions will NOT interact automatically with 'uniform lighting and shadowing' performed on nodes providing a mesh. (GetMeshHandler()) So, try to avoid using these functions whenever possible and provide a scene node mesh instead. The default implementation does only informing the listeners, functions can be implemented in derived classes - only DrawDebug() provides a default implementation to draw for instance the bounding box of the scene node. From outside, this draw functions should ONLY be called if a node is active & visible & 'on the screen' & the draw function of the function is set. (see GetDrawFunctionFlags()) It's recommended to call these functions ONLY from inside a scene renderer! If you don't call the base implementation of a scene node draw function inside your derived draw function or if you are rendering the mesh of the node, you should call SetDraw() to mark this node as drawn. After the scene node was updated, this drawn-flag is reset automatically. Use this this information to avoid useless scene node updates. For instance do not update particle effects or other dynamic meshes if they are currently 'invisible'.
Note:
  • The default implementation only emits the SignalDrawPre signal
  • Should only be called if the draw function flag 'UseDrawPre' is set

Reimplemented in PLScene::SCRenderToTexture, and PLScene::SNBitmap2D.

virtual PLS_API void PLScene::SceneNode::DrawSolid ( PLRenderer::Renderer cRenderer,
const VisNode pVisNode = nullptr 
) [virtual]

This function is called when the solid parts of the scene are drawn.

Parameters:
[in]cRendererThe used renderer
[in]pVisNodeThe current visibility node of this scene node, can be a null pointer
Note:
  • The default implementation only emits the SignalDrawSolid signal
See also:

Reimplemented in PLScene::SNLineGrid, PLScene::SNLine, PLScene::SNLineBox, PLScene::SNBitmap3D, and PLScene::SNPoint.

virtual PLS_API void PLScene::SceneNode::DrawTransparent ( PLRenderer::Renderer cRenderer,
const VisNode pVisNode = nullptr 
) [virtual]

This function is called when the transparent parts of the scene are drawn.

Parameters:
[in]cRendererThe used renderer
[in]pVisNodeThe current visibility node of this scene node, can be a null pointer
Note:
  • The default implementation only emits the SignalDrawTransparent signal
See also:

Reimplemented in PLScene::SNText3D, PLScene::SNLineGrid, PLScene::SNLine, PLScene::SNLineBox, PLScene::SNBitmap3D, and PLScene::SNPoint.

virtual PLS_API void PLScene::SceneNode::DrawDebug ( PLRenderer::Renderer cRenderer,
const VisNode pVisNode = nullptr 
) [virtual]

This function is called when the debug parts of the scene are drawn.

Parameters:
[in]cRendererThe used renderer
[in]pVisNodeThe current visibility node of this scene node, can be a null pointer
Note:
  • Should only be called if the 'UseDrawDebug' draw flag and the 'DebugEnabled' debug flag is set
  • Beside drawing scene node stuff, the default implementation emits the SignalDrawDebug signal
See also:

Reimplemented in PLPhysics::SNRagdoll, PLScene::SNCamera, PLScene::SNMesh, PLScene::SNSpotLight, PLScene::SCRenderToTexture, PLScene::SNPortal, and PLScene::SNPointLight.

virtual PLS_API void PLScene::SceneNode::DrawPost ( PLRenderer::Renderer cRenderer,
const VisNode pVisNode = nullptr 
) [virtual]

This function is called after transparent parts of the scene are drawn.

Parameters:
[in]cRendererThe used renderer
[in]pVisNodeThe current visibility node of this scene node, can be a null pointer
Note:
  • The default implementation only emits the SignalDrawPost signal
See also:

Reimplemented in PLEngine::SNLoadScreen, PLEngine::SNConsole, PLEngine::SNLoadScreenBase, PLScene::SNBitmap2D, PLEngine::SNLoadScreenPL, PLScene::SNText2D, PLScene::SNCoordinateAxis3D, and PLScene::SNCoordinateAxisRotation.

void PLScene::SceneNode::DirtyAABoundingBox ( ) [inline, protected]

The current axis align bounding box is dirty and must be updated if used next time.

virtual PLS_API void PLScene::SceneNode::InitFunction ( ) [protected, virtual]

This function is called when the scene node gets initialized.

Reimplemented in PLPhysics::SNRagdoll, PLScene::SceneContainer, PLScene::SCRenderToTexture, PLSound::SNSound, PLPhysics::SCPhysicsWorld, and PLScene::SNArea.

virtual PLS_API void PLScene::SceneNode::DeInitFunction ( ) [protected, virtual]

This function is called when the scene node gets de-initialized.

Reimplemented in PLPhysics::SNRagdoll, PLScene::SceneContainer, PLScene::SNMesh, and PLPhysics::SCPhysicsWorld.

virtual PLS_API void PLScene::SceneNode::OnActivate ( bool  bActivate) [protected, virtual]

Called when the scene node has been activated or deactivated.

Parameters:
[in]bActivate'true' if the scene node is now active, else 'false'
Note:
  • The scene node "Inactive"-flag as well as the "Frozen"-flag are taken into account
  • 'bActivate' will be 'true' if the scene node AND the parent scene container (recursive!) are active
  • 'bActivate' will be 'false' if the scene node OR the parent scene container (recursive!) is inactive
  • The default implementation calls the "OnActivate()" of all attached scene node modifiers

Reimplemented in PLPhysics::SNRagdoll, PLScene::SceneContainer, and PLPhysics::SCPhysicsWorld.

virtual PLS_API void PLScene::SceneNode::UpdateAABoundingBox ( ) [protected, virtual]

Updates the axis align bounding box in 'scene node space'.

Remarks:
This function is called when the axis align bounding box needs to be calculated. One can overwrite the default implementation to calculate the axis align bounding box in another way. The default implementation is empty. (current set axis align bounding box is still used)
Note:
  • We recommend to use 'SetAABoundingBox()' inside your own implementation to set the new axis align bounding box, this function will take care of all other required updates

Reimplemented in PLScene::SNCamera, PLScene::SNSpotLight, PLScene::SNPointLight, PLScene::SNLine, and PLScene::SNLineBox.

virtual PLS_API void PLScene::SceneNode::GetBoundingSphere ( PLMath::Sphere cSphere) [protected, virtual]

Returns the bounding sphere in 'scene node space'.

Parameters:
[out]cSphereReceives the bounding sphere in 'scene node space'
Remarks:
This function is called when the sphere needs to be calculated. One can overwrite the default implementation to calculate the sphere in another way.

Reimplemented in PLScene::SNSpotLight, and PLScene::SNPointLight.

virtual PLS_API void PLScene::SceneNode::GetContainerBoundingSphere ( PLMath::Sphere cSphere) [protected, virtual]

Returns the current bounding sphere in 'scene container space'.

Parameters:
[out]cSphereReceives the current bounding in 'scene container space'
See also:

Reimplemented in PLScene::SNSpotLight, and PLScene::SNPointLight.

virtual PLS_API void PLScene::SceneNode::OnAddedToVisibilityTree ( VisNode cVisNode) [protected, virtual]

Called when the scene node was added to a visibility tree.

Parameters:
[in]cVisNodeVisibility node which is representing this scene node within the visibility tree
Note:
  • The default implementation only emits the SignalAddedToVisibilityTree signal
  • You can use this method to get informed whether or not the scene node was, for example, rendered to the screen in order to update only seen scene nodes
  • You can use this method to manipulate the world matrix of the visibility node (for example useful for billboards)
virtual PLS_API bool PLScene::SceneNode::Delete ( bool  bProtectedToo = false) [override, virtual]

Destroys the element.

Parameters:
[in]bProtectedTooDo also destroy the element if it is protected?
Returns:
'true' if all went fine, else 'false' (maybe the element is protected?)
Note:
  • Whether the element is destroyed within this function or just added for instance to a kind of 'destruction list' is implementation dependent.

Reimplemented from PLCore::Element< SceneNode >.

virtual PLS_API bool PLScene::SceneNode::SetName ( const PLCore::String sName) [override, virtual]

Sets the element name.

Parameters:
[in]sNameNew element name
Returns:
'true' if all went fine, else 'false' (maybe the name is already used)
See also:
Note:
  • Overload this function if it's for instance not allowed to change the name of the element

Reimplemented from PLCore::Element< SceneNode >.


Member Data Documentation

This scene node is currently NOT active This scene node is currently frozen and therefore not updated This scene node was created automatically during runtime and should not be saved with the scene Such scene nodes are also hidden for instance within the scene editor No lighting for this PLScene::SceneNode::node
Data Textures IconSceneNode dds pl_properties_end PLScene::SceneNode::ReadWrite
Data Textures IconSceneNode dds pl_properties_end PLScene::SceneNode::GetSet
Data Textures IconSceneNode dds pl_properties_end Debug PLScene::SceneNode::flags
Data Textures IconSceneNode dds pl_properties_end Debug PLScene::SceneNode::ReadWrite
Data Textures IconSceneNode dds pl_properties_end Debug PLScene::SceneNode::GetSet
Data Textures IconSceneNode dds pl_properties_end Debug Rotation as Euler angles in PLScene::SceneNode::degree
Data Textures IconSceneNode dds pl_properties_end Debug Rotation as Euler angles in PLScene::SceneNode::Inc
Initial value:
")
        pl_attribute(MaxDrawDistance,   float,                      0.0f,                               ReadWrite,  DirectValue,    "Maximum draw distance of the scene node to the camera
Data Textures IconSceneNode dds pl_properties_end Debug Rotation as Euler angles in if do always PLScene::SceneNode::draw
Data Textures IconSceneNode dds pl_properties_end Debug Rotation as Euler angles in if do always if PLScene::SceneNode::negative
Data Textures IconSceneNode dds pl_properties_end Debug Rotation as Euler angles in if do always if do always draw this node before PLScene::SceneNode::other
Data Textures IconSceneNode dds pl_properties_end Debug Rotation as Euler angles in if do always if do always draw this node before PLScene::SceneNode::ReadWrite
Data Textures IconSceneNode dds pl_properties_end Debug Rotation as Euler angles in if do always if do always draw this node before PLScene::SceneNode::GetSet
Data Textures IconSceneNode dds pl_properties_end Debug Rotation as Euler angles in if do always if do always draw this node before Maximum position of the scene node space axis aligned bounding PLScene::SceneNode::box
Data Textures IconSceneNode dds pl_properties_end Debug Rotation as Euler angles in if do always if do always draw this node before Maximum position of the scene node space axis aligned bounding Scene node destruction PLScene::SceneNode::signal
Data Textures IconSceneNode dds pl_properties_end Debug Rotation as Euler angles in if do always if do always draw this node before Maximum position of the scene node space axis aligned bounding Scene node destruction Scene node visible state change PLScene::SceneNode::signal
Data Textures IconSceneNode dds pl_properties_end Debug Rotation as Euler angles in if do always if do always draw this node before Maximum position of the scene node space axis aligned bounding Scene node destruction Scene node visible state change Scene node axis aligned bounding box change PLScene::SceneNode::signal
Data Textures IconSceneNode dds pl_properties_end Debug Rotation as Euler angles in if do always if do always draw this node before Maximum position of the scene node space axis aligned bounding Scene node destruction Scene node visible state change Scene node axis aligned bounding box change Scene node de initialization change PLScene::SceneNode::signal

The documentation for this class was generated from the following files:


PixelLight PixelLight 0.9.10-R1
Copyright (C) 2002-2011 by The PixelLight Team
Last modified Fri Dec 23 2011 15:51:24
The content of this PixelLight document is published under the
Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported