LLPolyMeshSharedData Class Reference

#include <llpolymesh.h>

Collaboration diagram for LLPolyMeshSharedData:

Collaboration graph
[legend]
List of all members.

Public Member Functions

void genIndices (S32 offset)
const LLVector2 & getUVs (U32 index)
const S32 * getSharedVert (S32 vert)
BOOL isLOD ()

Public Attributes

U32 mNumTriangleIndices
U32 * mTriangleIndices

Private Types

typedef LLLinkedList< LLPolyMorphData > LLPolyMorphDataList

Private Member Functions

 LLPolyMeshSharedData ()
 ~LLPolyMeshSharedData ()
void setupLOD (LLPolyMeshSharedData *reference_data)
void freeMeshData ()
void setPosition (const LLVector3 &pos)
void setRotation (const LLQuaternion &rot)
void setScale (const LLVector3 &scale)
BOOL allocateVertexData (U32 numVertices)
BOOL allocateFaceData (U32 numFaces)
BOOL allocateJointNames (U32 numJointNames)
U32 getNumKB ()
BOOL loadMesh (const char *fileName)

Private Attributes

LLVector3 mPosition
LLQuaternion mRotation
LLVector3 mScale
S32 mNumVertices
LLVector3 * mBaseCoords
LLVector3 * mBaseNormals
LLVector3 * mBaseBinormals
LLVector2 * mTexCoords
LLVector2 * mDetailTexCoords
F32 * mWeights
BOOL mHasWeights
BOOL mHasDetailTexCoords
S32 mNumFaces
LLPolyFace * mFaces
U32 mNumJointNames
std::string * mJointNames
LLPolyMorphDataList mMorphData
std::map< S32, S32 > mSharedVerts
LLPolyMeshSharedData * mReferenceData
S32 mLastIndexOffset

Friends

class LLPolyMesh

Detailed Description

Definition at line 72 of file llpolymesh.h.


Member Typedef Documentation

typedef LLLinkedList<LLPolyMorphData> LLPolyMeshSharedData::LLPolyMorphDataList [private]

Definition at line 102 of file llpolymesh.h.


Constructor & Destructor Documentation

LLPolyMeshSharedData::LLPolyMeshSharedData (  )  [private]

Definition at line 61 of file llpolymesh.cpp.

References FALSE, mBaseBinormals, mBaseCoords, mBaseNormals, mDetailTexCoords, mFaces, mHasDetailTexCoords, mHasWeights, mJointNames, mLastIndexOffset, mNumFaces, mNumJointNames, mNumTriangleIndices, mNumVertices, mReferenceData, mTexCoords, mTriangleIndices, mWeights, and NULL.

LLPolyMeshSharedData::~LLPolyMeshSharedData (  )  [private]

Definition at line 90 of file llpolymesh.cpp.

References LLLinkedList< DATA_TYPE >::deleteAllData(), freeMeshData(), and mMorphData.


Member Function Documentation

BOOL LLPolyMeshSharedData::allocateFaceData ( U32  numFaces  )  [private]

Definition at line 242 of file llpolymesh.cpp.

References mFaces, mNumFaces, mNumTriangleIndices, and TRUE.

Referenced by loadMesh().

BOOL LLPolyMeshSharedData::allocateJointNames ( U32  numJointNames  )  [private]

Definition at line 253 of file llpolymesh.cpp.

References mJointNames, mNumJointNames, and TRUE.

Referenced by loadMesh().

BOOL LLPolyMeshSharedData::allocateVertexData ( U32  numVertices  )  [private]

Definition at line 222 of file llpolymesh.cpp.

References f, i, mBaseBinormals, mBaseCoords, mBaseNormals, mDetailTexCoords, mNumVertices, mTexCoords, mWeights, and TRUE.

Referenced by loadMesh().

void LLPolyMeshSharedData::freeMeshData (  )  [private]

Definition at line 119 of file llpolymesh.cpp.

References mBaseBinormals, mBaseCoords, mBaseNormals, mDetailTexCoords, mFaces, mJointNames, mNumFaces, mNumJointNames, mNumVertices, mReferenceData, mTexCoords, mTriangleIndices, mWeights, and NULL.

Referenced by loadMesh(), and ~LLPolyMeshSharedData().

void LLPolyMeshSharedData::genIndices ( S32  offset  ) 

Definition at line 164 of file llpolymesh.cpp.

References i, mFaces, mLastIndexOffset, mNumFaces, mNumTriangleIndices, mTriangleIndices, and S32.

U32 LLPolyMeshSharedData::getNumKB (  )  [private]

