# Home    # nevrax.com   
Nevrax
Nevrax.org
#News
#Mailing-list
#Documentation
#CVS
#Bugs
#License
Docs
 
Documentation  
Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages   Search  

NL3D::UInstanceGroup Class Reference

Game interface for managing group instance. More...

#include <u_instance_group.h>

Inheritance diagram for NL3D::UInstanceGroup:

NL3D::CInstanceGroupUser List of all members.

Public Types

enum  TState { StateNotAdded = 0, StateAdding, StateAdded }

Public Methods

virtual ~UInstanceGroup ()
 Instance group. More...

virtual void setTransformNameCallback (ITransformName *pTN)=0
 Set up the callback used at loading and instanciating of the instanceGroup. More...

virtual void setAddRemoveInstanceCallback (IAddRemoveInstance *callback)=0
 set a callback to know when an instance has been added / removed from scene. More...

virtual void setIGAddBeginCallback (IIGAddBegin *callback)=0
 Set a callback to know when an instance group is being created, and how many instances it contains. More...

virtual void addToScene (class UScene &scene, UDriver *driver=NULL)=0
 Add all the instances to the scene. More...

virtual void addToSceneAsync (class UScene &scene, UDriver *driver=NULL)=0
virtual void stopAddToSceneAsync ()=0
virtual TState getAddToSceneState ()=0
virtual void removeFromScene (class UScene &scene)=0
 remove this instance group from the given scene. More...

virtual uint getNumInstance () const=0
 Return the count of shape instance in this group. More...

virtual const std::string & getShapeName (uint instanceNb) const=0
 Return the name of the shape refered by an instance of the group. More...

virtual const std::string & getInstanceName (uint instanceNb) const=0
 Return the name of an instance of the group. More...

virtual void getInstanceMatrix (uint instanceNb, NLMISC::CMatrix &dest) const=0
 Return the transformation matrix of an instance in the group NB no pivot is added. More...

virtual const NLMISC::CVectorgetInstancePos (uint instanceNb) const=0
 Return the position of an instance of the group. More...

virtual const NLMISC::CQuatgetInstanceRot (uint instanceNb) const=0
 Return the rotation of an instance of the group. More...

virtual const NLMISC::CVectorgetInstanceScale (uint instanceNb) const=0
 Return the scale of an instance of the group. More...

virtual UInstancegetByName (std::string &name)=0
 Return the instance at a given position. More...

virtual const UInstancegetByName (std::string &name) const=0
 Return the instance at a given position (const version). More...

virtual void setLightFactor (const std::string &LightName, NLMISC::CRGBA nFactor)=0
 Control a lightmap. More...

virtual void setBlendShapeFactor (const std::string &bsName, float rFactor)=0
 Control a blendshape. More...

virtual void createRoot (class UScene &scene)=0
 Create the link between scene and instance group before the addToScene to allow the instance group to be moved without being linked to a father cluster system. More...

virtual void setClusterSystem (class UInstanceGroup *pClusterSystem)=0
 All the instances must be checked against the following cluster system. More...

virtual bool linkToParentCluster (UInstanceGroup *father)=0
 Link this ig clusters as sons of clusters of 'ig' that conatains them. More...

virtual void getDynamicPortals (std::vector< std::string > &names)=0
 Get all dynamic portals in the instance group. More...

virtual void setDynamicPortal (std::string &name, bool opened)=0
 Set the state of a dynamic portal. More...

virtual bool getDynamicPortal (std::string &name)=0
 Get the state of a dynamic portal. More...

virtual void setPos (const NLMISC::CVector &pos)=0
 Set the position of the instance group Take care if the instance group is a cluster system, you must not move it outside its father cluster which is assigned at addToScene moment. More...

virtual void setRotQuat (const NLMISC::CQuat &q)=0
 Set the rotation of the instance group. More...

virtual NLMISC::CVector getPos ()=0
 Get the position. More...

virtual NLMISC::CQuat getRotQuat ()=0
 Get the rotation. More...

