LLPolyMesh Class Reference

#include <llpolymesh.h>

Collaboration diagram for LLPolyMesh:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 LLPolyMesh (LLPolyMeshSharedData *shared_data, LLPolyMesh *reference_mesh)
 ~LLPolyMesh ()
const LLVector3getPosition ()
const LLQuaterniongetRotation ()
const LLVector3getScale ()
U32 getNumVertices ()
BOOL hasDetailTexCoords ()
BOOL hasWeights () const
const LLVector3getCoords () const
LLVector3getWritableCoords ()
const LLVector3getNormals () const
const LLVector3getBinormals () const
const LLVector3getBaseNormals () const
const LLVector3getBaseBinormals () const
LLVector3getWritableNormals ()
LLVector3getScaledNormals ()
LLVector3getWritableBinormals ()
LLVector3getScaledBinormals ()
const LLVector2getTexCoords () const
LLVector2getWritableTexCoords ()
const LLVector2getDetailTexCoords () const
const F32getWeights () const
F32getWritableWeights () const
LLVector4getWritableClothingWeights ()
const LLVector4getClothingWeights ()
S32 getNumFaces ()
LLPolyFacegetFaces ()
U32 getNumJointNames ()
std::string * getJointNames ()
LLPolyMorphDatagetMorphData (const char *morph_name)
void removeMorphData (LLPolyMorphData *morph_target)
void deleteAllMorphData ()
LLPolyMeshSharedDatagetSharedData () const
LLPolyMeshgetReferenceMesh ()
U32getIndices ()
BOOL isLOD ()
void setAvatar (LLVOAvatar *avatarp)
LLVOAvatargetAvatar ()

Static Public Member Functions

static LLPolyMeshgetMesh (const LLString &name, LLPolyMesh *reference_mesh=NULL)
static void freeAllMeshes ()

Public Attributes

LLDynamicArray< LLJointRenderData * > mJointRenderData
U32 mFaceVertexOffset
U32 mFaceVertexCount
U32 mFaceIndexOffset
U32 mFaceIndexCount
U32 mCurVertexCount

Protected Types

typedef LLAssocList< std::string,
LLPolyMeshSharedData * > 
LLPolyMeshSharedDataTable

Protected Attributes

LLPolyMeshSharedDatamSharedData
F32mVertexData
LLVector3mCoords
LLVector3mScaledNormals
LLVector3mNormals
LLVector3mScaledBinormals
LLVector3mBinormals
LLVector4mClothingWeights
LLVector2mTexCoords
LLPolyMeshmReferenceMesh
LLVOAvatarmAvatarp

Static Protected Attributes

static LLPolyMeshSharedDataTable sGlobalSharedMeshList

Private Member Functions

void initializeForMorph ()

Static Private Member Functions

static void dumpDiagInfo ()

Detailed Description

Definition at line 164 of file llpolymesh.h.


Member Typedef Documentation

typedef LLAssocList<std::string, LLPolyMeshSharedData*> LLPolyMesh::LLPolyMeshSharedDataTable [protected]

Definition at line 363 of file llpolymesh.h.


Constructor & Destructor Documentation

LLPolyMesh::LLPolyMesh ( LLPolyMeshSharedData shared_data,
LLPolyMesh reference_mesh 
)

Definition at line 680 of file llpolymesh.cpp.

References initializeForMorph(), LLPolyMeshSharedData::isLOD(), llassert, mAvatarp, mBinormals, mClothingWeights, mCoords, mNormals, LLPolyMeshSharedData::mNumVertices, mReferenceMesh, mScaledBinormals, mScaledNormals, mSharedData, mTexCoords, mVertexData, and NULL.

Referenced by getMesh().

LLPolyMesh::~LLPolyMesh (  ) 

Definition at line 732 of file llpolymesh.cpp.

References LLDynamicArray< Type, BlockSize >::count(), i, mBinormals, mClothingWeights, mCoords, mJointRenderData, mNormals, mScaledBinormals, mScaledNormals, mTexCoords, mVertexData, NULL, and S32.


Member Function Documentation

void LLPolyMesh::deleteAllMorphData (  ) 

Definition at line 980 of file llpolymesh.cpp.

References LLPolyMeshSharedData::mMorphData, and mSharedData.

