From 0ea5fc66924303d1bf73ba283a383e2aadee02f2 Mon Sep 17 00:00:00 2001 From: neodarz Date: Sat, 11 Aug 2018 20:21:34 +0200 Subject: Initial commit --- docs/doxygen/nel/a02858.html | 2542 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2542 insertions(+) create mode 100644 docs/doxygen/nel/a02858.html (limited to 'docs/doxygen/nel/a02858.html') diff --git a/docs/doxygen/nel/a02858.html b/docs/doxygen/nel/a02858.html new file mode 100644 index 00000000..3a0e25dd --- /dev/null +++ b/docs/doxygen/nel/a02858.html @@ -0,0 +1,2542 @@ + + +NeL: NL3D::CMeshBase class Reference + + + +
+

NL3D::CMeshBase Class Reference

#include <mesh_base.h> +

+

Inheritance diagram for NL3D::CMeshBase: +

+ +NL3D::IShape +NLMISC::CRefCount +NLMISC::IStreamable +NLMISC::IClassable +NL3D::CMesh +NL3D::CMeshMRM +NL3D::CMeshMRMSkinned +NL3D::CMeshMultiLod + +

Detailed Description

+A base mesh with just material manipulation. Used as an abstract base class for CMesh or CMeshMRM.
Author:
Lionel Berenguier

+Nevrax France

+
Date:
2001
+ +

+ +

+Definition at line 53 of file mesh_base.h. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

virtual bool clip (const std::vector< CPlane > &pyramid, const CMatrix &worldMatrix)
 CMeshBase ()
 Constructor.

virtual CTransformShapecreateInstance (CScene &scene)
void flushTextures (IDriver &driver, uint selectedTexture)
 Flush textures.

virtual void getAABBox (NLMISC::CAABBox &bbox) const
virtual std::string getClassName ()=0
float getDistMax () const
const sintgetRefCount () const
bool isLightable () const
 Is this mesh lightable? true if one of his materials is not a lightmap. NB: result stored in file.

virtual void profileSceneRender (CRenderTrav *rdrTrav, CTransformShape *trans, bool opaquePass)
virtual void render (IDriver *drv, CTransformShape *trans, bool opaquePass)=0
virtual void serial (IStream &f)=0
void serialMeshBase (NLMISC::IStream &f) throw (NLMISC::EStream)
 serial the base Part of this mesh.

void setDistMax (float distMax)
virtual bool useLightingLocalAttenuation () const
 tells if the shape wants LocalAttenuation for RealTime lighting. Default is false

 ~CMeshBase ()
Load balancing methods
virtual float getNumTriangles (float distance)=0
Load balancing methods
virtual float getNumTriangles (float distance)=0

Data Fields

TLightMapInfo _LightInfos
sint crefs
CPtrInfo * pinfo

Static Public Attributes

CPtrInfo NullPtrInfo

Protected Types

typedef std::map< uint32,
+ CMaterialBase
TAnimatedMaterialMap
 Animated Material mgt.


Protected Member Functions

void applyMaterialUsageOptim (const std::vector< bool > &materialUsed, std::vector< sint > &remap)
void buildMeshBase (CMeshBaseBuild &m)
 Just copy informations from a CMeshBaseBuild.

void instanciateMeshBase (CMeshBaseInstance *mi, CScene *ownerScene)
 instanciate MeshBase part to an instance (a CMeshBaseInstance).


Protected Attributes

TAnimatedMaterialMap _AnimatedMaterials
std::vector< CMorphBase_AnimatedMorph
bool _AutoAnim
CTrackDefaultRGBA _DefaultLMFactor
CTrackDefaultVector _DefaultPivot
CTrackDefaultVector _DefaultPos
 Transform default tracks. Those default tracks are instancied, ie, CInstanceMesh will have the same and can't specialize it.

CTrackDefaultVector _DefaultRotEuler
CTrackDefaultQuat _DefaultRotQuat
CTrackDefaultVector _DefaultScale
float _DistMax
 Default to -1.

bool _IsLightable
 Is this mesh lightable??

std::vector< CMaterial_Materials
 The Materials.

bool _UseLightingLocalAttenuation
 Is this mesh Use Lighting Local Attenuation ??


Private Member Functions

void computeIsLightable ()
 compute _Lightable.


Private Attributes

CLodCharacterTexture_LodCharacterTexture
 The Texture Lod info for this mesh. NB: NULL by default.


Friends

struct CPtrInfo
+


Member Typedef Documentation

+

+ + + + +
+ + +
typedef std::map<uint32, CMaterialBase> NL3D::CMeshBase::TAnimatedMaterialMap [protected] +
+
+ + + + + +
+   + + +

+Animated Material mgt. +

+ +

+Definition at line 239 of file mesh_base.h.

+

+ + + + +
+ + +
typedef std::map< std::string, CLightInfoMapListV7 > NL3D::CMeshBase::TLightInfoMapV7 +
+
+ + + + + +
+   + + +

+ +

+Definition at line 76 of file mesh_base.h. +

+Referenced by serialMeshBase().

+

+ + + + +
+ + +
typedef std::vector< CLightMapInfoList > NL3D::CMeshBase::TLightMapInfo +
+
+ + + + + +
+   + + +

+ +

+Definition at line 111 of file mesh_base.h.

+


Constructor & Destructor Documentation

+

+ + + + +
+ + + + + + + + + +
NL3D::CMeshBase::CMeshBase  ) 
+
+ + + + + +
+   + + +

+Constructor. +

+ +

+Definition at line 43 of file mesh_base.cpp. +

+References _AutoAnim, _DefaultLMFactor, _DefaultPivot, _DefaultRotEuler, _DefaultRotQuat, _DefaultScale, _LodCharacterTexture, _UseLightingLocalAttenuation, NL3D::CTrackDefaultBlendable< T >::setValue(), NL3D::CTrackDefaultBlendable< CQuat >::setValue(), and NL3D::CTrackDefaultBlendable< CVector >::setValue(). +

+

00044 {
+00045         _UseLightingLocalAttenuation= false;
+00046 
+00047         // To have same functionnality than previous version, init to identity.
+00048         _DefaultPos.setValue(CVector(0,0,0));
+00049         _DefaultPivot.setValue(CVector(0,0,0));
+00050         _DefaultRotEuler.setValue(CVector(0,0,0));
+00051         _DefaultRotQuat.setValue(CQuat::Identity);
+00052         _DefaultScale.setValue(CVector(1,1,1));
+00053         _DefaultLMFactor.setValue(CRGBA(255,255,255,255));
+00054 
+00055         _AutoAnim = false;
+00056 
+00057         _LodCharacterTexture= NULL;
+00058 }
+
+

