#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. |
1.3.6