void LLPolyMesh::dumpDiagInfo (  )  [static, private]

Definition at line 826 of file llpolymesh.cpp.

References LLAssocList< INDEX_TYPE, VALUE_TYPE >::getIndexAt(), LLPolyMeshSharedData::getNumKB(), LLAssocList< INDEX_TYPE, VALUE_TYPE >::getValueAt(), i, LLAssocList< INDEX_TYPE, VALUE_TYPE >::length(), llendl, llinfos, LLPolyMeshSharedData::mNumFaces, LLPolyMeshSharedData::mNumVertices, S32, and sGlobalSharedMeshList.

void LLPolyMesh::freeAllMeshes (  )  [static]

Definition at line 798 of file llpolymesh.cpp.

References LLAssocList< INDEX_TYPE, VALUE_TYPE >::getValueAt(), i, LLAssocList< INDEX_TYPE, VALUE_TYPE >::length(), LLAssocList< INDEX_TYPE, VALUE_TYPE >::removeAll(), and sGlobalSharedMeshList.

Referenced by cleanup_app().

LLVOAvatar* LLPolyMesh::getAvatar (  )  [inline]

Definition at line 325 of file llpolymesh.h.

References mAvatarp.

Referenced by LLPolyMorphTarget::setInfo().

const LLVector3* LLPolyMesh::getBaseBinormals (  )  const [inline]

Definition at line 249 of file llpolymesh.h.

References llassert, LLPolyMeshSharedData::mBaseBinormals, and mSharedData.

const LLVector3* LLPolyMesh::getBaseNormals (  )  const [inline]

Definition at line 243 of file llpolymesh.h.

References llassert, LLPolyMeshSharedData::mBaseNormals, and mSharedData.

const LLVector3* LLPolyMesh::getBinormals (  )  const [inline]

Definition at line 238 of file llpolymesh.h.

References mBinormals.

Referenced by LLViewerJointMesh::updateFaceData().

const LLVector4* LLPolyMesh::getClothingWeights (  )  [inline]

Definition at line 282 of file llpolymesh.h.

References mClothingWeights.

Referenced by LLViewerJointMesh::updateFaceData().

const LLVector3 * LLPolyMesh::getCoords (  )  const

Definition at line 869 of file llpolymesh.cpp.

References mCoords.

Referenced by LLViewerJointMesh::updateFaceData(), LLViewerJointMesh::updateGeometryOriginal(), LLViewerJointMesh::updateGeometryVectorized(), and LLViewerJointMesh::writeCAL3D().

const LLVector2* LLPolyMesh::getDetailTexCoords (  )  const [inline]

Definition at line 270 of file llpolymesh.h.

References llassert, LLPolyMeshSharedData::mDetailTexCoords, and mSharedData.

LLPolyFace* LLPolyMesh::getFaces (  )  [inline]

Definition at line 297 of file llpolymesh.h.

References llassert, LLPolyMeshSharedData::mFaces, and mSharedData.

Referenced by LLViewerJointMesh::updateFaceData(), and LLViewerJointMesh::writeCAL3D().

U32* LLPolyMesh::getIndices (  )  [inline]

Definition at line 320 of file llpolymesh.h.

References mSharedData, LLPolyMeshSharedData::mTriangleIndices, and NULL.

std::string* LLPolyMesh::getJointNames (  )  [inline]

Definition at line 307 of file llpolymesh.h.

References llassert, LLPolyMeshSharedData::mJointNames, and mSharedData.

Referenced by LLViewerJointMesh::setMesh().

LLPolyMesh * LLPolyMesh::getMesh ( const LLString name,
LLPolyMesh reference_mesh = NULL 
) [static]

Definition at line 757 of file llpolymesh.cpp.

References LLAssocList< INDEX_TYPE, VALUE_TYPE >::addToTail(), gDirUtilp, LLDir::getExpandedFilename(), getSharedData(), LLAssocList< INDEX_TYPE, VALUE_TYPE >::getValue(), LL_MAX_PATH, LL_PATH_CHARACTER, LLPolyMesh(), mSharedData, NULL, and sGlobalSharedMeshList.

Referenced by LLVOAvatar::loadMeshNodes().

LLPolyMorphData * LLPolyMesh::getMorphData ( const char *  morph_name  ) 

Definition at line 952 of file llpolymesh.cpp.

References LLPolyMeshSharedData::mMorphData, mSharedData, and NULL.

Referenced by LLPolyMorphTarget::setInfo().

const LLVector3* LLPolyMesh::getNormals (  )  const [inline]

Definition at line 233 of file llpolymesh.h.

References mNormals.

Referenced by LLViewerJointMesh::updateFaceData(), LLViewerJointMesh::updateGeometryOriginal(), LLViewerJointMesh::updateGeometryVectorized(), and LLViewerJointMesh::writeCAL3D().

S32 LLPolyMesh::getNumFaces (  )  [inline]

Definition at line 291 of file llpolymesh.h.

References llassert, LLPolyMeshSharedData::mNumFaces, and mSharedData.

Referenced by LLViewerJointMesh::drawShape(), LLViewerJointMesh::updateFaceData(), and LLViewerJointMesh::writeCAL3D().

U32 LLPolyMesh::getNumJointNames (  )  [inline]

Definition at line 302 of file llpolymesh.h.

References llassert, LLPolyMeshSharedData::mNumJointNames, and mSharedData.

Referenced by LLViewerJointMesh::setMesh().

U32 LLPolyMesh::getNumVertices (  )  [inline]

Definition at line 209 of file llpolymesh.h.

References llassert, LLPolyMeshSharedData::mNumVertices, and mSharedData.

Referenced by LLViewerJointMesh::updateFaceData(), LLViewerJointMesh::updateFaceSizes(), LLViewerJointMesh::updateGeometryOriginal(), LLViewerJointMesh::updateGeometryVectorized(), and LLViewerJointMesh::writeCAL3D().

const LLVector3& LLPolyMesh::getPosition ( void   )  [inline]

Definition at line 188 of file llpolymesh.h.

References llassert, LLPolyMeshSharedData::mPosition, and mSharedData.

Referenced by LLViewerJointMesh::setMesh().

LLPolyMesh* LLPolyMesh::getReferenceMesh (  )  [inline]

Definition at line 317 of file llpolymesh.h.

References mReferenceMesh.

Referenced by LLViewerJointMesh::getBoundJointsByIndex(), LLViewerJointMesh::updateFaceSizes(), LLViewerJointMesh::updateGeometryVectorized(), and LLViewerJointMesh::uploadJointMatrices().

const LLQuaternion& LLPolyMesh::getRotation (  )  [inline]

Definition at line 194 of file llpolymesh.h.

References llassert, LLPolyMeshSharedData::mRotation, and mSharedData.

Referenced by LLViewerJointMesh::setMesh().

const LLVector3& LLPolyMesh::getScale (  )  [inline]

Definition at line 200 of file llpolymesh.h.

References llassert, LLPolyMeshSharedData::mScale, and mSharedData.

Referenced by LLViewerJointMesh::setMesh().

LLVector3 * LLPolyMesh::getScaledBinormals (  ) 

Definition at line 926 of file llpolymesh.cpp.

References mScaledBinormals.

Referenced by LLPolyMorphTarget::apply(), and LLPolyMorphTarget::applyMask().

LLVector3 * LLPolyMesh::getScaledNormals (  ) 

Definition at line 918 of file llpolymesh.cpp.

References mScaledNormals.

Referenced by LLPolyMorphTarget::apply(), and LLPolyMorphTarget::applyMask().

LLPolyMeshSharedData * LLPolyMesh::getSharedData (  )  const

Definition at line 817 of file llpolymesh.cpp.

References mSharedData.

Referenced by getMesh(), and LLViewerJointMesh::updateFaceSizes().

const LLVector2* LLPolyMesh::getTexCoords (  )  const [inline]

Definition at line 262 of file llpolymesh.h.

References mTexCoords.

Referenced by LLViewerJointMesh::updateFaceData(), and LLViewerJointMesh::writeCAL3D().

const F32 * LLPolyMesh::getWeights (  )  const

Definition at line 990 of file llpolymesh.cpp.

References mSharedData, and LLPolyMeshSharedData::mWeights.

Referenced by LLViewerJointMesh::updateFaceData(), LLViewerJointMesh::updateGeometryOriginal(), LLViewerJointMesh::updateGeometryVectorized(), and LLViewerJointMesh::writeCAL3D().

LLVector3 * LLPolyMesh::getWritableBinormals (  ) 

Definition at line 893 of file llpolymesh.cpp.

References mBinormals.

Referenced by LLPolyMorphTarget::apply().

LLVector4 * LLPolyMesh::getWritableClothingWeights (  ) 

Definition at line 902 of file llpolymesh.cpp.

References mClothingWeights.

Referenced by LLPolyMorphTarget::apply(), and LLPolyMorphTarget::applyMask().

LLVector3 * LLPolyMesh::getWritableCoords (  ) 

Definition at line 877 of file llpolymesh.cpp.

References mCoords.

Referenced by LLPolyMorphTarget::apply(), and LLPolyMorphTarget::applyMask().

LLVector3 * LLPolyMesh::getWritableNormals (  ) 

Definition at line 885 of file llpolymesh.cpp.

References mNormals.

Referenced by LLPolyMorphTarget::apply().

LLVector2 * LLPolyMesh::getWritableTexCoords (  ) 

Definition at line 910 of file llpolymesh.cpp.

References mTexCoords.

Referenced by LLPolyMorphTarget::apply(), and LLPolyMorphTarget::applyMask().

F32 * LLPolyMesh::getWritableWeights (  )  const

Definition at line 998 of file llpolymesh.cpp.

References mSharedData, and LLPolyMeshSharedData::mWeights.

BOOL LLPolyMesh::hasDetailTexCoords (  )  [inline]

Definition at line 215 of file llpolymesh.h.

References llassert, LLPolyMeshSharedData::mHasDetailTexCoords, and mSharedData.

BOOL LLPolyMesh::hasWeights (  )  const [inline]

Definition at line 221 of file llpolymesh.h.

References llassert, LLPolyMeshSharedData::mHasWeights, and mSharedData.

Referenced by LLViewerJointMesh::drawShape(), LLViewerJointMesh::setMesh(), LLViewerJointMesh::updateGeometry(), and LLViewerJointMesh::writeCAL3D().

void LLPolyMesh::initializeForMorph (  )  [private]

Definition at line 935 of file llpolymesh.cpp.

References LLPolyMeshSharedData::mBaseBinormals, LLPolyMeshSharedData::mBaseCoords, LLPolyMeshSharedData::mBaseNormals, mBinormals, mClothingWeights, mCoords, mNormals, LLPolyMeshSharedData::mNumVertices, mScaledBinormals, mScaledNormals, mSharedData, LLPolyMeshSharedData::mTexCoords, and mTexCoords.

Referenced by LLPolyMesh().

BOOL LLPolyMesh::isLOD (  )  [inline]

Definition at line 322 of file llpolymesh.h.

References LLPolyMeshSharedData::isLOD(), and mSharedData.

Referenced by LLPolyMorphTarget::apply(), and LLViewerJointMesh::setMesh().

void LLPolyMesh::removeMorphData ( LLPolyMorphData morph_target  ) 

Definition at line 970 of file llpolymesh.cpp.

References LLPolyMeshSharedData::mMorphData, and mSharedData.

void LLPolyMesh::setAvatar ( LLVOAvatar avatarp  )  [inline]

Definition at line 324 of file llpolymesh.h.

References mAvatarp.

Referenced by LLVOAvatar::loadMeshNodes().


Member Data Documentation

LLVOAvatar* LLPolyMesh::mAvatarp [protected]

Definition at line 367 of file llpolymesh.h.

Referenced by getAvatar(), LLPolyMesh(), and setAvatar().

LLVector3* LLPolyMesh::mBinormals [protected]

Definition at line 354 of file llpolymesh.h.

Referenced by getBinormals(), getWritableBinormals(), initializeForMorph(), LLPolyMesh(), and ~LLPolyMesh().

LLVector4* LLPolyMesh::mClothingWeights [protected]

Definition at line 356 of file llpolymesh.h.

Referenced by getClothingWeights(), getWritableClothingWeights(), initializeForMorph(), LLPolyMesh(), and ~LLPolyMesh().

LLVector3* LLPolyMesh::mCoords [protected]