+ + + + +
+ + + + + + + + + +
NL3D::CMeshBase::~CMeshBase  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 62 of file mesh_base.cpp. +

+References resetLodCharacterTexture(). +

+

00063 {
+00064         // free if exist
+00065         resetLodCharacterTexture();
+00066 }
+
+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NL3D::CMeshBase::applyMaterialUsageOptim const std::vector< bool > &  materialUsed,
std::vector< sint > &  remap
[protected]
+
+ + + + + +
+   + + +

+delete any material not used, and build remap table (old to new). _AnimatedMaterials are reseted resetLodCharacterTexture(); is called +

+Definition at line 333 of file mesh_base.cpp. +

+References _AnimatedMaterials, _LightInfos, count, nlassert, resetLodCharacterTexture(), sint, NL3D::CMeshBase::CLightMapInfoList::StageList, and uint. +

+

00334 {
+00335         nlassert(_Materials.size()==materialUsed.size());
+00336 
+00337         // security reset
+00338         resetLodCharacterTexture();
+00339         _AnimatedMaterials.clear();
+00340 
+00341         // init all ids to "Not Used"
+00342         remap.clear();
+00343         remap.resize(_Materials.size(), -1);
+00344 
+00345         // remove unused materials and build remap
+00346         vector<CMaterial>::iterator             itMat= _Materials.begin();
+00347         uint                                                    dstIdx= 0;
+00348         uint i;
+00349         for(i=0;i<materialUsed.size();i++)
+00350         {
+00351                 // if used, still use it, and remap.
+00352                 if(materialUsed[i])
+00353                 {
+00354                         remap[i]= dstIdx;
+00355                         itMat++;
+00356                         dstIdx++;
+00357                 }
+00358                 // remove from the array
+00359                 else
+00360                 {
+00361                         itMat= _Materials.erase(itMat);
+00362                 }
+00363         }
+00364 
+00365         // apply the remap to LightMaps infos
+00366         const uint count = _LightInfos.size ();
+00367         for (i=0; i<count; i++)
+00368         {
+00369                 CLightMapInfoList &mapInfoList = _LightInfos[i];
+00370                 std::list<CMeshBase::CLightMapInfoList::CMatStage>::iterator ite = mapInfoList.StageList.begin ();
+00371                 while (ite != mapInfoList.StageList.end ())
+00372                 {
+00373                         sint    newId= remap[ite->MatId];
+00374                         // If material used
+00375                         if(newId>=0)
+00376                         {
+00377                                 // apply remap on the material id
+00378                                 ite->MatId= newId;
+00379                                 ite++;
+00380                         }
+00381                         else
+00382                         {
+00383                                 // remove it from list of light infos
+00384                                 ite= mapInfoList.StageList.erase(ite);
+00385                         }
+00386                 }
+00387         }
+00388 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CMeshBase::buildMeshBase CMeshBaseBuild m  )  [protected]
+
+ + + + + +
+   + + +

+Just copy informations from a CMeshBaseBuild. +

+Copy default position values +

+Definition at line 226 of file mesh_base.cpp. +

+References _AnimatedMaterials, _AnimatedMorph, _DefaultPivot, _DefaultRotEuler, _DefaultRotQuat, _DefaultScale, _LightInfos, _UseLightingLocalAttenuation, NL3D::CMeshBase::CMeshBaseBuild::BSNames, computeIsLightable(), NL3D::CMeshBase::CMeshBaseBuild::DefaultBSFactors, NL3D::CMeshBase::CMeshBaseBuild::DefaultPivot, NL3D::CMeshBase::CMeshBaseBuild::DefaultPos, NL3D::CMeshBase::CMeshBaseBuild::DefaultRotEuler, NL3D::CMeshBase::CMeshBaseBuild::DefaultRotQuat, NL3D::CMeshBase::CMeshBaseBuild::DefaultScale, NL3D::CMeshBase::CMeshBaseBuild::LightInfoMap, NL3D::CMeshBase::CMeshBaseBuild::Materials, NL3D::CTrackDefaultBlendable< CQuat >::setValue(), NL3D::CTrackDefaultBlendable< CVector >::setValue(), uint32, and NL3D::CMeshBase::CMeshBaseBuild::UseLightingLocalAttenuation. +

+

00227 {
+00228         // Copy light information
+00229         _LightInfos = m.LightInfoMap;
+00230 
+00231         // copy the materials.
+00232         _Materials= m.Materials;
+00233 
+00234         // clear the animated materials.
+00235         _AnimatedMaterials.clear();
+00236 
+00238         _DefaultPos.setValue (m.DefaultPos);
+00239         _DefaultPivot.setValue (m.DefaultPivot);
+00240         _DefaultRotEuler.setValue (m.DefaultRotEuler);
+00241         _DefaultRotQuat.setValue (m.DefaultRotQuat);
+00242         _DefaultScale.setValue (m.DefaultScale);
+00243 
+00244         _AnimatedMorph  .resize(m.DefaultBSFactors.size());
+00245         for (uint32 i = 0; i < m.DefaultBSFactors.size(); ++i)
+00246         {
+00247                 _AnimatedMorph[i].DefaultFactor.setValue (m.DefaultBSFactors[i]);
+00248                 _AnimatedMorph[i].Name = m.BSNames[i];
+00249         }
+00250 
+00251         // update _IsLightable flag.
+00252         computeIsLightable();
+00253         // copy _UseLightingLocalAttenuation
+00254         _UseLightingLocalAttenuation= m.UseLightingLocalAttenuation;
+00255 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
virtual bool NL3D::IShape::clip const std::vector< CPlane > &  pyramid,
const CMatrix worldMatrix
[inline, virtual, inherited]
+
+ + + + + +
+   + + +

+clip this shape with a pyramid. the pyramid is given in world space.The world matrix of the object is given.

Parameters:
+ + + +
pyramid the clipping polytope, planes are normalized.
worldMatrix the world matrix of the instance.
+
+
Returns:
true if the object is visible, false otherwise. The default behavior is to return true (never clipped).
+ +

+Reimplemented in NL3D::CFlareShape, NL3D::CMesh, NL3D::CMeshMRM, NL3D::CMeshMRMSkinned, NL3D::CMeshMultiLod, NL3D::CSegRemanenceShape, NL3D::CSkeletonShape, NL3D::CWaterShape, and NL3D::CWaveMakerShape. +

+Definition at line 93 of file shape.h. +

+

00093 {return true;}
+
+

+ + + + +
+ + + + + + + + + +
void NL3D::CMeshBase::computeIsLightable  )  [private]
+
+ + + + + +
+   + + +

