#include <u_instance_group.h>
Inheritance diagram for NL3D::UInstanceGroup:
Nevrax France
Definition at line 104 of file u_instance_group.h.
Public Types | |
enum | TState { StateNotAdded = 0, StateAdding, StateAdded, StateError } |
Public Member Functions | |
virtual void | addToScene (class UScene &scene, UDriver *driver=NULL, uint selectedTexture=0)=0 |
virtual void | addToSceneAsync (class UScene &scene, UDriver *driver=NULL, uint selectedTexture=0)=0 |
virtual void | createRoot (class UScene &scene)=0 |
virtual void | displayDebugClusters (UDriver *drv, class UTextContext *txtCtx)=0 |
For debug purpose, display clusters as poly/lines. The matrixs and frustum should have been setuped. | |
virtual void | freezeHRC ()=0 |
see UTransform::freezeHRC(). Do it for all instances (not clusters), and for the root of the IG. | |
virtual TState | getAddToSceneState ()=0 |
virtual const UInstance * | getByName (std::string &name) const=0 |
virtual UInstance * | getByName (std::string &name)=0 |
virtual bool | getDynamicPortal (std::string &name)=0 |
virtual void | getDynamicPortals (std::vector< std::string > &names)=0 |
virtual UInstance * | getInstance (uint instanceNb)=0 |
virtual const UInstance * | getInstance (uint instanceNb) const=0 |
virtual void | getInstanceMatrix (uint instanceNb, NLMISC::CMatrix &dest) const=0 |
virtual const std::string & | getInstanceName (uint instanceNb) const=0 |
virtual const NLMISC::CVector & | getInstancePos (uint instanceNb) const=0 |
virtual const NLMISC::CQuat & | getInstanceRot (uint instanceNb) const=0 |
virtual const NLMISC::CVector & | getInstanceScale (uint instanceNb) const=0 |
virtual uint | getNumInstance () const=0 |
virtual UInstanceGroup * | getParentCluster () const=0 |
virtual NLMISC::CVector | getPos ()=0 |
virtual NLMISC::CQuat | getRotQuat ()=0 |
virtual const std::string & | getShapeName (uint instanceNb) const=0 |
virtual bool | linkToParentCluster (UInstanceGroup *father)=0 |
virtual void | removeFromScene (class UScene &scene)=0 |
virtual void | setAddRemoveInstanceCallback (IAddRemoveInstance *callback)=0 |
set a callback to know when an instance has been added / removed from scene | |
virtual void | setBlendShapeFactor (const std::string &bsName, float rFactor)=0 |
virtual void | setClusterSystemForInstances (class UInstanceGroup *pClusterSystem)=0 |
virtual void | setDynamicPortal (std::string &name, bool opened)=0 |
virtual void | setIGAddBeginCallback (IIGAddBegin *callback)=0 |
Set a callback to know when an instance group is being created, and how many instances it contains. | |
virtual void | setPos (const NLMISC::CVector &pos)=0 |
virtual void | setRotQuat (const NLMISC::CQuat &q)=0 |
virtual void | setTransformNameCallback (ITransformName *pTN)=0 |
virtual void | stopAddToSceneAsync ()=0 |
virtual void | unfreezeHRC ()=0 |
see UTransform::unfreezeHRC(). Do it for all instances (not clusters), and for the root of the IG. | |
virtual | ~UInstanceGroup () |
Distances | |
virtual float | getCoarseMeshDist (uint instance) const=0 |
virtual float | getDistMax (uint instance) const=0 |
virtual void | setCoarseMeshDist (uint instance, float dist)=0 |
virtual void | setDistMax (uint instance, float dist)=0 |
PointLight part | |
virtual bool | getStaticLightSetup (uint retrieverIdentifier, sint surfaceId, const NLMISC::CVector &localPos, std::vector< CPointLightInfluence > &pointLightList, uint8 &sunContribution, NLMISC::CRGBA &localAmbient)=0 |
Static Public Member Functions | |
UInstanceGroup * | createInstanceGroup (const std::string &instanceGroup) |
void | createInstanceGroupAsync (const std::string &instanceGroup, UInstanceGroup **pIG) |
void | stopCreateInstanceGroupAsync (UInstanceGroup **pIG) |
|
Definition at line 109 of file u_instance_group.h.
00109 { StateNotAdded = 0, StateAdding, StateAdded, StateError }; |
|
Instance group Definition at line 114 of file u_instance_group.h.
00114 {}; |
|
Add all the instances to the scene. By default, freezeHRC() those instances and the root.
Implemented in NL3D::CInstanceGroupUser. |
|
Implemented in NL3D::CInstanceGroupUser. |
|
This is the static function create a stand alone instance group. Definition at line 45 of file instance_group_user.cpp. References NL3D_MEM_IG.
00046 { 00047 NL3D_MEM_IG 00048 // Create the instance group 00049 CInstanceGroupUser *user=new CInstanceGroupUser; 00050 00051 // Init the class 00052 if (!user->init (instanceGroup)) 00053 { 00054 // Prb, erase it 00055 delete user; 00056 00057 // Return error code 00058 return NULL; 00059 } 00060 00061 // return the good value 00062 return user; 00063 } |
|
Definition at line 67 of file instance_group_user.cpp. References NL3D_MEM_IG.
00068 { 00069 NL3D_MEM_IG 00070 CAsyncFileManager3D::getInstance().loadIGUser (instanceGroup, pIG); 00071 } |
|
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. |
|
For debug purpose, display clusters as poly/lines. The matrixs and frustum should have been setuped.
Implemented in NL3D::CInstanceGroupUser. |
|
see UTransform::freezeHRC(). Do it for all instances (not clusters), and for the root of the IG.
Implemented in NL3D::CInstanceGroupUser. |
|
Implemented in NL3D::CInstanceGroupUser. Referenced by NL3D::CSceneUser::stopCreatingAndAddingIG(). |
|
Return the instance at a given position (const version) Implemented in NL3D::CInstanceGroupUser. |
|
Return the instance at a given position Implemented in NL3D::CInstanceGroupUser. |
|
Implemented in NL3D::CInstanceGroupUser. |
|
Implemented in NL3D::CInstanceGroupUser. |
|
Get the state of a dynamic portal
Implemented in NL3D::CInstanceGroupUser. |
|
Get all dynamic portals in the instance group
Implemented in NL3D::CInstanceGroupUser. |
|
Return an instance of the group. The instance lifeTime is the same of the instangeGroup lifeTime
Implemented in NL3D::CInstanceGroupUser. |
|
Return an instance of the group. The instance lifeTime is the same of the instangeGroup lifeTime
Implemented in NL3D::CInstanceGroupUser. |
|
Return the transformation matrix of an instance in the group NB no pivot is added Implemented in NL3D::CInstanceGroupUser. |
|
Return the name of an instance of the group.
Implemented in NL3D::CInstanceGroupUser. |
|
Return the position of an instance of the group.
Implemented in NL3D::CInstanceGroupUser. |
|
Return the rotation of an instance of the group.
Implemented in NL3D::CInstanceGroupUser. |
|
Return the scale of an instance of the group.
Implemented in NL3D::CInstanceGroupUser. |
|
Return the count of shape instance in this group. Implemented in NL3D::CInstanceGroupUser. |
|
return the parent cluster system of this IG. NULL if this is the GlobalInstanceGroup.
Implemented in NL3D::CInstanceGroupUser. |
|
Get the position Implemented in NL3D::CInstanceGroupUser. |
|
Get the rotation Implemented in NL3D::CInstanceGroupUser. |
|
Return the name of the shape refered by an instance of the group.
Implemented in NL3D::CInstanceGroupUser. |
|
get the StaticLightSetup for a model at position localPos/retrieverIdentifier/surfaceId. NB: all are get with help of UGlobalPosition. localPos= gp.LocalPosition.Estimated NB: retrieverIdentifier= globalRetriever->getLocalRetrieverId(gp); Implemented in NL3D::CInstanceGroupUser. |
|
Link this ig clusters as sons of clusters of 'ig' that conatains them.
Implemented in NL3D::CInstanceGroupUser. |
|
remove this instance group from the given scene Implemented in NL3D::CInstanceGroupUser. Referenced by NL3D::CSceneUser::stopCreatingAndAddingIG(). |
|
set a callback to know when an instance has been added / removed from scene
Implemented in NL3D::CInstanceGroupUser. |
|
Control a blendshape Implemented in NL3D::CInstanceGroupUser. |
|
All the instances must be checked against the following cluster system Implemented in NL3D::CInstanceGroupUser. |
|
Implemented in NL3D::CInstanceGroupUser. |
|
Implemented in NL3D::CInstanceGroupUser. |
|
Set the state of a dynamic portal
Implemented in NL3D::CInstanceGroupUser. |
|
Set a callback to know when an instance group is being created, and how many instances it contains.
Implemented in NL3D::CInstanceGroupUser. |
|
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. |
|
Set the rotation of the instance group Implemented in NL3D::CInstanceGroupUser. |
|
Set up the callback used at loading and instanciating of the instanceGroup
Implemented in NL3D::CInstanceGroupUser. |
|
Implemented in NL3D::CInstanceGroupUser. Referenced by NL3D::CSceneUser::stopCreatingAndAddingIG(). |
|
Definition at line 75 of file instance_group_user.cpp. References NL3D_MEM_IG, and NLMISC::nlSleep().
00076 { 00077 NL3D_MEM_IG 00078 // Theorically should stop the async file manager but the async file manager can only be stopped 00079 // between tasks (a file reading) so that is no sense to do anything here 00080 while (*ppIG == NULL) 00081 { 00082 nlSleep (2); 00083 } 00084 if (*ppIG != (UInstanceGroup*)-1) 00085 { 00086 delete *ppIG; 00087 } 00088 } |
|
see UTransform::unfreezeHRC(). Do it for all instances (not clusters), and for the root of the IG.
Implemented in NL3D::CInstanceGroupUser. |