# 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::CTransformShape Class Reference

A transform which "is an instance of"/"point to" a IShape. More...

#include <transform_shape.h>

Inheritance diagram for NL3D::CTransformShape:

NL3D::CTransform NL3D::IModel NL3D::ITransformable NLMISC::CRefCount NL3D::IAnimatable NL3D::CFlareModel NL3D::CMeshBaseInstance NL3D::CParticleSystemModel NL3D::CSegRemanence NL3D::CSkeletonModel NL3D::CWaterModel NL3D::CWaveMakerModel NL3D::CMeshInstance NL3D::CMeshMRMInstance NL3D::CMeshMultiLodInstance List of all members.

Public Methods

virtual void getAABBox (NLMISC::CAABBox &bbox) const
 Get the untransformed AABBox of the mesh. More...

virtual uint getNumMaterial () const
 Get the count of material in this transform shape. More...

virtual const CMaterialgetMaterial (uint materialId) const
 Get a material of the transform shape. More...

virtual CMaterialgetMaterial (uint materialId)
 Get a material of the transform shape. More...

virtual bool canStartStop ()
 Test if there is a start/stop caps in the objects (some fxs such as remanence). More...

virtual void start ()
virtual void stop ()
virtual bool isStarted () const
float getDistMax () const
void setDistMax (float distMax)
Load balancing methods
virtual float getNumTriangles (float distance)
 get an approximation of the number of triangles this instance want render for a fixed distance. More...

float getNumTrianglesAfterLoadBalancing ()
 get an approximation of the number of triangles this instance should render. More...

virtual const CMRMLevelDetailgetMRMLevelDetail () const
 If the model support MRM, return the level detail setup. default is return NULL. More...

Mesh Block Render Tools
void changeLightSetup (CRenderTrav *rdrTrav)
 setup lighting for this instance into driver. The render observer must have been called before. More...


Static Public Methods

void registerBasic ()
 Call at the begining of the program, to register the model, and the basic observers. More...


Public Attributes

CSmartPtr< IShapeShape
 The shape, the object instancied. More...


Protected Methods

 CTransformShape ()
 Constructor. More...

virtual ~CTransformShape ()
 Destructor. More...

void setupCurrentLightContribution (CLightContribution *lightContrib, bool useLocalAtt)
 For deriver who wants to setup their own current lightContribution setup (as skeleton). More...


Private Methods

CLightContributiongetLightContribution ()

Static Private Methods

IModelcreator ()

Private Attributes

float _NumTrianglesAfterLoadBalancing
CLightContribution_CurrentLightContribution
bool _CurrentUseLocalAttenuation
float _DistMax

Friends

class CTransformShapeClipObs
class CTransformShapeRenderObs
class CTransformShapeLoadBalancingObs

Detailed Description

A transform which "is an instance of"/"point to" a IShape.

Author:
Lionel Berenguier , Nevrax France
Date:
2000

Definition at line 65 of file transform_shape.h.


Constructor & Destructor Documentation

NL3D::CTransformShape::CTransformShape   [protected]
 

Constructor.

Definition at line 58 of file transform_shape.cpp.

References _CurrentLightContribution, _CurrentUseLocalAttenuation, _DistMax, and _NumTrianglesAfterLoadBalancing.

Referenced by creator, NL3D::CSegRemanence::operator=, and NL3D::CSkeletonModel::updateSkinRenderLists.

virtual NL3D::CTransformShape::~CTransformShape   [inline, protected, virtual]
 

Destructor.

Definition at line 143 of file transform_shape.h.


Member Function Documentation

virtual bool NL3D::CTransformShape::canStartStop   [inline, virtual]
 

Test if there is a start/stop caps in the objects (some fxs such as remanence).

Reimplemented in NL3D::CSegRemanence.

Definition at line 127 of file transform_shape.h.

void NL3D::CTransformShape::changeLightSetup CRenderTrav   rdrTrav
 

setup lighting for this instance into driver. The render observer must have been called before.

Definition at line 103 of file transform_shape.cpp.

References _CurrentLightContribution, and _CurrentUseLocalAttenuation.