+compute _Lightable. +

+ +

+Definition at line 407 of file mesh_base.cpp. +

+References _IsLightable, and uint. +

+Referenced by buildMeshBase(), and serialMeshBase(). +

+

00408 {
+00409         // by default the mesh is not lightable
+00410         _IsLightable= false;
+00411 
+00412         // Mat count
+00413         uint matCount=_Materials.size();
+00414 
+00415         // for each material 
+00416         for (uint mat=0; mat<matCount; mat++)
+00417         {
+00418                 // if this one is not a lightmap, then OK, the mesh is lightable
+00419                 if( _Materials[mat].getShader()!=CMaterial::LightMap )
+00420                 {
+00421                         _IsLightable= true;
+00422                         break;
+00423                 }
+00424         }
+00425 }
+
+

+ + + + +
+ + + + + + + + + + +
CTransformShape * NL3D::IShape::createInstance CScene scene  )  [virtual, inherited]
+
+ + + + + +
+   + + +

+create an instance of this shape. The instance may be a CTransformShape, or a specialized version of it. The default behavior is to createModel() a CTransformShape, and just assign to it the Shape.

Parameters:
+ + +
scene the scene used to createModel().
+
+
Returns:
the specialized instance for this shape.
+ +

+Reimplemented in NL3D::CFlareShape, NL3D::CMesh, NL3D::CMeshMRM, NL3D::CMeshMRMSkinned, NL3D::CMeshMultiLod, NL3D::CParticleSystemShape, NL3D::CSegRemanenceShape, NL3D::CSkeletonShape, NL3D::CWaterShape, and NL3D::CWaveMakerShape. +

+Definition at line 50 of file shape.cpp. +

+References NL3D::CScene::createModel(), and NL3D::CTransformShape::Shape. +

+Referenced by NL3D::CScene::createInstance(), and NL3D::CScene::updateWaitingInstances(). +

+

00051 {
+00052         CTransformShape         *mo= (CTransformShape*)scene.createModel(NL3D::TransformShapeId);
+00053         mo->Shape= this;
+00054         return mo;
+00055 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NL3D::CMeshBase::flushTextures IDriver driver,
uint  selectedTexture
[virtual]
+
+ + + + + +
+   + + +

+Flush textures. +

+Flush material textures +

+Implements NL3D::IShape. +

+Definition at line 392 of file mesh_base.cpp. +

+References uint. +

+

00393 {
+00394         // Mat count
+00395         uint matCount=_Materials.size();
+00396 
+00397         // Flush each material textures
+00398         for (uint mat=0; mat<matCount; mat++)
+00399         {
+00401                 _Materials[mat].flushTextures (driver, selectedTexture);
+00402         }
+00403 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::IShape::getAABBox NLMISC::CAABBox bbox  )  const [virtual, inherited]
+
+ + + + + +
+   + + +

+return the bounding box of the shape. Default is to return Null bbox. +

+Reimplemented in NL3D::CFlareShape, NL3D::CMesh, NL3D::CMeshMRM, NL3D::CMeshMRMSkinned, NL3D::CMeshMultiLod, NL3D::CParticleSystemShape, NL3D::CSegRemanenceShape, NL3D::CSkeletonShape, NL3D::CWaterShape, and NL3D::CWaveMakerShape. +

+Definition at line 76 of file shape.cpp. +

+References NLMISC::CAABBox::setCenter(), and NLMISC::CAABBox::setHalfSize(). +

+

00077 {
+00078         bbox.setCenter(CVector::Null);
+00079         bbox.setHalfSize(CVector::Null);
+00080 }
+
+

+ + + + +
+ + + + + + + + + + +
CMaterialBase * NL3D::CMeshBase::getAnimatedMaterial uint  id  ) 
+
+ + + + + +
+   + + +

+return NULL if this material is NOT animated. (or if material do not exist) +

+ +

+Definition at line 90 of file mesh_base.cpp. +

+References _AnimatedMaterials, and uint. +

+

00091 {
+00092         TAnimatedMaterialMap::iterator  it;
+00093         it= _AnimatedMaterials.find(id);
+00094         if(it!=_AnimatedMaterials.end())
+00095                 return &it->second;
+00096         else
+00097                 return NULL;
+00098 }
+
+

+ + + + +
+ + + + + + + + + +
bool NL3D::CMeshBase::getAutoAnim  )  const [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 212 of file mesh_base.h. +

+References _AutoAnim. +

+Referenced by NL3D::CScene::createInstance(), and NL3D::CMeshBaseInstance::traverseHrc(). +

+

00212 { return _AutoAnim; }
+
+

+ + + + +
+ + + + + + + + + +
virtual std::string NLMISC::IClassable::getClassName  )  [pure virtual, inherited]
+
+ + + + + +
+   + + +

+ +

+Implemented in NLAIAGENT::CNumericIndex, NLAIC::IPointerGestion, NLAIC::CIdentType, and CAutomataDesc. +

+Referenced by NLMISC::CClassRegistry::checkObject(), and NL3D::GetTextureSize().

+

+ + + + +
+ + + + + + + + + +
CTrackDefaultRGBA* NL3D::CMeshBase::getDefaultLMFactor  )  [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 166 of file mesh_base.h. +

+References _DefaultLMFactor. +

+

00166 {return &_DefaultLMFactor;}
+
+

+ + + + +
+ + + + + + + + + +
CTrackDefaultVector* NL3D::CMeshBase::getDefaultPivot  )  [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 162 of file mesh_base.h. +

+References _DefaultPivot. +

+Referenced by NL3D::CMeshBaseInstance::getDefaultTrack(). +

+

00162 {return &_DefaultPivot;}
+
+

+ + + + +
+ + + + + + + + + +
CTrackDefaultVector* NL3D::CMeshBase::getDefaultPos  )  [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 161 of file mesh_base.h. +

+Referenced by NL3D::CMeshBaseInstance::getDefaultTrack(). +

+

00161 {return &_DefaultPos;}
+
+

+ + + + +
+ + + + + + + + + +
CTrackDefaultVector* NL3D::CMeshBase::getDefaultRotEuler  )  [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 163 of file mesh_base.h. +

+References _DefaultRotEuler. +

+Referenced by NL3D::CMeshBaseInstance::getDefaultTrack(). +

+

00163 {return &_DefaultRotEuler;}
+
+

+ + + + +
+ + + + + + + + + +
CTrackDefaultQuat* NL3D::CMeshBase::getDefaultRotQuat  )  [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 164 of file mesh_base.h. +

+References _DefaultRotQuat. +

+Referenced by NL3D::CMeshBaseInstance::getDefaultTrack(). +

+

00164 {return &_DefaultRotQuat;}
+
+

+ + + + +
+ + + + + + + + + +
CTrackDefaultVector* NL3D::CMeshBase::getDefaultScale  )  [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 165 of file mesh_base.h. +

+References _DefaultScale. +

+Referenced by NL3D::CMeshBaseInstance::getDefaultTrack(). +

+

00165 {return &_DefaultScale;}
+
+

+ + + + +
+ + + + + + + + + +
float NL3D::IShape::getDistMax  )  const [inline, inherited]
+
+ + + + + +
+   + + +

