File OgreRenderComponent.h

namespace Ogre

File: MovableText.h

Description: This creates a billboarding object that display a text. Note: This object must have a dedicated scene node since it will rotate it to face the camera (OGRE 2.1)

Author

2003 by cTh see gavocanov@rambler.ru 2006 by barraq see nospam@barraquand.com 2012 to work with newer versions of OGRE by MindCalamity mindcalamity@gmail.com 2015 to work on OGRE 2.1 (but not on older versions anymore) by Jayray jeremy.richert1@gmail.com

namespace Gsage
class OgreRenderComponent : public EventDispatcher, public RenderComponent
#include <OgreRenderComponent.h>

Ogre render system component

Public Types

enum RotationAxis

Values:

X_AXIS
Y_AXIS
Z_AXIS
NONE

Public Functions

OgreRenderComponent()
virtual ~OgreRenderComponent()
void prepare(Ogre::SceneManager *sceneManager, ResourceManager *resourceManager, OgreObjectManager *objectManager)

Set scene manager instance

Parameters
  • sceneManager: Ogre::SceneManager instance to allow creating objects on scene

  • resourceManager: ResourceManager* instance to allow component loading additional resource

  • objectManager: OgreObjectManager instance to allow creating root tree

void setPosition(const Ogre::Vector3 &position)

Set render component position

Parameters
  • position: New position

void setOrientation(const Ogre::Quaternion &orientation)

Set render component orientation (equal to Ogre::SceneNode::setOrientation)

Parameters
  • orientation: Orientation quaternion (absolute)

void rotate(const Ogre::Quaternion &rotation)

Rotates render component

Parameters
  • rotation: Rotation quaternion (relative)

void lookAt(const Ogre::Vector3 &position, const Geometry::RotationAxis rotationAxis, Geometry::TransformSpace transformSpace = Geometry::TS_WORLD)

Equalient to Ogre::Node lookAt

Parameters
  • position: Position to look at

  • rotationAxis: rotate only in one axis

  • transformSpace: ogre transform space

void lookAt(const Ogre::Vector3 &position)

Equalient to Ogre::Node lookAt

Parameters
  • position: Position to look at

const Ogre::Vector3 getOgrePosition()

Get current position

const Ogre::Vector3 getOgreScale()

Get current scale

const Ogre::Vector3 getOgreDirection()

Get current direction vector, uses orientationVector from config to detect front of the object

const Ogre::Quaternion getOgreOrientation()

Get object orientation

const Ogre::Quaternion getOgreFaceOrientation()

Get object orientation with respect to the direction vector

void rotate(const Gsage::Quaternion &rotation)

Rotates render component using Gsage::Quaternion

Parameters
  • rotation: Rotation quaternion (relative)

void lookAt(const Gsage::Vector3 &position, const Geometry::RotationAxis rotationAxis, Geometry::TransformSpace transformSpace = Geometry::TS_WORLD)

Equalient to Ogre::Node lookAt

Parameters
  • position: Position to look at

  • rotationAxis: rotate only in one axis

  • transformSpace: ogre transform space

void lookAt(const Gsage::Vector3 &position)

Parameters
  • position: Position to look at

void setPosition(const Gsage::Vector3 &position)

Set position by using Gsage::Vector

Parameters
  • position: New position

void setOrientation(const Gsage::Quaternion &orientation)

Set orientation using Gsage::Quaternion

Parameters
  • orientation: Orientation quaternion (absolute)

const Gsage::Vector3 getPosition()

Get current position

const Gsage::Vector3 getScale()

Get current scale

const Gsage::Vector3 getDirection()

Get current direction vector, uses orientationVector from config to detect front of the object

const Gsage::Quaternion getOrientation()

Get object orientation

const Gsage::Quaternion getFaceOrientation()

Get object orientation with respect to the direction vector

bool adjustAnimationStateSpeed(const std::string &name, double speed)

Adjusts animation speed for state

Parameters
  • name: Animation state name

  • speed: animation speed

bool setAnimationState(const std::string &name)

Sets animation state

Return

true if state was found

Parameters

bool playAnimation(const std::string &name, int times = -1, double speed = 1, double offset = 0, bool reset = false)

Plays animation

Return

true if animation group exists

Parameters
  • name: Animation group name

  • times: Repeat times, -1 means loop

  • speed: Animation speed, 1 is normal speed

  • offset: Animation start offset

  • reset: Starts animation immediately

void resetAnimationState()

Resets animation state to default

DataProxy getRootNode()

Reads component root node

void setRootNode(const DataProxy &value)

Builds node tree from DataProxy.

Example:

{
  "position": "0,0,0",
  "scale": "0,0,0",
  "children": [
  {
    "type": "model",
    "mesh": "mesh.mesh"
  }
  ]
}

DataProxy getAnimations()

Reads component animations

void setAnimations(const DataProxy &value)

Sets animations

DataProxy should have the following format:

{
  "states": {
    "state1": {"base": {"<model-name>": "<anim-name>"}}
  }
}

SceneNodeWrapper *getRoot()

Get root SceneNodeWrapper

void setResources(const DataProxy &resources)

Read additional resources paths from the DataProxy

Parameters
  • resources: DataProxy with all resources settings

const DataProxy &getResources() const

Get resources

Public Static Attributes

const std::string SYSTEM
const Event::Type POSITION_CHANGE

Private Members

bool mAddedToScene
AnimationScheduler mAnimationScheduler
SceneNodeWrapper *mRootNode
DataProxy mResources
Ogre::SceneManager *mSceneManager
ResourceManager *mResourceManager
OgreObjectManager *mObjectManager

Friends

friend Gsage::OgreRenderSystem