summaryrefslogtreecommitdiff
path: root/indra/newview/llvovolume.h
diff options
context:
space:
mode:
authorRider Linden <rider@lindenlab.com>2018-11-14 11:19:33 -0800
committerRider Linden <rider@lindenlab.com>2018-11-14 11:19:33 -0800
commit1d022e86c84039f88c531e91ce857666acd224a1 (patch)
tree9a8ba45529cb125a2ae5cd4672b3fd093af9b45c /indra/newview/llvovolume.h
parent18eb4b497fd890118e7da78dcc2eda4bd84c4ede (diff)
parent34770cbf2ef34b7901552057a0823e502d42be1d (diff)
Merge
Diffstat (limited to 'indra/newview/llvovolume.h')
-rw-r--r--indra/newview/llvovolume.h37
1 files changed, 32 insertions, 5 deletions
diff --git a/indra/newview/llvovolume.h b/indra/newview/llvovolume.h
index a0342d31a2..0882fc095d 100644
--- a/indra/newview/llvovolume.h
+++ b/indra/newview/llvovolume.h
@@ -64,6 +64,8 @@ public:
}
void update(const LLMeshSkinInfo* skin, LLVOAvatar* avatar, const LLVolume* src_volume);
+
+ std::string mExtraDebugText;
};
// Base class for implementations of the volume - Primitive, Flexible Object, etc.
@@ -136,8 +138,10 @@ public:
/*virtual*/ const LLMatrix4 getRenderMatrix() const;
typedef std::map<LLUUID, S32> texture_cost_t;
U32 getRenderCost(texture_cost_t &textures) const;
- F32 getStreamingCost(S32* bytes, S32* visible_bytes, F32* unscaled_value) const;
- /*virtual*/ F32 getStreamingCost(S32* bytes = NULL, S32* visible_bytes = NULL) { return getStreamingCost(bytes, visible_bytes, NULL); }
+ /*virtual*/ F32 getEstTrianglesMax() const;
+ /*virtual*/ F32 getEstTrianglesStreamingCost() const;
+ /* virtual*/ F32 getStreamingCost() const;
+ /*virtual*/ bool getCostData(LLMeshCostData& costs) const;
/*virtual*/ U32 getTriangleCount(S32* vcount = NULL) const;
/*virtual*/ U32 getHighLODTriangleCount();
@@ -163,7 +167,7 @@ public:
/*virtual*/ F32 getRadius() const { return mVObjRadius; };
const LLMatrix4& getWorldMatrix(LLXformMatrix* xform) const;
- void markForUpdate(BOOL priority) { LLViewerObject::markForUpdate(priority); mVolumeChanged = TRUE; }
+ void markForUpdate(BOOL priority);
void markForUnload() { LLViewerObject::markForUnload(TRUE); mVolumeChanged = TRUE; }
void faceMappingChanged() { mFaceMappingChanged=TRUE; };
@@ -264,12 +268,29 @@ public:
virtual BOOL isFlexible() const;
virtual BOOL isSculpted() const;
virtual BOOL isMesh() const;
+ virtual BOOL isRiggedMesh() const;
virtual BOOL hasLightTexture() const;
+
BOOL isVolumeGlobal() const;
BOOL canBeFlexible() const;
BOOL setIsFlexible(BOOL is_flexible);
+ const LLMeshSkinInfo* getSkinInfo() const;
+
+ // Extended Mesh Properties
+ U32 getExtendedMeshFlags() const;
+ void onSetExtendedMeshFlags(U32 flags);
+ void setExtendedMeshFlags(U32 flags);
+ bool canBeAnimatedObject() const;
+ bool isAnimatedObject() const;
+ virtual void onReparent(LLViewerObject *old_parent, LLViewerObject *new_parent);
+ virtual void afterReparent();
+
+ //virtual
+ void updateRiggingInfo();
+ S32 mLastRiggingInfoLOD;
+
// Functions that deal with media, or media navigation
// Update this object's media data with the given media data array
@@ -303,7 +324,10 @@ public:
bool hasMedia() const;
LLVector3 getApproximateFaceNormal(U8 face_id);
-
+
+ // Flag any corresponding avatars as needing update.
+ void updateVisualComplexity();
+
void notifyMeshLoaded();
// Returns 'true' iff the media data for this object is in flight
@@ -332,7 +356,7 @@ public:
void clearRiggedVolume();
protected:
- S32 computeLODDetail(F32 distance, F32 radius, F32 lod_factor);
+ S32 computeLODDetail(F32 distance, F32 radius, F32 lod_factor);
BOOL calcLOD();
LLFace* addFace(S32 face_index);
void updateTEData();
@@ -356,6 +380,9 @@ public:
LLViewerTextureAnim *mTextureAnimp;
U8 mTexAnimMode;
+ F32 mLODDistance;
+ F32 mLODAdjustedDistance;
+ F32 mLODRadius;
private:
friend class LLDrawable;
friend class LLFace;