+return the DistMax where the shape is no more displayed. Default is to return -1, meaning DistMax = infinite. +

+Definition at line 112 of file shape.h. +

+

00112 {return _DistMax;}
+
+

+ + + + +
+ + + + + + + + + +
const CLodCharacterTexture* NL3D::CMeshBase::getLodCharacterTexture  )  const [inline]
+
+ + + + + +
+   + + +

+get the lod texture info. see CSkeletonModel Lod system. NULL per default. NB: serialised +

+ +

+Definition at line 223 of file mesh_base.h. +

+References _LodCharacterTexture. +

+Referenced by NL3D::CSkeletonModel::computeLodTexture(). +

+

00223 {return _LodCharacterTexture;}
+
+

+ + + + +
+ + + + + + + + + + +
const CMaterial& NL3D::CMeshBase::getMaterial uint  id  )  const [inline]
+
+ + + + + +
+   + + +

+Get a material, const version. +

+ +

+Definition at line 184 of file mesh_base.h. +

+References uint. +

+

00185         {
+00186                 return _Materials[id];
+00187         }
+
+

+ + + + +
+ + + + + + + + + + +
CMaterial& NL3D::CMeshBase::getMaterial uint  id  )  [inline]
+
+ + + + + +
+   + + +

+Get a material. +

+ +

+Definition at line 179 of file mesh_base.h. +

+References uint. +

+Referenced by NL3D::CZoneLighter::addTriangles(), NL3D::CCoarseMeshBuild::buildBitmap(), NL3D::CPSConstraintMesh::CMeshDisplayShare::buildRdrPassSet(), NL3D::CheckForLightableFacesInMesh(), NL3D::CheckForOpaqueAndTransparentFacesInMesh(), NL3D::CShapeBank::processWaitingShapes(), NL3D::CCoarseMeshBuild::remapCoordinates(), NL3D::CAsyncFileManager3D::CMeshLoad::run(), and NL3D::CMeshBaseInstance::selectTextureSet(). +

+

00180         {
+00181                 return _Materials[id];
+00182         }
+
+

+ + + + +
+ + + + + + + + + +
uint NL3D::CMeshBase::getNbMaterial  )  const [inline]
+
+ + + + + +
+   + + +

+Get the number of materials in the mesh. +

+ +

+Definition at line 173 of file mesh_base.h. +

+References uint. +

+Referenced by NL3D::CShapeBank::processWaitingShapes(), NL3D::CAsyncFileManager3D::CMeshLoad::run(), and NL3D::CMeshBaseInstance::selectTextureSet(). +

+

00174         {
+00175                 return _Materials.size();
+00176         }
+
+

+ + + + +
+ + + + + + + + + + +
virtual float NL3D::IShape::getNumTriangles float  distance  )  [pure virtual, inherited]
+
+ + + + + +
+   + + +

+get an approximation of the number of triangles this instance will render for a fixed distance. return 0 if do not support degradation. +

+Implemented in NL3D::CFlareShape, NL3D::CMesh, NL3D::CMeshMRM, NL3D::CMeshMRMSkinned, NL3D::CMeshMultiLod, NL3D::CParticleSystemShape, NL3D::CSegRemanenceShape, NL3D::CSkeletonShape, NL3D::CWaterShape, and NL3D::CWaveMakerShape.

+

+ + + + +
+ + + + + + + + + +
const sint& NLMISC::CRefCount::getRefCount  )  const [inline, inherited]
+
+ + + + + +
+   + + +

+ +

+Definition at line 70 of file smart_ptr.h. +

+References NLMISC::CRefCount::crefs, and sint. +

+

00071         {
+00072                 return  crefs;
+00073         }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NL3D::CMeshBase::instanciateMeshBase CMeshBaseInstance mi,
CScene ownerScene
[protected]
+
+ + + + + +
+   + + +

+instanciate MeshBase part to an instance (a CMeshBaseInstance). +

+ +

+Definition at line 261 of file mesh_base.cpp. +

+References _AnimatedMaterials, NL3D::CMeshBaseInstance::_AnimatedMaterials, _AnimatedMorph, NL3D::CMeshBaseInstance::_AnimatedMorphFactor, _DefaultPivot, _DefaultRotQuat, _DefaultScale, NL3D::CMeshBaseInstance::AsyncTextures, NL3D::CAnimatedValueQuat, NL3D::CAnimatedValueVector, NL3D::CTrackDefaultBlendable< CQuat >::getValue(), NL3D::CTrackDefaultBlendable< CVector >::getValue(), NL3D::CMeshBaseInstance::Materials, nlassert, NL3D::CMeshBaseInstance::selectTextureSet(), NL3D::IAnimatable::setFather(), NL3D::CTransform::setIsBigLightable(), NL3D::CTransform::setIsLightable(), NL3D::CAnimatedMaterial::setMaterial(), NL3D::CTransform::setOpacity(), NL3D::CTransform::setTransparency(), and uint32. +

+