IModel* NL3D::CTransformShape::creator   [inline, static, private]
 

Reimplemented from NL3D::CTransform.

Reimplemented in NL3D::CFlareModel.

Definition at line 151 of file transform_shape.h.

References CTransformShape, and NL3D::IModel::IModel.

void NL3D::CTransformShape::getAABBox NLMISC::CAABBox   bbox const [virtual]
 

Get the untransformed AABBox of the mesh.

NULL (gtSize()==0) if no mesh.

Reimplemented from NL3D::CTransform.

Reimplemented in NL3D::CParticleSystemModel.

Definition at line 81 of file transform_shape.cpp.

References NLMISC::CAABBox::setCenter, NLMISC::CAABBox::setHalfSize, and Shape.

float NL3D::CTransformShape::getDistMax   const [inline]
 

Definition at line 136 of file transform_shape.h.

References _DistMax.

CLightContribution& NL3D::CTransformShape::getLightContribution   [inline, private]
 

Reimplemented in NL3D::CMeshMultiLodInstance.

Definition at line 160 of file transform_shape.h.

References NL3D::CTransform::_LightContribution.

CMaterial * NL3D::CTransformShape::getMaterial uint    materialId [virtual]
 

Get a material of the transform shape.

Reimplemented in NL3D::CMeshBaseInstance.

Definition at line 125 of file transform_shape.cpp.

const CMaterial * NL3D::CTransformShape::getMaterial uint    materialId const [virtual]
 

Get a material of the transform shape.

Reimplemented in NL3D::CMeshBaseInstance.

Definition at line 118 of file transform_shape.cpp.

virtual const CMRMLevelDetail* NL3D::CTransformShape::getMRMLevelDetail   const [inline, virtual]
 

If the model support MRM, return the level detail setup. default is return NULL.

Reimplemented in NL3D::CMeshMRMInstance.

Definition at line 115 of file transform_shape.h.

uint NL3D::CTransformShape::getNumMaterial   const [virtual]
 

Get the count of material in this transform shape.

Reimplemented in NL3D::CMeshBaseInstance.

Definition at line 111 of file transform_shape.cpp.

float NL3D::CTransformShape::getNumTriangles float    distance [virtual]
 

get an approximation of the number of triangles this instance want render for a fixed distance.

Parameters:
distance  is the distance of the shape from the eye.
Returns:
the approximate number of triangles this instance will render at this distance. This number can be a float. The function MUST be decreasing or constant with the distance but don't have to be continus.

Reimplemented in NL3D::CMeshMultiLodInstance.

Definition at line 73 of file transform_shape.cpp.

References Shape.

float NL3D::CTransformShape::getNumTrianglesAfterLoadBalancing   [inline]
 

get an approximation of the number of triangles this instance should render.

This method is valid only for IShape classes (in render()), after LoadBalancing traversal is performed. NB: It is not guaranted that this instance will render those number of triangles.

Definition at line 112 of file transform_shape.h.

References _NumTrianglesAfterLoadBalancing.

virtual bool NL3D::CTransformShape::isStarted   const [inline, virtual]
 

Reimplemented in NL3D::CSegRemanence.

Definition at line 133 of file transform_shape.h.

void NL3D::CTransformShape::registerBasic   [static]
 

Call at the begining of the program, to register the model, and the basic observers.

Reimplemented from NL3D::CTransform.

Reimplemented in NL3D::CFlareModel.

Definition at line 48 of file transform_shape.cpp.

References NL3D::ClipTravId, NL3D::LoadBalancingTravId, NL3D::RenderTravId, NL3D::TransformId, and NL3D::TransformShapeId.

void NL3D::CTransformShape::setDistMax float    distMax [inline]
 

Definition at line 138 of file transform_shape.h.

References _DistMax.

void NL3D::CTransformShape::setupCurrentLightContribution CLightContribution   lightContrib,
bool    useLocalAtt
[protected]
 

For deriver who wants to setup their own current lightContribution setup (as skeleton).

Must call changeLightSetup() so change are effectively made in driver

Definition at line 96 of file transform_shape.cpp.