Definition at line 191 of file llpolymesh.cpp.

References isLOD(), mHasDetailTexCoords, mHasWeights, mNumFaces, and mNumVertices.

Referenced by LLPolyMesh::dumpDiagInfo().

const S32 * LLPolyMeshSharedData::getSharedVert ( S32  vert  ) 

Definition at line 657 of file llpolymesh.cpp.

References mSharedVerts, and NULL.

Referenced by LLPolyVertexMask::generateMask().

const LLVector2 & LLPolyMeshSharedData::getUVs ( U32  index  ) 

Definition at line 669 of file llpolymesh.cpp.

References llassert, mNumVertices, mTexCoords, and S32.

Referenced by LLPolyVertexMask::generateMask().

BOOL LLPolyMeshSharedData::isLOD (  )  [inline]

Definition at line 149 of file llpolymesh.h.

References mReferenceData, and NULL.

Referenced by getNumKB(), LLPolyMesh::isLOD(), LLPolyMesh::LLPolyMesh(), and loadMesh().

BOOL LLPolyMeshSharedData::loadMesh ( const char *  fileName  )  [private]

Definition at line 263 of file llpolymesh.cpp.

References LLLinkedList< DATA_TYPE >::addData(), allocateFaceData(), allocateJointNames(), allocateVertexData(), face, FALSE, LLFile::fopen(), freeMeshData(), HEADER_BINARY, i, isLOD(), j, llassert, lldebugs, llendl, llerrs, llwarns, LLPolyMorphData::loadBinary(), mayaQ(), mBaseBinormals, mBaseCoords, mBaseNormals, mDetailTexCoords, mFaces, mHasDetailTexCoords, mHasWeights, mJointNames, mMorphData, mNumJointNames, mNumVertices, mReferenceData, mSharedVerts, mTexCoords, LLVector3::mV, mWeights, S32, setPosition(), setRotation(), setScale(), and TRUE.

void LLPolyMeshSharedData::setPosition ( const LLVector3 &  pos  )  [inline, private]

Definition at line 126 of file llpolymesh.h.

References mPosition.

Referenced by loadMesh().

void LLPolyMeshSharedData::setRotation ( const LLQuaternion &  rot  )  [inline, private]

Definition at line 127 of file llpolymesh.h.

References mRotation.

Referenced by loadMesh().

void LLPolyMeshSharedData::setScale ( const LLVector3 &  scale  )  [inline, private]

Definition at line 128 of file llpolymesh.h.

References mScale.

Referenced by loadMesh().

void LLPolyMeshSharedData::setupLOD ( LLPolyMeshSharedData *  reference_data  )  [private]

Definition at line 99 of file llpolymesh.cpp.

References mBaseBinormals, mBaseCoords, mBaseNormals, mDetailTexCoords, mHasDetailTexCoords, mHasWeights, mReferenceData, mTexCoords, and mWeights.


Friends And Related Function Documentation

friend class LLPolyMesh [friend]

Definition at line 74 of file llpolymesh.h.


Member Data Documentation

LLVector3* LLPolyMeshSharedData::mBaseBinormals [private]

Definition at line 85 of file llpolymesh.h.

Referenced by allocateVertexData(), freeMeshData(), LLPolyMesh::getBaseBinormals(), LLPolyMesh::initializeForMorph(), LLPolyMeshSharedData(), loadMesh(), and setupLOD().

LLVector3* LLPolyMeshSharedData::mBaseCoords [private]

Definition at line 83 of file llpolymesh.h.

Referenced by allocateVertexData(), freeMeshData(), LLPolyMesh::initializeForMorph(), LLPolyMeshSharedData(), loadMesh(), and setupLOD().

LLVector3* LLPolyMeshSharedData::mBaseNormals [private]

Definition at line 84 of file llpolymesh.h.

Referenced by allocateVertexData(), freeMeshData(), LLPolyMesh::getBaseNormals(), LLPolyMesh::initializeForMorph(), LLPolyMeshSharedData(), loadMesh(), and setupLOD().

LLVector2* LLPolyMeshSharedData::mDetailTexCoords [private]

Definition at line 87 of file llpolymesh.h.

Referenced by allocateVertexData(), freeMeshData(), LLPolyMesh::getDetailTexCoords(), LLPolyMeshSharedData(), loadMesh(), and setupLOD().

LLPolyFace* LLPolyMeshSharedData::mFaces [private]

Definition at line 95 of file llpolymesh.h.

Referenced by allocateFaceData(), freeMeshData(), genIndices(), LLPolyMesh::getFaces(), LLPolyMeshSharedData(), and loadMesh().

