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

Abstract scene node modifier (other name: controller) class. More...

#include <SceneNodeModifier.h>

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

List of all members.

Public Types

enum  EFlags { Inactive = 1<<0, Automatic = 1<<1 }
 Scene node modifier flags. More...

Public Member Functions

 pl_enum (EFlags) pl_enum_value(Inactive
This scene renderer pass is
currently NOT active 
pl_enum_value (Automatic,"This scene node modifier was created automatically during runtime and should not be saved with the scene. Such scene nodes modifiers may also be hidden for instance within a scene editor.") pl_enum_endpl_class(PLS_RTTI_EXPORT
This scene renderer pass is
currently NOT active Abstract
scene node 
modifier (other name:controller) class") pl_properties pl_property("SceneNodeClass"
This scene renderer pass is
currently NOT active Abstract
scene node PLScene::SceneNode
pl_properties_end pl_attribute(Flags,
pl_flag_type(EFlags),
0, ReadWrite, GetSet,"Flags","")
pl_class_end public virtual
PLS_API void 
SetFlags (PLCore::uint32 nValue)
SceneNodeGetSceneNode () const
 Returns the owner scene node.
int GetSceneNodeIndex ()
 Returns the index of this scene node modifier within the scene node modifier list of the owner scene node.
PLS_API SceneNodeModifierClone ()
 Creates a clone of this scene node modifier within the owner scene node.
PLS_API SceneNodeModifierCloneAtIndex (int nPosition)
 Creates a clone of this scene node modifier within the owner scene node at a certain index inside the scene node modifier list.
SceneContextGetSceneContext () const
 Returns the scene context the owner scene node is in.
PLS_API PLCore::String GetSceneNodeClass () const
 Returns the scene node class this modifier operates on.
PLS_API PLCore::String GetAbsoluteName () const
 Returns an unique absolute name for the scene node modifier.
bool IsActive () const
 Is the scene node modifier active?
PLS_API void SetActive (bool bActive=true)
 Sets whether the scene node modifier is active or not.
virtual PLS_API
PLInput::Controller
GetInputController () const
 Get input controller.

Public Attributes

This scene renderer pass is
currently NOT active 
SceneNodeModifier
This scene renderer pass is
currently NOT active 
PLScene

Protected Member Functions

virtual PLS_API void InformedOnInit ()
 Informed on scene node modifier initialization.
virtual PLS_API void OnActivate (bool bActivate)
 Called when the scene node modifier has been activated or deactivated.
PLS_API SceneNodeModifier (SceneNode &cSceneNode)
 Constructor.
virtual PLS_API ~SceneNodeModifier ()
 Destructor.

Detailed Description

Abstract scene node modifier (other name: controller) class.

Remarks:
A scene node modifier modifies the behavior of a scene node. For instance it adds a physical behavior, make a light source flickering etc. The 'SceneNodeClass' property is the information on which class this modifier operates on. For instance, it's not possible to assign a light flickering modifier to a a scene node which is a noise.
Note:
  • Derived classes should use a 'SNM'-prefix (example: SNMTransform)

Member Enumeration Documentation

Scene node modifier flags.

Enumerator:
Inactive 

This scene node modifier is currently NOT active

Automatic 

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

Reimplemented in PLEngine::SNMPhysicsCharacterController, PLPhysics::SNMPhysicsJoint, PLEngine::SNMPhysicsCharacter, PLScene::SNMPositionKeyframeAnimation, PLScene::SNMMeshJoint, PLScene::SNMRotationKeyframeAnimation, PLScene::SNMScaleKeyframeAnimation, PLPhysics::SNMPhysicsBody, PLEngine::SNMLookController, PLScene::SNMDrawRectangle, PLSound::SNMSound, PLScene::SNMMeshUpdate, PLScene::SNMAnchor, and PLScene::SNMLightRandomAnimation.


Constructor & Destructor Documentation

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

Constructor.

Parameters:
[in]cSceneNodeOwner scene node
virtual PLS_API PLScene::SceneNodeModifier::~SceneNodeModifier ( ) [protected, virtual]

Destructor.


Member Function Documentation

This scene renderer pass is currently NOT active PLScene::SceneNodeModifier::pl_enum_value ( Automatic  ,
"This scene node modifier was created automatically during runtime and should not be saved with the scene. Such scene nodes modifiers may also be hidden for instance within a scene editor."   
)
This scene renderer pass is currently NOT active Abstract scene node PLScene::SceneNodeModifier::modifier ( other name:controller  )
This scene renderer pass is currently NOT active Abstract scene node PLScene::SceneNode pl_properties_end pl_attribute (Flags, pl_flag_type(EFlags), 0, ReadWrite, GetSet, "Flags", "") pl_class_end public virtual PLS_API void PLScene::SceneNodeModifier::SetFlags ( PLCore::uint32  nValue) [virtual]

Returns the owner scene node.

Returns:
The owner scene node

Returns the index of this scene node modifier within the scene node modifier list of the owner scene node.

Returns the index of the given modifier.

Returns:
The index of this scene node modifier within the scene node modifier list of the owner scene node, <0 on failure

Creates a clone of this scene node modifier within the owner scene node.

Returns:
The created clone of this scene node modifier within the owner scene node, null pointer on error

Creates a clone of this scene node modifier within the owner scene node at a certain index inside the scene node modifier list.

Parameters:
[in]nPositionIndex position specifying the location within the scene node modifier list where the scene node modifier should be added, <0 for at the end
Returns:
The created clone of this scene node modifier within the owner scene node, null pointer on error

Returns the scene context the owner scene node is in.

Returns:
The scene context the owner scene node is in, can but shouldn't be a null pointer

Returns the scene node class this modifier operates on.

Returns:
The scene node class this modifier operates on

Returns an unique absolute name for the scene node modifier.

Returns:
An unique absolute name for the scene node modifier
Remarks:
Constructs an unique absolute name for the scene node modifier by using "<absolute owner scene node name>:<scene node modifier class name>.<zero based index>" (for instance 'Root.MyScene.MyNode:SNMRotationLinearAnimation.0'). Do not use this method on a regular basis.
bool PLScene::SceneNodeModifier::IsActive ( ) const [inline]

Is the scene node modifier active?

Returns:
'true' if the scene node modifier is active, else 'false'
Note:
  • Please note that this active state doesn't necessarily mean that the owner scene node is active as well!
PLS_API void PLScene::SceneNodeModifier::SetActive ( bool  bActive = true)

Sets whether the scene node modifier is active or not.

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

Get input controller.

Returns:
Input controller (can be a null pointer)
Note:
  • The default implementation is empty
  • Derived scene node modifiers may add a string attribute called "InputSemantic" to tell the world about the purpose of the input controller (for example controlling a free camera)

Reimplemented in PLEngine::SNMPhysicsCharacterController, PLEngine::SNMLookController, PLEngine::SNMCameraZoomController, and PLEngine::SNMOrbitingController.

virtual PLS_API void PLScene::SceneNodeModifier::InformedOnInit ( ) [protected, virtual]

Informed on scene node modifier initialization.

Note:
  • The default implementation is empty

Reimplemented in PLPhysics::SNMPhysicsBody, PLPhysics::SNMPhysicsJoint, PLEngine::SNMPhysicsCharacterController, PLEngine::SNMLookController, PLEngine::SNMCameraZoomController, and PLEngine::SNMOrbitingController.

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

Called when the scene node modifier has been activated or deactivated.

Parameters:
[in]bActivate'true' if the scene node modifier 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 modifier AND the owner scene node AND it's parent scene container (recursive!) are active
  • 'bActivate' will be 'false' if the scene node modifier OR the owner scene node OR it's parent scene container (recursive!) is inactive
  • The default implementation is empty

Reimplemented in PLEngine::SNMPhysicsCharacter, PLPhysics::SNMPhysicsBody, PLScene::SNMPositionPath, PLSound::SNMSound, PLScene::SNMTransformGizmo, PLScene::SNMPositionKeyframeAnimation, PLScene::SNMRotationKeyframeAnimation, PLScene::SNMScaleKeyframeAnimation, PLScene::SNMMeshJoint, PLEngine::SNMPhysicsCharacterController, PLScene::SNMAnchor, PLEngine::SNMLookController, PLScene::SNMLightRandomAnimation, PLScene::SNMDrawRectangle, PLScene::SNMPositionLinearAnimation, PLEngine::SNMCameraZoomController, PLScene::SNMMeshUpdate, PLEngine::SNMOrbitingController, PLScene::SNMMeshMorph, PLScene::SNMRotationTarget, PLScene::SNMBillboardSpherical, PLPhysics::SNMPhysicsUpdateVelocity, PLScene::SNMBillboardCylindrical, PLScene::SNMDeactivationOnTimeout, PLEngine::SNMEgoOrbitingController, PLScene::SNMMeshMorphBlink, PLScene::SNMCameraZoom, PLScene::SNMMeshMorphCameraNear, PLScene::SNMRotationFixRoll, PLEngine::SNMEgoLookController, PLScene::SNMPositionRandomAnimation, PLScene::SNMRotationMoveDirection, PLScene::SNMScaleRandomAnimation, PLScene::SNMPositionMoveToTarget, PLScene::SNMRotationLinearAnimation, PLPhysics::SNMPhysicsForce, and PLPhysics::SNMPhysicsTorque.


Member Data Documentation

This scene renderer pass is currently NOT active PLScene::SceneNodeModifier::SceneNodeModifier
This scene renderer pass is currently NOT active PLScene::SceneNodeModifier::PLScene

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


PixelLight PixelLight 0.9.11-R1
Copyright (C) 2002-2012 by The PixelLight Team
Last modified Thu Feb 23 2012 14:09:40
The content of this PixelLight document is published under the
Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported