#include <instance_group_user.h>
Inheritance diagram for NL3D::CInstanceGroupUser:

Nevrax France
Definition at line 55 of file instance_group_user.h.
Public Types | |
| enum | TState { StateNotAdded = 0, StateAdding, StateAdded, StateError } |
Public Member Functions | |
| CInstanceGroupUser () | |
| CInstanceGroup & | getInternalIG () |
| bool | init (const std::string &instanceGroup) |
| virtual | ~CInstanceGroupUser () |
Static Public Member Functions | |
| UInstanceGroup * | createInstanceGroup (const std::string &instanceGroup) |
| void | createInstanceGroupAsync (const std::string &instanceGroup, UInstanceGroup **pIG) |
| void | stopCreateInstanceGroupAsync (UInstanceGroup **pIG) |
Private Member Functions | |
| void | addToScene (class CScene &scene, IDriver *driver, uint selectedTexture) |
| void | addToScene (class UScene &scene, UDriver *driver, uint selectedTexture) |
| void | addToSceneAsync (class UScene &scene, UDriver *driver, uint selectedTexture) |
| void | createRoot (UScene &scene) |
| virtual void | displayDebugClusters (UDriver *drv, UTextContext *txtCtx) |
| For debug purpose, display clusters as poly/lines. The matrixs and frustum should have been setuped. | |
| virtual void | freezeHRC () |
| see UTransform::freezeHRC(). Do it for all instances (not clusters), and for the root of the IG. | |
| TState | getAddToSceneState () |
| const UInstance * | getByName (std::string &name) const |
| UInstance * | getByName (std::string &name) |
| virtual float | getCoarseMeshDist (uint instance) const |
| virtual float | getDistMax (uint instance) const |
| bool | getDynamicPortal (std::string &name) |
| void | getDynamicPortals (std::vector< std::string > &names) |
| virtual UInstance * | getInstance (uint instanceNb) |
| virtual const UInstance * | getInstance (uint instanceNb) const |
| virtual void | getInstanceMatrix (uint instanceNb, NLMISC::CMatrix &dest) const |
| const std::string & | getInstanceName (uint instanceNb) const |
| const NLMISC::CVector & | getInstancePos (uint instanceNb) const |
| const NLMISC::CQuat & | getInstanceRot (uint instanceNb) const |
| const NLMISC::CVector & | getInstanceScale (uint instanceNb) const |
| uint | getNumInstance () const |
| UInstanceGroup * | getParentCluster () const |
| NLMISC::CVector | getPos () |
| NLMISC::CQuat | getRotQuat () |
| const std::string & | getShapeName (uint instanceNb) const |
| bool | getStaticLightSetup (uint retrieverIdentifier, sint surfaceId, const NLMISC::CVector &localPos, std::vector< CPointLightInfluence > &pointLightList, uint8 &sunContribution, NLMISC::CRGBA &localAmbient) |
| bool | linkToParentCluster (UInstanceGroup *father) |
| void | removeFromScene (class UScene &scene) |
| void | removeInstancesUser () |
| void | setAddRemoveInstanceCallback (IAddRemoveInstance *callback) |
| set a callback to know when an instance has been added / removed from scene | |
| void | setBlendShapeFactor (const std::string &bsName, float rFactor) |
| void | setClusterSystemForInstances (UInstanceGroup *pClusterSystem) |
| virtual void | setCoarseMeshDist (uint instance, float dist) |
| virtual void | setDistMax (uint instance, float dist) |
| void | setDynamicPortal (std::string &name, bool opened) |
| void | setIGAddBeginCallback (IIGAddBegin *callback) |
| Set a callback to know when an instance group is being created, and how many instances it contains. | |
| void | setPos (const NLMISC::CVector &pos) |
| void | setRotQuat (const NLMISC::CQuat &q) |
| void | setTransformNameCallback (ITransformName *pTN) |
| void | stopAddToSceneAsync () |
| virtual void | unfreezeHRC () |
| see UTransform::unfreezeHRC(). Do it for all instances (not clusters), and for the root of the IG. | |
Private Attributes | |
| TState | _AddToSceneState |
| UDriver * | _AddToSceneTempDriver |
| UScene * | _AddToSceneTempScene |
| CInstanceGroup | _InstanceGroup |
| std::map< std::string, CInstanceUser * > | _InstanceMap |
| std::vector< CInstanceUser * > | _Instances |
Friends | |
| class | CSceneUser |
| class | CTransformUser |
|
|
Definition at line 109 of file u_instance_group.h.
00109 { StateNotAdded = 0, StateAdding, StateAdded, StateError };
|
|
|
Definition at line 91 of file instance_group_user.cpp. References _AddToSceneState, _InstanceGroup, NL3D_MEM_IG, and NL3D::CInstanceGroup::setUserInterface().
00092 {
00093 NL3D_MEM_IG
00094 _AddToSceneState = StateNotAdded;
00095
00096 // set user info for possible get
00097 _InstanceGroup.setUserInterface(this);
00098 }
|
|
|
Definition at line 101 of file instance_group_user.cpp. References removeInstancesUser().
00102 {
00103 // ensure all instances proxys are deleted
00104 removeInstancesUser();
00105 }
|
|
||||||||||||||||
|
Definition at line 186 of file instance_group_user.cpp. References _InstanceGroup, _InstanceMap, NL3D::CInstanceGroup::_Instances, NL3D::CInstanceGroup::addToScene(), NL3D::CInstanceGroup::getInstanceName(), NL3D_MEM_IG, uint, and uint32.
00187 {
00188 NL3D_MEM_IG
00189 if (!_InstanceGroup.addToScene (scene, driver, selectedTexture))
00190 return;
00191 // Fill in the vector and the map accelerating search of instance by names
00192 _Instances.resize(_InstanceGroup._Instances.size(), NULL);
00193 for( uint32 i = 0; i < _InstanceGroup._Instances.size(); ++i)
00194 {
00195 CInstanceUser *pIU = NULL;
00196 string stmp;
00197 if (_InstanceGroup._Instances[i] != NULL)
00198 {
00199 // create but don't want to delete from scene, since added/removed with _InstanceGroup
00200 pIU = new CInstanceUser (NULL, _InstanceGroup._Instances[i], false);
00201 _Instances[i]= pIU;
00202 // insert in map (may fail if double name)
00203 stmp = _InstanceGroup.getInstanceName (i);
00204 _InstanceMap.insert (map<string,CInstanceUser*>::value_type(stmp, pIU));
00205 }
00206 }
00207 }
|
|
||||||||||||||||
|
Add all the instances to the scene. By default, freezeHRC() those instances and the root.
Implements NL3D::UInstanceGroup. Definition at line 167 of file instance_group_user.cpp. References NL3D_MEM_IG, and uint.
00168 {
00169 NL3D_MEM_IG
00170 // Get driver pointer
00171 IDriver *cDriver= driver ? NLMISC::safe_cast<CDriverUser*>(driver)->getDriver() : NULL;
00172
00173 // Add to the scene
00174 addToScene (((CSceneUser*)&scene)->getScene(), cDriver, selectedTexture);
00175 }
|
|
||||||||||||||||
|
Implements NL3D::UInstanceGroup. Definition at line 210 of file instance_group_user.cpp. References _AddToSceneState, _AddToSceneTempDriver, _AddToSceneTempScene, _InstanceGroup, NL3D::CInstanceGroup::addToSceneAsync(), NL3D_MEM_IG, and uint.
00211 {
00212 NL3D_MEM_IG
00213 IDriver *cDriver= driver ? NLMISC::safe_cast<CDriverUser*>(driver)->getDriver() : NULL;
00214 // Add to the scene
00215 _InstanceGroup.addToSceneAsync (((CSceneUser*)&scene)->getScene(), cDriver, selectedTexture);
00216 _AddToSceneState = StateAdding;
00217 _AddToSceneTempScene = &scene;
00218 _AddToSceneTempDriver = driver;
00219 }
|
|
|
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. Implements NL3D::UInstanceGroup. Definition at line 362 of file instance_group_user.cpp. References _InstanceGroup, NL3D::CInstanceGroup::createRoot(), and NL3D_MEM_IG.
00363 {
00364 NL3D_MEM_IG
00365 _InstanceGroup.createRoot (((CSceneUser*)&scene)->getScene());
00366 }
|
|
||||||||||||
|
For debug purpose, display clusters as poly/lines. The matrixs and frustum should have been setuped.
Implements NL3D::UInstanceGroup. Definition at line 563 of file instance_group_user.cpp. References _InstanceGroup, and NL3D::CInstanceGroup::displayDebugClusters().
00564 {
00565 if(!drv)
00566 return;
00567 CTextContext *pTxtCtx= NULL;
00568 if(txtCtx)
00569 pTxtCtx= &((CTextContextUser*)txtCtx)->getTextContext();
00570 _InstanceGroup.displayDebugClusters(((CDriverUser*)drv)->getDriver(), pTxtCtx);
00571
00572 // restore the matrix context cause of font rendering
00573 ((CDriverUser*)drv)->restoreMatrixContext();
00574 }
|
|
|
see UTransform::freezeHRC(). Do it for all instances (not clusters), and for the root of the IG.
Implements NL3D::UInstanceGroup. Definition at line 439 of file instance_group_user.cpp. References _InstanceGroup, NL3D::CInstanceGroup::freezeHRC(), and NL3D_MEM_IG.
00440 {
00441 NL3D_MEM_IG
00442 _InstanceGroup.freezeHRC();
00443 }
|
|
|
Implements NL3D::UInstanceGroup. Definition at line 229 of file instance_group_user.cpp. References _AddToSceneState, _InstanceGroup, _InstanceMap, NL3D::CInstanceGroup::_Instances, NL3D::CInstanceGroup::getAddToSceneState(), NL3D::CInstanceGroup::getInstanceName(), NL3D_MEM_IG, and uint32.
00230 {
00231 NL3D_MEM_IG
00232 UInstanceGroup::TState newState = (UInstanceGroup::TState)_InstanceGroup.getAddToSceneState ();
00233 if ((_AddToSceneState == StateAdding) && (newState == StateAdded))
00234 {
00235 // Fill in the vector and the map accelerating search of instance by names
00236 _Instances.resize(_InstanceGroup._Instances.size(), NULL);
00237 for( uint32 i = 0; i < _InstanceGroup._Instances.size(); ++i)
00238 {
00239 CInstanceUser *pIU = NULL;
00240 string stmp;
00241 if (_InstanceGroup._Instances[i] != NULL)
00242 {
00243 // create but don't want to delete from scene, since added/removed with _InstanceGroup
00244 pIU = new CInstanceUser (NULL, _InstanceGroup._Instances[i], false);
00245 _Instances[i]= pIU;
00246 // insert in map (may fail if double name)
00247 stmp = _InstanceGroup.getInstanceName (i);
00248 _InstanceMap.insert (map<string,CInstanceUser*>::value_type(stmp, pIU));
00249 }
00250 }
00251 _AddToSceneState = StateAdded;
00252 }
00253 return newState;
00254 }
|
|
|
Return the instance at a given position (const version) Implements NL3D::UInstanceGroup. Definition at line 343 of file instance_group_user.cpp. References _InstanceMap, and NL3D_MEM_IG.
00344 {
00345 NL3D_MEM_IG
00346 map<string,CInstanceUser*>::const_iterator it = _InstanceMap.find (name);
00347 if (it != _InstanceMap.end())
00348 return it->second;
00349 else
00350 return NULL;
00351 }
|
|
|
Return the instance at a given position Implements NL3D::UInstanceGroup. Definition at line 331 of file instance_group_user.cpp. References _InstanceMap, and NL3D_MEM_IG.
00332 {
00333 NL3D_MEM_IG
00334 map<string,CInstanceUser*>::iterator it = _InstanceMap.find (name);
00335 if (it != _InstanceMap.end())
00336 return it->second;
00337 else
00338 return NULL;
00339 }
|
|
|
Implements NL3D::UInstanceGroup. Definition at line 502 of file instance_group_user.cpp. References _InstanceGroup, NL3D::CInstanceGroup::_Instances, NL3D::CMeshMultiLodInstance::getCoarseMeshDist(), NL3D::CInstanceGroup::getNumInstance(), nlwarning, and uint.
00503 {
00504 if (instance > _InstanceGroup.getNumInstance())
00505 {
00506 nlwarning("getCoarseMeshDist::getDistMax : instance index %d is invalid", instance);
00507 return -1.f;
00508 }
00509 if (_InstanceGroup._Instances[instance])
00510 {
00511 CMeshMultiLodInstance *mmli = dynamic_cast<CMeshMultiLodInstance *>(_InstanceGroup._Instances[instance]);
00512 if (mmli) return mmli->getCoarseMeshDist();
00513 else return -1.f;
00514 }
00515 else return -1.f;
00516 }
|
|
|
Implements NL3D::UInstanceGroup. Definition at line 475 of file instance_group_user.cpp. References _InstanceGroup, NL3D::CInstanceGroup::_Instances, NL3D::CInstanceGroup::getNumInstance(), nlwarning, and uint.
00476 {
00477 if (instance > _InstanceGroup.getNumInstance())
00478 {
00479 nlwarning("CInstanceGroupUser::getDistMax : instance index %d is invalid", instance);
00480 return -1.f;
00481 }
00482 if (_InstanceGroup._Instances[instance]) return _InstanceGroup._Instances[instance]->getDistMax();
00483 else return -1.f;
00484 }
|
|
|
Get the state of a dynamic portal
Implements NL3D::UInstanceGroup. Definition at line 403 of file instance_group_user.cpp. References _InstanceGroup, NL3D::CInstanceGroup::getDynamicPortal(), and NL3D_MEM_IG.
00404 {
00405 NL3D_MEM_IG
00406 return _InstanceGroup.getDynamicPortal (name);
00407 }
|
|
|
Get all dynamic portals in the instance group
Implements NL3D::UInstanceGroup. Definition at line 389 of file instance_group_user.cpp. References _InstanceGroup, NL3D::CInstanceGroup::getDynamicPortals(), and NL3D_MEM_IG.
00390 {
00391 NL3D_MEM_IG
00392 _InstanceGroup.getDynamicPortals (names);
00393 }
|
|
|
Return an instance of the group. The instance lifeTime is the same of the instangeGroup lifeTime
Implements NL3D::UInstanceGroup. Definition at line 528 of file instance_group_user.cpp. References uint.
00529 {
00530 if(instanceNb<_Instances.size())
00531 return _Instances[instanceNb];
00532 else
00533 return NULL;
00534 }
|
|
|
Return an instance of the group. The instance lifeTime is the same of the instangeGroup lifeTime
Implements NL3D::UInstanceGroup. Definition at line 519 of file instance_group_user.cpp. References uint.
00520 {
00521 if(instanceNb<_Instances.size())
00522 return _Instances[instanceNb];
00523 else
00524 return NULL;
00525 }
|
|
||||||||||||
|
Return the transformation matrix of an instance in the group NB no pivot is added Implements NL3D::UInstanceGroup. Definition at line 178 of file instance_group_user.cpp. References _InstanceGroup, NL3D::CInstanceGroup::getInstanceMatrix(), NL3D_MEM_IG, and uint.
00179 {
00180 NL3D_MEM_IG
00181 _InstanceGroup.getInstanceMatrix(instanceNb, dest);
00182 }
|
|
|
Return the name of an instance of the group.
Implements NL3D::UInstanceGroup. Definition at line 285 of file instance_group_user.cpp. References _InstanceGroup, NL3D::CInstanceGroup::getInstanceName(), NL3D::CInstanceGroup::getNumInstance(), NL3D_MEM_IG, nlerror, and uint.
00286 {
00287 NL3D_MEM_IG
00288 // Check args
00289 if (instanceNb>=_InstanceGroup.getNumInstance ())
00290 nlerror("getInstanceName*(): bad instance Id");
00291
00292 return _InstanceGroup.getInstanceName (instanceNb);
00293 }
|
|
|
Return the position of an instance of the group.
Implements NL3D::UInstanceGroup. Definition at line 296 of file instance_group_user.cpp. References _InstanceGroup, NL3D::CInstanceGroup::getInstancePos(), NL3D::CInstanceGroup::getNumInstance(), NL3D_MEM_IG, nlerror, and uint.
00297 {
00298 NL3D_MEM_IG
00299 // Check args
00300 if (instanceNb>=_InstanceGroup.getNumInstance ())
00301 nlerror("getInstancePos*(): bad instance Id");
00302
00303 return _InstanceGroup.getInstancePos (instanceNb);
00304 }
|
|
|
Return the rotation of an instance of the group.
Implements NL3D::UInstanceGroup. Definition at line 307 of file instance_group_user.cpp. References _InstanceGroup, NL3D::CInstanceGroup::getInstanceRot(), NL3D::CInstanceGroup::getNumInstance(), NL3D_MEM_IG, nlerror, and uint.
00308 {
00309 NL3D_MEM_IG
00310 // Check args
00311 if (instanceNb>=_InstanceGroup.getNumInstance ())
00312 nlerror("getInstanceRot*(): bad instance Id");
00313
00314 return _InstanceGroup.getInstanceRot (instanceNb);
00315 }
|
|
|
Return the scale of an instance of the group.
Implements NL3D::UInstanceGroup. Definition at line 318 of file instance_group_user.cpp. References _InstanceGroup, NL3D::CInstanceGroup::getInstanceScale(), NL3D::CInstanceGroup::getNumInstance(), NL3D_MEM_IG, nlerror, and uint.
00319 {
00320 NL3D_MEM_IG
00321 // Check args
00322 if (instanceNb>=_InstanceGroup.getNumInstance ())
00323 nlerror("getInstanceScale*(): bad instance Id");
00324
00325 return _InstanceGroup.getInstanceScale (instanceNb);
00326 }
|
|
|
Definition at line 142 of file instance_group_user.h. References _InstanceGroup, and NL3D_MEM_IG.
00143 {
00144 NL3D_MEM_IG
00145 return _InstanceGroup;
00146 }
|
|
|
Return the count of shape instance in this group. Implements NL3D::UInstanceGroup. Definition at line 266 of file instance_group_user.cpp. References _InstanceGroup, NL3D::CInstanceGroup::getNumInstance(), NL3D_MEM_IG, and uint.
00267 {
00268 NL3D_MEM_IG
00269 return _InstanceGroup.getNumInstance ();
00270 }
|
|
|
return the parent cluster system of this IG. NULL if this is the GlobalInstanceGroup.
Implements NL3D::UInstanceGroup. Definition at line 552 of file instance_group_user.cpp. References _InstanceGroup, NL3D::CInstanceGroup::getParentClusterSystem(), and NL3D::CInstanceGroup::getUserInterface().
00553 {
00554 CInstanceGroup *parent= _InstanceGroup.getParentClusterSystem();
00555 if(parent)
00556 // NB: return NULL if this is the GlobalInstanceGroup.
00557 return parent->getUserInterface();
00558 else
00559 return NULL;
00560 }
|
|
|
Get the position Implements NL3D::UInstanceGroup. Definition at line 424 of file instance_group_user.cpp. References _InstanceGroup, NL3D::CInstanceGroup::getPos(), and NL3D_MEM_IG.
00425 {
00426 NL3D_MEM_IG
00427 return _InstanceGroup.getPos ();
00428 }
|
|
|
Get the rotation Implements NL3D::UInstanceGroup. Definition at line 431 of file instance_group_user.cpp. References _InstanceGroup, NL3D::CInstanceGroup::getRotQuat(), and NL3D_MEM_IG.
00432 {
00433 NL3D_MEM_IG
00434 return _InstanceGroup.getRotQuat();
00435 }
|
|
|
Return the name of the shape refered by an instance of the group.
Implements NL3D::UInstanceGroup. Definition at line 274 of file instance_group_user.cpp. References _InstanceGroup, NL3D::CInstanceGroup::getNumInstance(), NL3D::CInstanceGroup::getShapeName(), NL3D_MEM_IG, nlerror, and uint.
00275 {
00276 NL3D_MEM_IG
00277 // Check args
00278 if (instanceNb>=_InstanceGroup.getNumInstance ())
00279 nlerror("getShapeName*(): bad instance Id");
00280
00281 return _InstanceGroup.getShapeName (instanceNb);
00282 }
|
|
||||||||||||||||||||||||||||
|
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); Implements NL3D::UInstanceGroup. Definition at line 454 of file instance_group_user.cpp. References _InstanceGroup, NL3D::CInstanceGroup::getStaticLightSetup(), NL3D_MEM_IG, sint, uint, and uint8.
00457 {
00458 NL3D_MEM_IG
00459 return _InstanceGroup.getStaticLightSetup(retrieverIdentifier, surfaceId, localPos, pointLightList,
00460 sunContribution, localAmbient);
00461 }
|
|
|
Definition at line 108 of file instance_group_user.cpp. References _InstanceGroup, file, NL3D_MEM_IG, and NL3D::CInstanceGroup::serial().
00109 {
00110 NL3D_MEM_IG
00111 // Create a file
00112 CIFile file;
00113 std::string path = CPath::lookup (instanceGroup, false);
00114 if (!path.empty() && file.open (path))
00115 {
00116 // Serialize this class
00117 try
00118 {
00119 // Read the class
00120 _InstanceGroup.serial (file);
00121 }
00122 catch (EStream& e)
00123 {
00124 // Avoid visual warning
00125 EStream ee=e;
00126
00127 // Serial problem
00128 return false;
00129 }
00130 }
00131 else
00132 {
00133 // Failed.
00134 return false;
00135 }
00136
00137 // Ok
00138 return true;
00139 }
|
|
|
Link this ig clusters as sons of clusters of 'ig' that conatains them.
Implements NL3D::UInstanceGroup. Definition at line 376 of file instance_group_user.cpp. References _InstanceGroup, NL3D::CInstanceGroup::linkToParent(), NL3D_MEM_IG, and nlwarning.
00377 {
00378 NL3D_MEM_IG
00379 if (father)
00380 return _InstanceGroup.linkToParent(&(NLMISC::safe_cast<CInstanceGroupUser *>(father)->_InstanceGroup));
00381 else
00382 {
00383 nlwarning("Trying to link a cluster system to a NULL parent cluster");
00384 return false;
00385 }
00386 }
|
|
|
remove this instance group from the given scene Implements NL3D::UInstanceGroup. Definition at line 257 of file instance_group_user.cpp. References _InstanceGroup, NL3D_MEM_IG, NL3D::CInstanceGroup::removeFromScene(), and removeInstancesUser().
00258 {
00259 NL3D_MEM_IG
00260 _InstanceGroup.removeFromScene (((CSceneUser*)&scene)->getScene());
00261 // Remove all instance user object in the array/map
00262 removeInstancesUser();
00263 }
|
|
|
Definition at line 537 of file instance_group_user.cpp. References _InstanceMap, and uint. Referenced by removeFromScene(), and ~CInstanceGroupUser().
00538 {
00539 // delete all instances in the instance array
00540 for(uint i=0;i<_Instances.size();i++)
00541 {
00542 if(_Instances[i])
00543 delete _Instances[i];
00544 }
00545
00546 // clear the array and the map
00547 _Instances.clear();
00548 _InstanceMap.clear();
00549 }
|
|
|
set a callback to know when an instance has been added / removed from scene
Implements NL3D::UInstanceGroup. Definition at line 150 of file instance_group_user.cpp. References _InstanceGroup, NL3D_MEM_IG, and NL3D::CInstanceGroup::setAddRemoveInstanceCallback().
00151 {
00152 NL3D_MEM_IG
00153 _InstanceGroup.setAddRemoveInstanceCallback(callback);
00154 }
|
|
||||||||||||
|
Control a blendshape Implements NL3D::UInstanceGroup. Definition at line 354 of file instance_group_user.cpp. References _InstanceGroup, NL3D_MEM_IG, and NL3D::CInstanceGroup::setBlendShapeFactor().
00355 {
00356 NL3D_MEM_IG
00357 _InstanceGroup.setBlendShapeFactor (bsName, rFactor);
00358 }
|
|
|
All the instances must be checked against the following cluster system Implements NL3D::UInstanceGroup. Definition at line 369 of file instance_group_user.cpp. References _InstanceGroup, NL3D_MEM_IG, and NL3D::CInstanceGroup::setClusterSystemForInstances().
00370 {
00371 NL3D_MEM_IG
00372 _InstanceGroup.setClusterSystemForInstances (&((CInstanceGroupUser*)pClusterSystem)->_InstanceGroup);
00373 }
|
|
||||||||||||
|
Implements NL3D::UInstanceGroup. Definition at line 487 of file instance_group_user.cpp. References _InstanceGroup, NL3D::CInstanceGroup::_Instances, NL3D::CInstanceGroup::getNumInstance(), nlwarning, NL3D::CMeshMultiLodInstance::setCoarseMeshDist(), and uint.
00488 {
00489 if (instance > _InstanceGroup.getNumInstance())
00490 {
00491 nlwarning("CInstanceGroupUser::setCoarseMeshDist : instance index %d is invalid", instance);
00492 return;
00493 }
00494 if (_InstanceGroup._Instances[instance])
00495 {
00496 CMeshMultiLodInstance *mmli = dynamic_cast<CMeshMultiLodInstance *>(_InstanceGroup._Instances[instance]);
00497 if (mmli) mmli->setCoarseMeshDist(dist);
00498 }
00499 }
|
|
||||||||||||
|
Implements NL3D::UInstanceGroup. Definition at line 464 of file instance_group_user.cpp. References _InstanceGroup, NL3D::CInstanceGroup::_Instances, NL3D::CInstanceGroup::getNumInstance(), nlwarning, and uint.
00465 {
00466 if (instance > _InstanceGroup.getNumInstance())
00467 {
00468 nlwarning("CInstanceGroupUser::setDistMax : instance index %d is invalid", instance);
00469 return;
00470 }
00471 if (_InstanceGroup._Instances[instance]) _InstanceGroup._Instances[instance]->setDistMax(dist);
00472 }
|
|
||||||||||||
|
Set the state of a dynamic portal
Implements NL3D::UInstanceGroup. Definition at line 396 of file instance_group_user.cpp. References _InstanceGroup, NL3D_MEM_IG, and NL3D::CInstanceGroup::setDynamicPortal().
00397 {
00398 NL3D_MEM_IG
00399 _InstanceGroup.setDynamicPortal (name, opened);
00400 }
|
|
|
Set a callback to know when an instance group is being created, and how many instances it contains.
Implements NL3D::UInstanceGroup. Definition at line 158 of file instance_group_user.cpp. References _InstanceGroup, NL3D_MEM_IG, and NL3D::CInstanceGroup::setIGAddBeginCallback().
00159 {
00160 NL3D_MEM_IG
00161 _InstanceGroup.setIGAddBeginCallback(callback);
00162 }
|
|
|
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. Implements NL3D::UInstanceGroup. Definition at line 410 of file instance_group_user.cpp. References _InstanceGroup, NL3D_MEM_IG, and NL3D::CInstanceGroup::setPos().
00411 {
00412 NL3D_MEM_IG
00413 _InstanceGroup.setPos (pos);
00414 }
|
|
|
Set the rotation of the instance group Implements NL3D::UInstanceGroup. Definition at line 417 of file instance_group_user.cpp. References _InstanceGroup, NL3D_MEM_IG, q, and NL3D::CInstanceGroup::setRotQuat().
00418 {
00419 NL3D_MEM_IG
00420 _InstanceGroup.setRotQuat (q);
00421 }
|
|
|
Set up the callback used at loading and instanciating of the instanceGroup
Implements NL3D::UInstanceGroup. Definition at line 142 of file instance_group_user.cpp. References _InstanceGroup, NL3D_MEM_IG, and NL3D::CInstanceGroup::setTransformNameCallback().
00143 {
00144 NL3D_MEM_IG
00145 _InstanceGroup.setTransformNameCallback (pTN);
00146 }
|
|
|
Implements NL3D::UInstanceGroup. Definition at line 222 of file instance_group_user.cpp. References _InstanceGroup, NL3D_MEM_IG, and NL3D::CInstanceGroup::stopAddToSceneAsync().
00223 {
00224 NL3D_MEM_IG
00225 _InstanceGroup.stopAddToSceneAsync ();
00226 }
|
|
|
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.
Implements NL3D::UInstanceGroup. Definition at line 446 of file instance_group_user.cpp. References _InstanceGroup, NL3D_MEM_IG, and NL3D::CInstanceGroup::unfreezeHRC().
00447 {
00448 NL3D_MEM_IG
00449 _InstanceGroup.unfreezeHRC();
00450 }
|
|
|
Definition at line 136 of file instance_group_user.h. |
|
|
Definition at line 135 of file instance_group_user.h. |
|
|
Definition at line 126 of file instance_group_user.h. Referenced by addToSceneAsync(), CInstanceGroupUser(), and getAddToSceneState(). |
|
|
Definition at line 128 of file instance_group_user.h. Referenced by addToSceneAsync(). |
|
|
Definition at line 127 of file instance_group_user.h. Referenced by addToSceneAsync(). |
|
|
|
Definition at line 124 of file instance_group_user.h. Referenced by addToScene(), getAddToSceneState(), getByName(), and removeInstancesUser(). |
|
|
Definition at line 123 of file instance_group_user.h. |
1.3.6