BOOL LLPolyMeshSharedData::mHasDetailTexCoords [private]

Definition at line 91 of file llpolymesh.h.

Referenced by getNumKB(), LLPolyMesh::hasDetailTexCoords(), LLPolyMeshSharedData(), loadMesh(), and setupLOD().

BOOL LLPolyMeshSharedData::mHasWeights [private]

Definition at line 90 of file llpolymesh.h.

Referenced by getNumKB(), LLPolyMesh::hasWeights(), LLPolyMeshSharedData(), loadMesh(), and setupLOD().

std::string* LLPolyMeshSharedData::mJointNames [private]

Definition at line 99 of file llpolymesh.h.

Referenced by allocateJointNames(), freeMeshData(), LLPolyMesh::getJointNames(), LLPolyMeshSharedData(), and loadMesh().

S32 LLPolyMeshSharedData::mLastIndexOffset [private]

Definition at line 108 of file llpolymesh.h.

Referenced by genIndices(), and LLPolyMeshSharedData().

LLPolyMorphDataList LLPolyMeshSharedData::mMorphData [private]

Definition at line 103 of file llpolymesh.h.

Referenced by LLPolyMesh::deleteAllMorphData(), LLPolyMesh::getMorphData(), loadMesh(), LLPolyMesh::removeMorphData(), and ~LLPolyMeshSharedData().

S32 LLPolyMeshSharedData::mNumFaces [private]

Definition at line 94 of file llpolymesh.h.

Referenced by allocateFaceData(), LLPolyMesh::dumpDiagInfo(), freeMeshData(), genIndices(), LLPolyMesh::getNumFaces(), getNumKB(), and LLPolyMeshSharedData().

U32 LLPolyMeshSharedData::mNumJointNames [private]

Definition at line 98 of file llpolymesh.h.

Referenced by allocateJointNames(), freeMeshData(), LLPolyMesh::getNumJointNames(), LLPolyMeshSharedData(), and loadMesh().

U32 LLPolyMeshSharedData::mNumTriangleIndices

Definition at line 113 of file llpolymesh.h.

Referenced by allocateFaceData(), genIndices(), LLPolyMeshSharedData(), and LLViewerJointMesh::updateFaceSizes().

S32 LLPolyMeshSharedData::mNumVertices [private]

Definition at line 82 of file llpolymesh.h.

Referenced by allocateVertexData(), LLPolyMesh::dumpDiagInfo(), freeMeshData(), getNumKB(), LLPolyMesh::getNumVertices(), getUVs(), LLPolyMesh::initializeForMorph(), LLPolyMesh::LLPolyMesh(), LLPolyMeshSharedData(), and loadMesh().

LLVector3 LLPolyMeshSharedData::mPosition [private]

Definition at line 77 of file llpolymesh.h.

Referenced by LLPolyMesh::getPosition(), and setPosition().

LLPolyMeshSharedData* LLPolyMeshSharedData::mReferenceData [private]

Definition at line 107 of file llpolymesh.h.

Referenced by freeMeshData(), isLOD(), LLPolyMeshSharedData(), loadMesh(), and setupLOD().

LLQuaternion LLPolyMeshSharedData::mRotation [private]

Definition at line 78 of file llpolymesh.h.

Referenced by LLPolyMesh::getRotation(), and setRotation().

LLVector3 LLPolyMeshSharedData::mScale [private]

Definition at line 79 of file llpolymesh.h.

Referenced by LLPolyMesh::getScale(), and setScale().

std::map<S32, S32> LLPolyMeshSharedData::mSharedVerts [private]

Definition at line 105 of file llpolymesh.h.

Referenced by getSharedVert(), and loadMesh().

LLVector2* LLPolyMeshSharedData::mTexCoords [private]

Definition at line 86 of file llpolymesh.h.

Referenced by allocateVertexData(), freeMeshData(), getUVs(), LLPolyMesh::initializeForMorph(), LLPolyMeshSharedData(), loadMesh(), and setupLOD().

U32* LLPolyMeshSharedData::mTriangleIndices

Definition at line 114 of file llpolymesh.h.

Referenced by freeMeshData(), genIndices(), LLPolyMesh::getIndices(), and LLPolyMeshSharedData().

F32* LLPolyMeshSharedData::mWeights [private]

Definition at line 88 of file llpolymesh.h.

Referenced by allocateVertexData(), freeMeshData(), LLPolyMesh::getWeights(), LLPolyMesh::getWritableWeights(), LLPolyMeshSharedData(), loadMesh(), and setupLOD().


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