Definition at line 346 of file llpolymesh.h.

Referenced by getCoords(), getWritableCoords(), initializeForMorph(), LLPolyMesh(), and ~LLPolyMesh().

U32 LLPolyMesh::mCurVertexCount

Definition at line 333 of file llpolymesh.h.

Referenced by LLViewerJointMesh::updateFaceSizes().

U32 LLPolyMesh::mFaceIndexCount

Definition at line 332 of file llpolymesh.h.

Referenced by LLViewerJointMesh::drawShape(), and LLViewerJointMesh::updateFaceSizes().

U32 LLPolyMesh::mFaceIndexOffset

Definition at line 331 of file llpolymesh.h.

Referenced by LLViewerJointMesh::drawShape(), LLViewerJointMesh::updateFaceData(), and LLViewerJointMesh::updateFaceSizes().

U32 LLPolyMesh::mFaceVertexCount

Definition at line 330 of file llpolymesh.h.

Referenced by LLViewerJointMesh::drawShape(), and LLViewerJointMesh::updateFaceSizes().

U32 LLPolyMesh::mFaceVertexOffset

Definition at line 329 of file llpolymesh.h.

Referenced by LLViewerJointMesh::drawShape(), LLViewerJointMesh::updateFaceData(), LLViewerJointMesh::updateFaceSizes(), LLViewerJointMesh::updateGeometryOriginal(), and LLViewerJointMesh::updateGeometryVectorized().

LLDynamicArray<LLJointRenderData*> LLPolyMesh::mJointRenderData

Definition at line 327 of file llpolymesh.h.

Referenced by LLViewerJointMesh::getBoundJointsByIndex(), LLViewerJointMesh::setupJoint(), LLViewerJointMesh::updateGeometryVectorized(), LLViewerJointMesh::uploadJointMatrices(), and ~LLPolyMesh().

LLVector3* LLPolyMesh::mNormals [protected]

Definition at line 350 of file llpolymesh.h.

Referenced by getNormals(), getWritableNormals(), initializeForMorph(), LLPolyMesh(), and ~LLPolyMesh().

LLPolyMesh* LLPolyMesh::mReferenceMesh [protected]

Definition at line 360 of file llpolymesh.h.

Referenced by getReferenceMesh(), and LLPolyMesh().

LLVector3* LLPolyMesh::mScaledBinormals [protected]

Definition at line 352 of file llpolymesh.h.

Referenced by getScaledBinormals(), initializeForMorph(), LLPolyMesh(), and ~LLPolyMesh().

LLVector3* LLPolyMesh::mScaledNormals [protected]

Definition at line 348 of file llpolymesh.h.

Referenced by getScaledNormals(), initializeForMorph(), LLPolyMesh(), and ~LLPolyMesh().

LLPolyMeshSharedData* LLPolyMesh::mSharedData [protected]

Definition at line 342 of file llpolymesh.h.

Referenced by deleteAllMorphData(), getBaseBinormals(), getBaseNormals(), getDetailTexCoords(), getFaces(), getIndices(), getJointNames(), getMesh(), getMorphData(), getNumFaces(), getNumJointNames(), getNumVertices(), getPosition(), getRotation(), getScale(), getSharedData(), getWeights(), getWritableWeights(), hasDetailTexCoords(), hasWeights(), initializeForMorph(), isLOD(), LLPolyMesh(), and removeMorphData().

LLVector2* LLPolyMesh::mTexCoords [protected]

Definition at line 358 of file llpolymesh.h.

Referenced by getTexCoords(), getWritableTexCoords(), initializeForMorph(), LLPolyMesh(), and ~LLPolyMesh().

F32* LLPolyMesh::mVertexData [protected]

Definition at line 344 of file llpolymesh.h.

Referenced by LLPolyMesh(), and ~LLPolyMesh().

LLPolyMesh::LLPolyMeshSharedDataTable LLPolyMesh::sGlobalSharedMeshList [static, protected]

Definition at line 364 of file llpolymesh.h.

Referenced by dumpDiagInfo(), freeAllMeshes(), and getMesh().


The documentation for this class was generated from the following files:
Generated on Thu Jul 1 06:11:39 2010 for Second Life Viewer by  doxygen 1.4.7