00262 {
+00263         uint32 i;
+00264 
+00265 
+00266         // setup animated blendShapes
+00267         //===========================
+00268         mi->_AnimatedMorphFactor.reserve(_AnimatedMorph.size());
+00269         for(i = 0; i < _AnimatedMorph.size(); ++i)
+00270         {
+00271                 CAnimatedMorph am(&_AnimatedMorph[i]);
+00272                 mi->_AnimatedMorphFactor.push_back (am);
+00273         }
+00274         
+00275         // setup materials.
+00276         //=================
+00277         // Copy material. Textures are referenced only
+00278         mi->Materials= _Materials;
+00279 
+00280         // Instanciate selectable textures (use default set)
+00281         mi->selectTextureSet(0);
+00282 
+00283         // prepare possible AsyncTextures
+00284         mi->AsyncTextures.resize(_Materials.size());
+00285 
+00286         // setup animated materials.
+00287         //==========================
+00288         TAnimatedMaterialMap::iterator  it;
+00289         mi->_AnimatedMaterials.reserve(_AnimatedMaterials.size());
+00290         for(it= _AnimatedMaterials.begin(); it!= _AnimatedMaterials.end(); it++)
+00291         {
+00292                 CAnimatedMaterial       aniMat(&it->second);
+00293 
+00294                 // set the target instance material.
+00295                 nlassert(it->first < mi->Materials.size());
+00296                 aniMat.setMaterial(&mi->Materials[it->first]);
+00297 
+00298                 // Must set the Animatable father of the animated material (the mesh_base_instance!).
+00299                 aniMat.setFather(mi, CMeshBaseInstance::OwnerBit);
+00300 
+00301                 // Append this animated material.
+00302                 mi->_AnimatedMaterials.push_back(aniMat);
+00303         }
+00304 
+00305         // Misc
+00306         //==========================
+00307         
+00308         // Setup position with the default value
+00309         mi->ITransformable::setPos( ((CAnimatedValueVector&)_DefaultPos.getValue()).Value  );
+00310         mi->ITransformable::setRotQuat( ((CAnimatedValueQuat&)_DefaultRotQuat.getValue()).Value  );
+00311         mi->ITransformable::setScale( ((CAnimatedValueVector&)_DefaultScale.getValue()).Value  );
+00312         mi->ITransformable::setPivot( ((CAnimatedValueVector&)_DefaultPivot.getValue()).Value  );
+00313 
+00314         // Check materials for transparency
+00315         mi->setTransparency( false );
+00316         mi->setOpacity( false );
+00317         for( i = 0; i < mi->Materials.size(); ++i )
+00318         if( mi->Materials[i].getBlend() )
+00319                 mi->setTransparency( true );
+00320         else
+00321                 mi->setOpacity( true );
+00322 
+00323         // if the mesh is lightable, then the instance is
+00324         mi->setIsLightable(this->isLightable());
+00325 
+00326         // a mesh is considered big for lightable if it uses localAttenuation
+00327         mi->setIsBigLightable(this->useLightingLocalAttenuation());
+00328 
+00329 }
+
+

+ + + + +
+ + + + + + + + + +
bool NL3D::CMeshBase::isLightable  )  const [inline]
+
+ + + + + +
+   + + +

+Is this mesh lightable? true if one of his materials is not a lightmap. NB: result stored in file. +

+ +

+Definition at line 198 of file mesh_base.h. +

+References _IsLightable. +

+Referenced by NL3D::CInstanceLighter::light(). +

+

00198 {return _IsLightable;}
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void NL3D::IShape::profileSceneRender CRenderTrav rdrTrav,
CTransformShape trans,
bool  opaquePass
[inline, virtual, inherited]
+
+ + + + + +
+   + + +

+Profiling. Called in RenderPass if Current Frame profiled. No-Op by default Informations must be added in rdrTrav->Scene +

+Reimplemented in NL3D::CMesh, NL3D::CMeshMRM, NL3D::CMeshMRMSkinned, and NL3D::CMeshMultiLod. +

+Definition at line 123 of file shape.h. +

+

00123 {}
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void NL3D::IShape::render IDriver drv,
CTransformShape trans,
bool  opaquePass
[pure virtual, inherited]
+
+ + + + + +
+   + + +

+render() this shape in a driver, with the specified TransformShape information. CTransfromShape call this method in the render traversal. if opaquePass render the opaque materials else render the transparent materials. +

+Implemented in NL3D::CFlareShape, NL3D::CMesh, NL3D::CMeshMRM, NL3D::CMeshMRMSkinned, NL3D::CMeshMultiLod, NL3D::CParticleSystemShape, NL3D::CSegRemanenceShape, NL3D::CSkeletonShape, NL3D::CWaterShape, and NL3D::CWaveMakerShape.

+

+ + + + +
+ + + + + + + + + +
void NL3D::CMeshBase::resetLodCharacterTexture  ) 
+
+ + + + + +
+   + + +

+reset the lod texture info. see CSkeletonModel Lod system. +

+ +

+Definition at line 436 of file mesh_base.cpp. +

+References _LodCharacterTexture. +

+Referenced by applyMaterialUsageOptim(), setupLodCharacterTexture(), and ~CMeshBase(). +

+

00437 {
+00438         if(_LodCharacterTexture)
+00439         {
+00440                 delete _LodCharacterTexture;
+00441                 _LodCharacterTexture= NULL;
+00442         }
+00443 }
+
+

+ + + + +
+ + + + + + + + + + +
virtual void NLMISC::IStreamable::serial IStream f  )  [pure virtual, inherited]
+
+ + + + + +
+   + + +

+ +