References _CurrentLightContribution, and _CurrentUseLocalAttenuation.

virtual void NL3D::CTransformShape::start   [inline, virtual]
 

Reimplemented in NL3D::CSegRemanence.

Definition at line 129 of file transform_shape.h.

virtual void NL3D::CTransformShape::stop void    [inline, virtual]
 

Reimplemented in NL3D::CSegRemanence.

Definition at line 131 of file transform_shape.h.


Friends And Related Function Documentation

friend class CTransformShapeClipObs [friend]
 

Definition at line 152 of file transform_shape.h.

friend class CTransformShapeLoadBalancingObs [friend]
 

Definition at line 154 of file transform_shape.h.

friend class CTransformShapeRenderObs [friend]
 

Definition at line 153 of file transform_shape.h.


Member Data Documentation

CLightContribution* NL3D::CTransformShape::_CurrentLightContribution [private]
 

Definition at line 166 of file transform_shape.h.

Referenced by changeLightSetup, CTransformShape, and setupCurrentLightContribution.

bool NL3D::CTransformShape::_CurrentUseLocalAttenuation [private]
 

Definition at line 168 of file transform_shape.h.

Referenced by changeLightSetup, CTransformShape, and setupCurrentLightContribution.

float NL3D::CTransformShape::_DistMax [private]
 

Definition at line 171 of file transform_shape.h.

Referenced by CTransformShape, getDistMax, and setDistMax.

float NL3D::CTransformShape::_NumTrianglesAfterLoadBalancing [private]
 

Definition at line 156 of file transform_shape.h.

Referenced by CTransformShape, and getNumTrianglesAfterLoadBalancing.

CSmartPtr<IShape> NL3D::CTransformShape::Shape
 

The shape, the object instancied.

Definition at line 73 of file transform_shape.h.

Referenced by NL3D::CMeshMultiLodInstance::changeMRMDistanceSetup, NL3D::CMeshMRMInstance::changeMRMDistanceSetup, NL3D::CMeshMultiLodInstance::deleteCoarseInstances, getAABBox, NL3D::CParticleSystemModel::getAABBox, NL3D::CWaterModel::getAttenuatedHeight, NL3D::CSkeletonModel::getBoneIdByName, NL3D::CWaveMakerModel::getDefaultTrack, NL3D::CWaterModel::getDefaultTrack, NL3D::CParticleSystemModel::getDefaultTrack, NL3D::CMeshBaseInstance::getDefaultTrack, NL3D::CWaterModel::getHeight, NL3D::CWaterModel::getHeightFactor, NL3D::CMeshBaseInstance::getLightMapName, NL3D::CMeshMRMInstance::getMRMLevelDetail, NL3D::CMeshBaseInstance::getNbLightMap, getNumTriangles, NL3D::CMeshMultiLodInstance::getNumTriangles, NL3D::CMeshMRMInstance::getSkinBoneUsage, NL3D::CMeshInstance::getSkinBoneUsage, NL3D::CWaterModel::getWaterHeightMapID, NL3D::CMeshMRMInstance::isSkinnable, NL3D::CMeshInstance::isSkinnable, NL3D::CParticleSystemModel::reallocRsc, NL3D::CParticleSystemModel::refreshRscDeletion, NL3D::CSegRemanence::render, NL3D::CMeshMRMInstance::renderSkin, NL3D::CMeshInstance::renderSkin, NL3D::CMeshMRMInstance::renderSkinGroupGeom, NL3D::CMeshMRMInstance::renderSkinGroupPrimitives, NL3D::CSegRemanence::restart, NL3D::CSegRemanence::samplePos, NL3D::CMeshBaseInstance::selectTextureSet, NL3D::CMeshMRMInstance::setApplySkin, NL3D::CMeshInstance::setApplySkin, NL3D::CParticleSystemModel::setEditionMode, NL3D::CMeshBaseInstance::setLightMapFactor, NL3D::CSegRemanence::setupFromShape, NL3D::CMeshMRMInstance::supportSkinGrouping, NL3D::CSkeletonModel::updateBoneToCompute, and NL3D::CSegRemanence::updateOpacityFromShape.


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