virtual void freezeHRC ()=0
 see UTransform::freezeHRC(). Do it for all instances (not clusters), and for the root of the IG. More...

virtual void unfreezeHRC ()=0
 see UTransform::unfreezeHRC(). Do it for all instances (not clusters), and for the root of the IG. More...

PointLight part
virtual void setPointLightFactor (const std::string &lightGroupName, NLMISC::CRGBA nFactor)=0
 set the Light factor for all pointLights of "lightGroupName". More...

virtual bool getStaticLightSetup (const std::string &retrieverIdentifier, sint surfaceId, const NLMISC::CVector &localPos, std::vector< CPointLightInfluence > &pointLightList, uint8 &sunContribution, NLMISC::CRGBA &localAmbient)=0
 get the StaticLightSetup for a model at position localPos/retrieverIdentifier/surfaceId. More...

Distances
virtual void setDistMax (uint instance, float dist)=0
virtual float getDistMax (uint instance) const=0
virtual void setCoarseMeshDist (uint instance, float dist)=0
virtual float getCoarseMeshDist (uint instance) const=0

Static Public Methods

UInstanceGroup * createInstanceGroup (const std::string &instanceGroup)
 This is the static function create a stand alone instance group. More...

void createInstanceGroupAsync (const std::string &instanceGroup, UInstanceGroup **pIG)
void stopCreateInstanceGroupAsync (UInstanceGroup **pIG)

Detailed Description

Game interface for managing group instance.

Author:
Cyril 'Hulud' Corvazier , Nevrax France
Date:
2001

Definition at line 103 of file u_instance_group.h.


Member Enumeration Documentation

enum NL3D::UInstanceGroup::TState
 

Enumeration values:
StateNotAdded 
StateAdding 
StateAdded 

Definition at line 107 of file u_instance_group.h.


Constructor & Destructor Documentation

virtual NL3D::UInstanceGroup::~UInstanceGroup   [inline, virtual]
 

Instance group.

Definition at line 112 of file u_instance_group.h.


Member Function Documentation

virtual void NL3D::UInstanceGroup::addToScene class UScene   scene,
UDriver   driver = NULL
[pure virtual]
 

Add all the instances to the scene.

By default, freezeHRC() those instances and the root.

Parameters:
scene  is the scene in which you want to add the instance group.
driver  is a pointer to a driver. If this pointer is not NULL, the textures used by the shapes will be preloaded in this driver. If the pointer is NULL (default), textures will ve loaded when the shape will be used.

Implemented in NL3D::CInstanceGroupUser.

virtual void NL3D::UInstanceGroup::addToSceneAsync class UScene   scene,
UDriver   driver = NULL
[pure virtual]
 

Implemented in NL3D::CInstanceGroupUser.

UInstanceGroup * NL3D::UInstanceGroup::createInstanceGroup const std::string &    instanceGroup [static]
 

This is the static function create a stand alone instance group.

Definition at line 44 of file instance_group_user.cpp.

void NL3D::UInstanceGroup::createInstanceGroupAsync const std::string &    instanceGroup,
UInstanceGroup **    pIG
[static]
 

Definition at line 66 of file instance_group_user.cpp.

virtual void NL3D::UInstanceGroup::createRoot class UScene   scene [pure virtual]
 

Create the link between scene and instance group before the addToScene to allow the instance group to be moved without being linked to a father cluster system.

Implemented in NL3D::CInstanceGroupUser.

virtual void NL3D::UInstanceGroup::freezeHRC   [pure virtual]
 

see UTransform::freezeHRC(). Do it for all instances (not clusters), and for the root of the IG.

Implemented in NL3D::CInstanceGroupUser.

virtual TState NL3D::UInstanceGroup::getAddToSceneState   [pure virtual]
 

Implemented in NL3D::CInstanceGroupUser.

virtual const UInstance* NL3D::UInstanceGroup::getByName std::string &    name const [pure virtual]
 

Return the instance at a given position (const version).

Implemented in NL3D::CInstanceGroupUser.