+Implemented in NL3D::CFlareShape, NL3D::CTextureCross, NL3D::CMesh, NL3D::CMeshGeom, NL3D::CMeshMRMGeom, NL3D::CMeshMRM, NL3D::CMeshMRMSkinnedGeom, NL3D::CMeshMRMSkinned, NL3D::CMeshMultiLod, NL3D::CMeshVPPerPixelLight, NL3D::CMeshVPWindTree, NL3D::CParticleSystemProcess, NL3D::CParticleSystemShape, NL3D::CPSAttribMaker< T >, NL3D::CPSAttribMakerBinOp< T >, NL3D::CPSAttribMakerT< T, F >, NL3D::CPSAttribMakerMemoryBase< T >, NL3D::CPSAttribMakerMemory< uint32 >, NL3D::CPSAttribMakerMemory< sint32 >, NL3D::CPSAttribMakerMemory< float >, NL3D::CPSDot, NL3D::CPSEmitter, NL3D::CPSEmitterDirectionnal, NL3D::CPSRadialEmitter, NL3D::CPSEmitterOmni, NL3D::CPSEmitterRectangle, NL3D::CPSEmitterConic, NL3D::CPSSphericalEmitter, NL3D::CPSFace, NL3D::CPSFaceLookAt, NL3D::CPSFanLight, NL3D::CPSForce, NL3D::CPSForceIntensityHelper, NL3D::CIsotropicForceT< T >, NL3D::CPSDirectionnalForce, NL3D::CPSGravity, NL3D::CPSCentralGravity, NL3D::CPSSpring, NL3D::CPSCylindricVortex, NL3D::CPSMagneticForce, NL3D::CPSLight, NL3D::CPSLocated, NL3D::CPSLocatedBindable, NL3D::CPSTargetLocatedBindable, NL3D::CPSMesh, NL3D::CPSConstraintMesh, NL3D::CPSParticle, NL3D::CPSPlaneBasisFollowSpeed, NL3D::CPSQuad, NL3D::CPSRibbon, NL3D::CPSRibbonBase, NL3D::CPSRibbonLookAt, NL3D::CPSShockWave, NL3D::CPSSound, NL3D::CPSTailDot, NL3D::CPSZone, NL3D::CPSZonePlane, NL3D::CPSZoneSphere, NL3D::CPSZoneDisc, NL3D::CPSZoneCylinder, NL3D::CPSZoneRectangle, NL3D::CSegRemanenceShape, NL3D::CSkeletonShape, NL3D::ITexture, NL3D::CTextureBlend, NL3D::CTextureBump, NL3D::CTextureCube, NL3D::CTextureDLM, NL3D::CTextureEmboss, NL3D::CTextureFar, NL3D::CTextureFile, NL3D::CTextureFont, NL3D::CTextureGrouped, NL3D::CTextureMem, NL3D::CTextureMultiFile, NL3D::CTextureNear, NL3D::CTrackDefaultBlendable< T >, NL3D::CTrackDefaultNotBlendable< T >, NL3D::ITrackKeyFramer< CKeyT >, NL3D::CTrackSampledQuat, NL3D::CTrackSampledVector, NL3D::CWaterShape, NL3D::CWaveMakerShape, NLAIAGENT::CNumericIndex, NLAIC::IPointerGestion, NLAIC::CIdentType, NLAIC::IBasicInterface, NLAISCRIPT::COperandVoid, NLAISCRIPT::COperandAnyObject, NLAISCRIPT::COperandSimple, NLAISCRIPT::COperandSimpleListOr, NLAISCRIPT::COperandUnknown, NLAISCRIPT::COperationType, NLAISCRIPT::COperationTypeGD, NLAISCRIPT::COperandListType, CAutomataDesc, NL3D::CPSAttribMaker< float >, NL3D::CPSAttribMaker< CPlaneBasis >, NL3D::CPSAttribMaker< NLMISC::CRGBA >, NL3D::CPSAttribMaker< uint32 >, NL3D::CPSAttribMaker< CRGBA >, NL3D::CPSAttribMaker< sint32 >, NL3D::CPSAttribMakerBinOp< float >, NL3D::CPSAttribMakerBinOp< CPlaneBasis >, NL3D::CPSAttribMakerBinOp< uint32 >, NL3D::CPSAttribMakerBinOp< NLMISC::CRGBA >, NL3D::CPSAttribMakerBinOp< sint32 >, NL3D::CPSAttribMakerT< NLMISC::CRGBA, CPSValueGradientFunc< NLMISC::CRGBA > >, NL3D::CPSAttribMakerT< sint32, CPSValueBlendFunc< sint32 > >, NL3D::CPSAttribMakerT< T, CPSValueGradientFunc< T > >, NL3D::CPSAttribMakerT< sint32, CPSValueGradientFunc< sint32 > >, NL3D::CPSAttribMakerT< uint32, CPSValueGradientFunc< uint32 > >, NL3D::CPSAttribMakerT< NLMISC::CRGBA, CPSValueBlendFunc< NLMISC::CRGBA > >, NL3D::CPSAttribMakerT< float, CPSFloatCurveFunctor >, NL3D::CPSAttribMakerT< CPlaneBasis, CPSValueBlendFunc< CPlaneBasis > >, NL3D::CPSAttribMakerT< float, CPSValueGradientFunc< float > >, NL3D::CPSAttribMakerT< float, CPSValueBlendFunc< float > >, NL3D::CPSAttribMakerT< T, CPSValueBlendSampleFunc< T, n > >, NL3D::CPSAttribMakerT< NLMISC::CRGBA, CPSValueBlendSampleFunc< NLMISC::CRGBA, n > >, NL3D::CPSAttribMakerT< CPlaneBasis, CPSValueGradientFunc< CPlaneBasis > >, NL3D::CPSAttribMakerT< CPlaneBasis, CSpinnerFunctor >, NL3D::CPSAttribMakerT< T, CPSValueBlendFunc< T > >, NL3D::CPSAttribMakerT< uint32, CPSValueBlendFunc< uint32 > >, NL3D::CPSAttribMakerMemoryBase< float >, NL3D::CPSAttribMakerMemoryBase< CPlaneBasis >, NL3D::CPSAttribMakerMemoryBase< NLMISC::CRGBA >, NL3D::CPSAttribMakerMemoryBase< uint32 >, NL3D::CPSAttribMakerMemoryBase< sint32 >, NL3D::CIsotropicForceT< CPSTurbulForceFunc >, NL3D::CIsotropicForceT< CPSFluidFrictionFunctor >, NL3D::CTrackDefaultBlendable< float >, NL3D::CTrackDefaultBlendable< NLMISC::CRGBA >, NL3D::CTrackDefaultBlendable< CQuat >, NL3D::CTrackDefaultBlendable< sint32 >, NL3D::CTrackDefaultBlendable< CVector >, NL3D::CTrackDefaultNotBlendable< std::string >, NL3D::CTrackDefaultNotBlendable< bool >, NL3D::ITrackKeyFramer< CKeyBezierVector >, NL3D::ITrackKeyFramer< CKeyTCBVector >, NL3D::ITrackKeyFramer< CKeyVector >, NL3D::ITrackKeyFramer< CKeyTCBQuat >, NL3D::ITrackKeyFramer< CKeyRGBA >, NL3D::ITrackKeyFramer< CKeyInt >, NL3D::ITrackKeyFramer< CKeyBool >, NL3D::ITrackKeyFramer< CKeyFloat >, NL3D::ITrackKeyFramer< CKeyQuat >, NL3D::ITrackKeyFramer< CKeyBezierFloat >, NL3D::ITrackKeyFramer< CKeyTCBFloat >, NL3D::ITrackKeyFramer< CKeyString >, and NL3D::ITrackKeyFramer< CKeyBezierQuat >. +

