summaryrefslogtreecommitdiff
path: root/indra/newview/llviewerjointmesh.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llviewerjointmesh.h')
-rw-r--r--indra/newview/llviewerjointmesh.h99
1 files changed, 8 insertions, 91 deletions
diff --git a/indra/newview/llviewerjointmesh.h b/indra/newview/llviewerjointmesh.h
index dd5dae1dc1..0db2836e15 100644
--- a/indra/newview/llviewerjointmesh.h
+++ b/indra/newview/llviewerjointmesh.h
@@ -1,6 +1,6 @@
/**
* @file llviewerjointmesh.h
- * @brief Implementation of LLViewerJointMesh class
+ * @brief Declaration of LLViewerJointMesh class
*
* $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
@@ -29,64 +29,20 @@
#include "llviewerjoint.h"
#include "llviewertexture.h"
+#include "llavatarjointmesh.h"
#include "llpolymesh.h"
#include "v4color.h"
class LLDrawable;
class LLFace;
class LLCharacter;
-class LLTexLayerSet;
-
-typedef enum e_avatar_render_pass
-{
- AVATAR_RENDER_PASS_SINGLE,
- AVATAR_RENDER_PASS_CLOTHING_INNER,
- AVATAR_RENDER_PASS_CLOTHING_OUTER
-} EAvatarRenderPass;
-
-class LLSkinJoint
-{
-public:
- LLSkinJoint();
- ~LLSkinJoint();
- BOOL setupSkinJoint( LLViewerJoint *joint);
-
- LLViewerJoint *mJoint;
- LLVector3 mRootToJointSkinOffset;
- LLVector3 mRootToParentJointSkinOffset;
-};
+class LLViewerTexLayerSet;
//-----------------------------------------------------------------------------
// class LLViewerJointMesh
//-----------------------------------------------------------------------------
-class LLViewerJointMesh : public LLViewerJoint
+class LLViewerJointMesh : public LLAvatarJointMesh, public LLViewerJoint
{
- friend class LLVOAvatar;
-protected:
- LLColor4 mColor; // color value
-// LLColor4 mSpecular; // specular color (always white for now)
- F32 mShiny; // shiny value
- LLPointer<LLViewerTexture> mTexture; // ptr to a global texture
- LLTexLayerSet* mLayerSet; // ptr to a layer set owned by the avatar
- U32 mTestImageName; // handle to a temporary texture for previewing uploads
- LLPolyMesh* mMesh; // ptr to a global polymesh
- BOOL mCullBackFaces; // true by default
- LLFace* mFace; // ptr to a face w/ AGP copy of mesh
-
- U32 mFaceIndexCount;
- BOOL mIsTransparent;
-
- U32 mNumSkinJoints;
- LLSkinJoint* mSkinJoints;
- S32 mMeshID;
-
-public:
- static BOOL sPipelineRender;
- //RN: this is here for testing purposes
- static U32 sClothingMaskImageName;
- static EAvatarRenderPass sRenderPass;
- static LLColor4 sClothingInnerColor;
-
public:
// Constructor
LLViewerJointMesh();
@@ -94,67 +50,28 @@ public:
// Destructor
virtual ~LLViewerJointMesh();
- // Gets the shape color
- void getColor( F32 *red, F32 *green, F32 *blue, F32 *alpha );
-
- // Sets the shape color
- void setColor( F32 red, F32 green, F32 blue, F32 alpha );
-
- // Sets the shininess
- void setSpecular( const LLColor4& color, F32 shiny ) { /*mSpecular = color;*/ mShiny = shiny; };
-
- // Sets the shape texture
- void setTexture( LLViewerTexture *texture );
-
- void setTestTexture( U32 name ) { mTestImageName = name; }
-
- // Sets layer set responsible for a dynamic shape texture (takes precedence over normal texture)
- void setLayerSet( LLTexLayerSet* layer_set );
-
- // Gets the poly mesh
- LLPolyMesh *getMesh();
-
- // Sets the poly mesh
- void setMesh( LLPolyMesh *mesh );
-
- // Sets up joint matrix data for rendering
- void setupJoint(LLViewerJoint* current_joint);
-
// Render time method to upload batches of joint matrices
void uploadJointMatrices();
- // Sets ID for picking
- void setMeshID( S32 id ) {mMeshID = id;}
-
- // Gets ID for picking
- S32 getMeshID() { return mMeshID; }
-
// overloaded from base class
- /*virtual*/ void drawBone();
- /*virtual*/ BOOL isTransparent();
/*virtual*/ U32 drawShape( F32 pixelArea, BOOL first_pass, BOOL is_dummy );
+ // necessary because MS's compiler warns on function inheritance via dominance in the diamond inheritance here.
+ // warns even though LLViewerJoint holds the only non virtual implementation.
+ /*virtual*/ U32 render( F32 pixelArea, BOOL first_pass = TRUE, BOOL is_dummy = FALSE ) { return LLViewerJoint::render(pixelArea,first_pass,is_dummy);}
+
/*virtual*/ void updateFaceSizes(U32 &num_vertices, U32& num_indices, F32 pixel_area);
/*virtual*/ void updateFaceData(LLFace *face, F32 pixel_area, BOOL damp_wind = FALSE, bool terse_update = false);
/*virtual*/ BOOL updateLOD(F32 pixel_area, BOOL activate);
/*virtual*/ void updateJointGeometry();
/*virtual*/ void dump();
- void setIsTransparent(BOOL is_transparent) { mIsTransparent = is_transparent; }
-
/*virtual*/ BOOL isAnimatable() const { return FALSE; }
private:
//copy mesh into given face's vertex buffer, applying current animation pose
static void updateGeometry(LLFace* face, LLPolyMesh* mesh);
-
-private:
- // Allocate skin data
- BOOL allocateSkinData( U32 numSkinJoints );
-
- // Free skin data
- void freeSkinData();
};
#endif // LL_LLVIEWERJOINTMESH_H