llvopartgroup.h

Go to the documentation of this file.
00001 
00032 #ifndef LL_LLVOPARTGROUP_H
00033 #define LL_LLVOPARTGROUP_H
00034 
00035 #include "llviewerobject.h"
00036 #include "v3math.h"
00037 #include "v3color.h"
00038 #include "llframetimer.h"
00039 
00040 class LLViewerPartGroup;
00041 
00042 class LLVOPartGroup : public LLAlphaObject
00043 {
00044 public:
00045         enum
00046         {
00047                 VERTEX_DATA_MASK =      (1 << LLVertexBuffer::TYPE_VERTEX) |
00048                                                         (1 << LLVertexBuffer::TYPE_NORMAL) |
00049                                                         (1 << LLVertexBuffer::TYPE_TEXCOORD) |
00050                                                         (1 << LLVertexBuffer::TYPE_COLOR)
00051         };
00052 
00053         LLVOPartGroup(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp);
00054 
00055         /*virtual*/ BOOL    isActive() const; // Whether this object needs to do an idleUpdate.
00056         BOOL idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time);
00057         BOOL isParticle();
00058 
00059         virtual F32 getBinRadius();
00060         virtual void updateSpatialExtents(LLVector3& newMin, LLVector3& newMax);
00061         virtual U32 getPartitionType() const;
00062         
00063         /*virtual*/ void setPixelAreaAndAngle(LLAgent &agent);
00064         /*virtual*/ void updateTextures(LLAgent &agent);
00065 
00066         /*virtual*/ LLDrawable* createDrawable(LLPipeline *pipeline);
00067         /*virtual*/ BOOL        updateGeometry(LLDrawable *drawable);
00068                                 void            getGeometry(S32 idx,
00069                                                                 LLStrider<LLVector3>& verticesp,
00070                                                                 LLStrider<LLVector3>& normalsp, 
00071                                                                 LLStrider<LLVector2>& texcoordsp,
00072                                                                 LLStrider<LLColor4U>& colorsp, 
00073                                                                 LLStrider<U32>& indicesp);
00074 
00075         void updateFaceSize(S32 idx) { }
00076         F32 getPartSize(S32 idx);
00077         void setViewerPartGroup(LLViewerPartGroup *part_groupp)         { mViewerPartGroupp = part_groupp; }
00078         LLViewerPartGroup* getViewerPartGroup() { return mViewerPartGroupp; }
00079 
00080 protected:
00081         ~LLVOPartGroup();
00082 
00083         LLViewerPartGroup *mViewerPartGroupp;
00084         LLVector3 mExtents[2];
00085         LLColor4 mDebugColor;
00086 };
00087 
00088 #endif // LL_LLVOPARTGROUP_H

Generated on Thu Jul 1 06:09:42 2010 for Second Life Viewer by  doxygen 1.4.7