virtual UInstance* NL3D::UInstanceGroup::getByName std::string &    name [pure virtual]
 

Return the instance at a given position.

Implemented in NL3D::CInstanceGroupUser.

virtual float NL3D::UInstanceGroup::getCoarseMeshDist uint    instance const [pure virtual]
 

Implemented in NL3D::CInstanceGroupUser.

virtual float NL3D::UInstanceGroup::getDistMax uint    instance const [pure virtual]
 

Implemented in NL3D::CInstanceGroupUser.

virtual bool NL3D::UInstanceGroup::getDynamicPortal std::string &    name [pure virtual]
 

Get the state of a dynamic portal.

Returns:
the state (true=opened, false=closed) of a dynamic portal

Implemented in NL3D::CInstanceGroupUser.

virtual void NL3D::UInstanceGroup::getDynamicPortals std::vector< std::string > &    names [pure virtual]
 

Get all dynamic portals in the instance group.

Returns:
a vector of portal names

Implemented in NL3D::CInstanceGroupUser.

virtual void NL3D::UInstanceGroup::getInstanceMatrix uint    instanceNb,
NLMISC::CMatrix   dest
const [pure virtual]
 

Return the transformation matrix of an instance in the group NB no pivot is added.

Implemented in NL3D::CInstanceGroupUser.

virtual const std::string& NL3D::UInstanceGroup::getInstanceName uint    instanceNb const [pure virtual]
 

Return the name of an instance of the group.

Parameters:
instanceNb  is the number of the instance.
Returns:
the name of the instance.

Implemented in NL3D::CInstanceGroupUser.

virtual const NLMISC::CVector& NL3D::UInstanceGroup::getInstancePos uint    instanceNb const [pure virtual]
 

Return the position of an instance of the group.

Parameters:
instanceNb  is the number of the instance.
Returns:
the position of the instance.

Implemented in NL3D::CInstanceGroupUser.

virtual const NLMISC::CQuat& NL3D::UInstanceGroup::getInstanceRot uint    instanceNb const [pure virtual]
 

Return the rotation of an instance of the group.

Parameters:
instanceNb  is the number of the instance.
Returns:
the rotation of the instance.

Implemented in NL3D::CInstanceGroupUser.

virtual const NLMISC::CVector& NL3D::UInstanceGroup::getInstanceScale uint    instanceNb const [pure virtual]
 

Return the scale of an instance of the group.

Parameters:
instanceNb  is the number of the instance.
Returns:
the scale of the instance.

Implemented in NL3D::CInstanceGroupUser.

virtual uint NL3D::UInstanceGroup::getNumInstance   const [pure virtual]
 

Return the count of shape instance in this group.

Implemented in NL3D::CInstanceGroupUser.

virtual NLMISC::CVector NL3D::UInstanceGroup::getPos   [pure virtual]
 

Get the position.

Implemented in NL3D::CInstanceGroupUser.

virtual NLMISC::CQuat NL3D::UInstanceGroup::getRotQuat   [pure virtual]
 

Get the rotation.

Implemented in NL3D::CInstanceGroupUser.

virtual const std::string& NL3D::UInstanceGroup::getShapeName uint    instanceNb const [pure virtual]
 

Return the name of the shape refered by an instance of the group.

Parameters:
instanceNb  is the number of the instance.
Returns:
the name of the shape.

Implemented in NL3D::CInstanceGroupUser.

virtual bool NL3D::UInstanceGroup::getStaticLightSetup const std::string &    retrieverIdentifier,
sint    surfaceId,
const NLMISC::CVector   localPos,
std::vector< CPointLightInfluence > &    pointLightList,
uint8   sunContribution,
NLMISC::CRGBA   localAmbient
[pure virtual]
 

get the StaticLightSetup for a model at position localPos/retrieverIdentifier/surfaceId.

NB: all are get with help of UGlobalPosition. localPos= gp.LocalPosition.Estimated

Implemented in NL3D::CInstanceGroupUser.