+Referenced by NL3D::CMeshMRMGeom::loadHeader().

+

+ + + + +
+ + + + + + + + + + +
void NL3D::CMeshBase::serialMeshBase NLMISC::IStream f  )  throw (NLMISC::EStream)
+
+ + + + + +
+   + + +

+serial the base Part of this mesh. +

+ +

+Definition at line 149 of file mesh_base.cpp. +

+References _AnimatedMaterials, _AnimatedMorph, _AutoAnim, _DefaultPivot, _DefaultRotEuler, _DefaultRotQuat, _DefaultScale, _IsLightable, _LightInfos, _LodCharacterTexture, _UseLightingLocalAttenuation, computeIsLightable(), sint, and TLightInfoMapV7. +

+

00150 {
+00151         /*
+00152         Version 8:
+00153                 - new format for CLightMapInfoList
+00154         Version 7:
+00155                 - _LodCharacterTexture
+00156         Version 6:
+00157                 - _DistMax
+00158         Version 5:
+00159                 - _AutoAnim
+00160         Version 4:
+00161                 - _UseLightingLocalAttenuation
+00162         Version 3:
+00163                 - _IsLightable
+00164         Version 2:
+00165                 - Added Blend Shapes factors
+00166         Version 1:
+00167                 - Cut in version because of badly coded ITexture* serialisation. throw an exception if 
+00168                         find a version < 1.
+00169         Version 0:
+00170                 - 1st version.
+00171         */
+00172         sint ver = f.serialVersion(8);
+00173 
+00174         if (ver >= 2)
+00175         {
+00176                 f.serialCont (_AnimatedMorph);
+00177         }
+00178 
+00179         if(ver<1)
+00180                 throw NLMISC::EStream(f, "Mesh in Stream is too old (MeshBase version < 1)");
+00181 
+00182         f.serial (_DefaultPos);
+00183         f.serial (_DefaultPivot);
+00184         f.serial (_DefaultRotEuler);
+00185         f.serial (_DefaultRotQuat);
+00186         f.serial (_DefaultScale);
+00187 
+00188         f.serialCont(_Materials);
+00189         f.serialCont(_AnimatedMaterials);
+00190 
+00191         if(ver >= 8)
+00192                 f.serialCont(_LightInfos);
+00193         else
+00194         {
+00195                 TLightInfoMapV7 temp;
+00196                 f.serialCont(temp);
+00197         }
+00198 
+00199         if(ver>=3)
+00200                 // read/write _IsLightable flag.
+00201                 f.serial(_IsLightable);
+00202         else if( f.isReading() )
+00203                 // update _IsLightable flag.
+00204                 computeIsLightable();
+00205 
+00206         if(ver>=4)
+00207                 f.serial(_UseLightingLocalAttenuation);
+00208         else if( f.isReading() )
+00209                 _UseLightingLocalAttenuation= false;
+00210 
+00211         if (ver >= 5)
+00212         {
+00213                 f.serial(_AutoAnim);
+00214         }
+00215 
+00216         if(ver >= 6)
+00217                 f.serial(_DistMax);
+00218 
+00219         if(ver >= 7)
+00220                 f.serialPtr(_LodCharacterTexture);
+00221 
+00222 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NL3D::CMeshBase::setAnimatedMaterial uint  id,
const std::string &  matName
+
+ + + + + +
+   + + +

+setup a material as animated. Material must exist or else no-op. +

+ +

+Definition at line 77 of file mesh_base.cpp. +

+References _AnimatedMaterials, nlassert, and uint. +

+

00078 {
+00079         nlassert(!matName.empty());
+00080         if(id<_Materials.size())
+00081         {
+00082                 // add / replace animated material.
+00083                 _AnimatedMaterials[id].Name= matName;
+00084                 // copy Material default.
+00085                 _AnimatedMaterials[id].copyFromMaterial(&_Materials[id]);
+00086         }
+00087 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CMeshBase::setAutoAnim bool  on = true  )  [inline]
+
+ + + + + +
+   + + +

+Tells that the model instanciated from this shape should be automatically animated. If so the scene will search for an automatic anim that has the same name than this shape and will bind it. This state is serialized. NB: This is a clue to scene::createInstance, a call to createInstance of this object won't make the animation binding. +

+Definition at line 210 of file mesh_base.h. +

+References _AutoAnim. +

+

00210 { _AutoAnim = on; }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::IShape::setDistMax float  distMax  )  [inherited]
+
+ + + + + +
+   + + +

+setup the DistMax where the shape is no more displayed. Take effect only for the next created instances. setting <0 means -1 and so means DistMax = infinite. +

+Definition at line 66 of file shape.cpp. +

+Referenced by NL3D::CFlareShape::CFlareShape(). +

+

00067 {
+00068         _DistMax= distMax;
+00069         // normalize infinite setup.
+00070         if(distMax<0)
+00071                 _DistMax= -1;
+00072 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CMeshBase::setupLodCharacterTexture CLodCharacterTexture lodText  ) 
+
+ + + + + +
+   + + +

+setup the lod texture info. see CSkeletonModel Lod system +

+ +

+Definition at line 446 of file mesh_base.cpp. +

+References _LodCharacterTexture, and resetLodCharacterTexture(). +

+

00447 {
+00448         // delete old
+00449         resetLodCharacterTexture();
+00450         // seutp new
+00451         _LodCharacterTexture= new CLodCharacterTexture;
+00452         *_LodCharacterTexture= lodText;
+00453 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
virtual IMeshGeom* NL3D::IShape::supportMeshBlockRendering CTransformShape trans,
float &  polygonCount
const [inline, virtual, inherited]
+
+ + + + + +
+   + + +

+return !NULL if this shape can support MeshBlock rendering for a special instance. NB: Mesh Block render cannot occurs if the Mesh is Skinned/MeshMorphed. NB: Mesh Block render can occurs only in Opaque pass NB: Mesh block render can occurs only for CMeshBase meshes.

Parameters:
+ + + +
trans the instance to take into account (meshMultiLod may return NULL in blend transition).
polygonCount the number of polygons to render for the meshGeom returned
+
+
Returns:
the meshgeom to render per block if OK, else NULL (default)
+ +

+Reimplemented in NL3D::CMesh, NL3D::CMeshMRM, NL3D::CMeshMRMSkinned, and NL3D::CMeshMultiLod. +

+Definition at line 158 of file shape.h. +

+

00158 {return NULL;}
+
+

+ + + + +
+ + + + + + + + + +
bool NL3D::CMeshBase::useLightingLocalAttenuation  )  const [virtual]
+
+ + + + + +
+   + + +