virtual bool NL3D::UInstanceGroup::linkToParentCluster UInstanceGroup *    father [pure virtual]
 

Link this ig clusters as sons of clusters of 'ig' that conatains them.

Returns:
true if the link succeeded

Implemented in NL3D::CInstanceGroupUser.

virtual void NL3D::UInstanceGroup::removeFromScene class UScene   scene [pure virtual]
 

remove this instance group from the given scene.

Implemented in NL3D::CInstanceGroupUser.

virtual void NL3D::UInstanceGroup::setAddRemoveInstanceCallback IAddRemoveInstance   callback [pure virtual]
 

set a callback to know when an instance has been added / removed from scene.

Implemented in NL3D::CInstanceGroupUser.

virtual void NL3D::UInstanceGroup::setBlendShapeFactor const std::string &    bsName,
float    rFactor
[pure virtual]
 

Control a blendshape.

Implemented in NL3D::CInstanceGroupUser.

virtual void NL3D::UInstanceGroup::setClusterSystem class UInstanceGroup *    pClusterSystem [pure virtual]
 

All the instances must be checked against the following cluster system.

Implemented in NL3D::CInstanceGroupUser.

virtual void NL3D::UInstanceGroup::setCoarseMeshDist uint    instance,
float    dist
[pure virtual]
 

Implemented in NL3D::CInstanceGroupUser.

virtual void NL3D::UInstanceGroup::setDistMax uint    instance,
float    dist
[pure virtual]
 

Implemented in NL3D::CInstanceGroupUser.

virtual void NL3D::UInstanceGroup::setDynamicPortal std::string &    name,
bool    opened
[pure virtual]
 

Set the state of a dynamic portal.

Parameters:
name  is the name of the dynamic portal to open or close
opened  is the state the portal will have (true=opened, false=closed)

Implemented in NL3D::CInstanceGroupUser.

virtual void NL3D::UInstanceGroup::setIGAddBeginCallback IIGAddBegin   callback [pure virtual]
 

Set a callback to know when an instance group is being created, and how many instances it contains.

Implemented in NL3D::CInstanceGroupUser.

virtual void NL3D::UInstanceGroup::setLightFactor const std::string &    LightName,
NLMISC::CRGBA    nFactor
[pure virtual]
 

Control a lightmap.

Implemented in NL3D::CInstanceGroupUser.

virtual void NL3D::UInstanceGroup::setPointLightFactor const std::string &    lightGroupName,
NLMISC::CRGBA    nFactor
[pure virtual]
 

set the Light factor for all pointLights of "lightGroupName".

Implemented in NL3D::CInstanceGroupUser.

virtual void NL3D::UInstanceGroup::setPos const NLMISC::CVector   pos [pure virtual]
 

Set the position of the instance group Take care if the instance group is a cluster system, you must not move it outside its father cluster which is assigned at addToScene moment.

Implemented in NL3D::CInstanceGroupUser.

virtual void NL3D::UInstanceGroup::setRotQuat const NLMISC::CQuat   q [pure virtual]
 

Set the rotation of the instance group.

Implemented in NL3D::CInstanceGroupUser.

virtual void NL3D::UInstanceGroup::setTransformNameCallback ITransformName   pTN [pure virtual]
 

Set up the callback used at loading and instanciating of the instanceGroup.

Parameters:
pTN  is the transformName class that hold the callback

Implemented in NL3D::CInstanceGroupUser.

virtual void NL3D::UInstanceGroup::stopAddToSceneAsync   [pure virtual]
 

Implemented in NL3D::CInstanceGroupUser.

void NL3D::UInstanceGroup::stopCreateInstanceGroupAsync UInstanceGroup **    pIG [static]
 

Definition at line 74 of file instance_group_user.cpp.

References NLMISC::nlSleep.

virtual void NL3D::UInstanceGroup::unfreezeHRC   [pure virtual]
 

see UTransform::unfreezeHRC(). Do it for all instances (not clusters), and for the root of the IG.

Implemented in NL3D::CInstanceGroupUser.


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