+tells if the shape wants LocalAttenuation for RealTime lighting. Default is false +

+ +

+Reimplemented from NL3D::IShape. +

+Definition at line 429 of file mesh_base.cpp. +

+References _UseLightingLocalAttenuation. +

+

00430 {
+00431         return _UseLightingLocalAttenuation;
+00432 }
+
+


Friends And Related Function Documentation

+

+ + + + +
+ + +
friend struct CPtrInfo [friend, inherited] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 67 of file smart_ptr.h.

+


Field Documentation

+

+ + + + +
+ + +
TAnimatedMaterialMap NL3D::CMeshBase::_AnimatedMaterials [protected] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 240 of file mesh_base.h. +

+Referenced by applyMaterialUsageOptim(), buildMeshBase(), getAnimatedMaterial(), instanciateMeshBase(), serialMeshBase(), and setAnimatedMaterial().

+

+ + + + +
+ + +
std::vector<CMorphBase> NL3D::CMeshBase::_AnimatedMorph [protected] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 251 of file mesh_base.h. +

+Referenced by buildMeshBase(), instanciateMeshBase(), and serialMeshBase().

+

+ + + + +
+ + +
bool NL3D::CMeshBase::_AutoAnim [protected] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 258 of file mesh_base.h. +

+Referenced by CMeshBase(), getAutoAnim(), serialMeshBase(), and setAutoAnim().

+

+ + + + +
+ + +
CTrackDefaultRGBA NL3D::CMeshBase::_DefaultLMFactor [protected] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 249 of file mesh_base.h. +

+Referenced by CMeshBase(), and getDefaultLMFactor().

+

+ + + + +
+ + +
CTrackDefaultVector NL3D::CMeshBase::_DefaultPivot [protected] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 245 of file mesh_base.h. +

+Referenced by buildMeshBase(), CMeshBase(), getDefaultPivot(), instanciateMeshBase(), and serialMeshBase().

+

+ + + + +
+ + +
CTrackDefaultVector NL3D::CMeshBase::_DefaultPos [protected] +
+
+ + + + + +
+   + + +

+Transform default tracks. Those default tracks are instancied, ie, CInstanceMesh will have the same and can't specialize it. +

+ +

+Definition at line 244 of file mesh_base.h.

+

+ + + + +
+ + +
CTrackDefaultVector NL3D::CMeshBase::_DefaultRotEuler [protected] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 246 of file mesh_base.h. +

+Referenced by buildMeshBase(), CMeshBase(), getDefaultRotEuler(), and serialMeshBase().

+

+ + + + +
+ + +
CTrackDefaultQuat NL3D::CMeshBase::_DefaultRotQuat [protected] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 247 of file mesh_base.h. +

+Referenced by buildMeshBase(), CMeshBase(), getDefaultRotQuat(), instanciateMeshBase(), and serialMeshBase().

+

+ + + + +
+ + +
CTrackDefaultVector NL3D::CMeshBase::_DefaultScale [protected] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 248 of file mesh_base.h. +

+Referenced by buildMeshBase(), CMeshBase(), getDefaultScale(), instanciateMeshBase(), and serialMeshBase().

+

+ + + + +
+ + +
float NL3D::IShape::_DistMax [protected, inherited] +
+
+ + + + + +
+   + + +

+Default to -1. +

+ +

+Definition at line 165 of file shape.h.

+

+ + + + +
+ + +
bool NL3D::CMeshBase::_IsLightable [protected] +
+
+ + + + + +
+   + + +

+Is this mesh lightable?? +

+ +

+Definition at line 254 of file mesh_base.h. +

+Referenced by computeIsLightable(), isLightable(), and serialMeshBase().

+

+ + + + +
+ + +
TLightMapInfo NL3D::CMeshBase::_LightInfos +
+
+ + + + + +
+   + + +

+ +

+Definition at line 234 of file mesh_base.h. +

+Referenced by applyMaterialUsageOptim(), buildMeshBase(), NL3D::UShape::cameraCollisionable(), NL3D::CMeshBaseInstance::getLightMapName(), NL3D::CMeshBaseInstance::getNbLightMap(), NL3D::CMeshBaseInstance::initAnimatedLightIndex(), serialMeshBase(), and NL3D::CMeshBaseInstance::traverseAnimDetail().

+

+ + + + +
+ + +
CLodCharacterTexture* NL3D::CMeshBase::_LodCharacterTexture [private] +
+
+ + + + + +
+   + + +

+The Texture Lod info for this mesh. NB: NULL by default. +

+ +

+Definition at line 278 of file mesh_base.h. +

+Referenced by CMeshBase(), getLodCharacterTexture(), resetLodCharacterTexture(), serialMeshBase(), and setupLodCharacterTexture().

+

+ + + + +
+ + +
std::vector<CMaterial> NL3D::CMeshBase::_Materials [protected] +
+
+ + + + + +
+   + + +

+The Materials. +

+ +

+Definition at line 230 of file mesh_base.h.

+

+ + + + +
+ + +
bool NL3D::CMeshBase::_UseLightingLocalAttenuation [protected] +
+
+ + + + + +
+   + + +

+Is this mesh Use Lighting Local Attenuation ?? +

+ +

+Definition at line 256 of file mesh_base.h. +

+Referenced by buildMeshBase(), CMeshBase(), serialMeshBase(), and useLightingLocalAttenuation().

+

+ + + + +
+ + +
sint NLMISC::CRefCount::crefs [mutable, inherited] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 79 of file smart_ptr.h. +

+Referenced by NLMISC::CRefCount::CRefCount(), NLMISC::CRefCount::getRefCount(), and NLMISC::CRefCount::~CRefCount().

+

+ + + + +
+ + +
CRefCount::CPtrInfo NLMISC::CRefCount::NullPtrInfo [static, inherited] +
+
+ + + + + +
+   + + +

+ +

+Referenced by NLMISC::CRefCount::CRefCount().

+

+ + + + +
+ + +
CPtrInfo* NLMISC::CRefCount::pinfo [mutable, inherited] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 80 of file smart_ptr.h. +

+Referenced by NLMISC::CRefCount::CRefCount(), and NLMISC::CRefCount::~CRefCount().

+


The documentation for this class was generated from the following files: +
Generated on Tue Mar 16 06:51:11 2004 for NeL by + +doxygen +1.3.6
+ + -- cgit v1.2.1