summaryrefslogtreecommitdiff
path: root/indra/newview/llviewerpartsim.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llviewerpartsim.h')
-rw-r--r--indra/newview/llviewerpartsim.h222
1 files changed, 111 insertions, 111 deletions
diff --git a/indra/newview/llviewerpartsim.h b/indra/newview/llviewerpartsim.h
index ab1cd715ab..4de962ac4f 100644
--- a/indra/newview/llviewerpartsim.h
+++ b/indra/newview/llviewerpartsim.h
@@ -1,25 +1,25 @@
-/**
+/**
* @file llviewerpartsim.h
* @brief LLViewerPart class header file
*
* $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, Linden Research, Inc.
- *
+ *
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
- *
+ *
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
+ *
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -50,37 +50,37 @@ typedef void (*LLVPCallback)(LLViewerPart &part, const F32 dt);
class LLViewerPart : public LLPartData
{
public:
- ~LLViewerPart();
+ ~LLViewerPart();
public:
- LLViewerPart();
+ LLViewerPart();
- void init(LLPointer<LLViewerPartSource> sourcep, LLViewerTexture *imagep, LLVPCallback cb);
+ void init(LLPointer<LLViewerPartSource> sourcep, LLViewerTexture *imagep, LLVPCallback cb);
- U32 mPartID; // Particle ID used primarily for moving between groups
- F32 mLastUpdateTime; // Last time the particle was updated
- F32 mSkipOffset; // Offset against current group mSkippedTime
+ U32 mPartID; // Particle ID used primarily for moving between groups
+ F32 mLastUpdateTime; // Last time the particle was updated
+ F32 mSkipOffset; // Offset against current group mSkippedTime
- LLVPCallback mVPCallback; // Callback function for more complicated behaviors
- LLPointer<LLViewerPartSource> mPartSourcep; // Particle source used for this object
+ LLVPCallback mVPCallback; // Callback function for more complicated behaviors
+ LLPointer<LLViewerPartSource> mPartSourcep; // Particle source used for this object
- LLViewerPart* mParent; // particle to connect to if this is part of a particle ribbon
- LLViewerPart* mChild; // child particle for clean reference destruction
+ LLViewerPart* mParent; // particle to connect to if this is part of a particle ribbon
+ LLViewerPart* mChild; // child particle for clean reference destruction
- // Current particle state (possibly used for rendering)
- LLPointer<LLViewerTexture> mImagep;
- LLVector3 mPosAgent;
- LLVector3 mVelocity;
- LLVector3 mAccel;
- LLVector3 mAxis;
- LLColor4 mColor;
- LLVector2 mScale;
- F32 mStartGlow;
- F32 mEndGlow;
- LLColor4U mGlow;
+ // Current particle state (possibly used for rendering)
+ LLPointer<LLViewerTexture> mImagep;
+ LLVector3 mPosAgent;
+ LLVector3 mVelocity;
+ LLVector3 mAccel;
+ LLVector3 mAxis;
+ LLColor4 mColor;
+ LLVector2 mScale;
+ F32 mStartGlow;
+ F32 mEndGlow;
+ LLColor4U mGlow;
- static U32 sNextPartID;
+ static U32 sNextPartID;
};
@@ -88,128 +88,128 @@ public:
class LLViewerPartGroup
{
public:
- LLViewerPartGroup(const LLVector3 &center,
- const F32 box_radius,
- bool hud);
- virtual ~LLViewerPartGroup();
+ LLViewerPartGroup(const LLVector3 &center,
+ const F32 box_radius,
+ bool hud);
+ virtual ~LLViewerPartGroup();
- void cleanup();
+ void cleanup();
- BOOL addPart(LLViewerPart* part, const F32 desired_size = -1.f);
-
- void updateParticles(const F32 lastdt);
+ BOOL addPart(LLViewerPart* part, const F32 desired_size = -1.f);
- BOOL posInGroup(const LLVector3 &pos, const F32 desired_size = -1.f);
+ void updateParticles(const F32 lastdt);
- void shift(const LLVector3 &offset);
+ BOOL posInGroup(const LLVector3 &pos, const F32 desired_size = -1.f);
- F32 getBoxRadius() { return mBoxRadius; }
- F32 getBoxSide() { return mBoxSide; }
+ void shift(const LLVector3 &offset);
- typedef std::vector<LLViewerPart*> part_list_t;
- part_list_t mParticles;
+ F32 getBoxRadius() { return mBoxRadius; }
+ F32 getBoxSide() { return mBoxSide; }
- const LLVector3 &getCenterAgent() const { return mCenterAgent; }
- S32 getCount() const { return (S32) mParticles.size(); }
- LLViewerRegion *getRegion() const { return mRegionp; }
+ typedef std::vector<LLViewerPart*> part_list_t;
+ part_list_t mParticles;
- void removeParticlesByID(const U32 source_id);
-
- LLPointer<LLVOPartGroup> mVOPartGroupp;
+ const LLVector3 &getCenterAgent() const { return mCenterAgent; }
+ S32 getCount() const { return (S32) mParticles.size(); }
+ LLViewerRegion *getRegion() const { return mRegionp; }
- BOOL mUniformParticles;
- U32 mID;
+ void removeParticlesByID(const U32 source_id);
- F32 mSkippedTime;
- bool mHud;
+ LLPointer<LLVOPartGroup> mVOPartGroupp;
+
+ BOOL mUniformParticles;
+ U32 mID;
+
+ F32 mSkippedTime;
+ bool mHud;
protected:
- LLVector3 mCenterAgent;
- F32 mBoxRadius;
- F32 mBoxSide;
- LLVector3 mMinObjPos;
- LLVector3 mMaxObjPos;
+ LLVector3 mCenterAgent;
+ F32 mBoxRadius;
+ F32 mBoxSide;
+ LLVector3 mMinObjPos;
+ LLVector3 mMaxObjPos;
- LLViewerRegion *mRegionp;
+ LLViewerRegion *mRegionp;
};
class LLViewerPartSim : public LLSingleton<LLViewerPartSim>
{
- LLSINGLETON(LLViewerPartSim);
+ LLSINGLETON(LLViewerPartSim);
public:
- void destroyClass();
+ void destroyClass();
+
+ typedef std::vector<LLViewerPartGroup *> group_list_t;
+ typedef std::vector<LLPointer<LLViewerPartSource> > source_list_t;
- typedef std::vector<LLViewerPartGroup *> group_list_t;
- typedef std::vector<LLPointer<LLViewerPartSource> > source_list_t;
+ void enable(bool enabled);
- void enable(bool enabled);
+ void shift(const LLVector3 &offset);
- void shift(const LLVector3 &offset);
+ void updateSimulation();
- void updateSimulation();
+ void addPartSource(LLPointer<LLViewerPartSource> sourcep);
- void addPartSource(LLPointer<LLViewerPartSource> sourcep);
+ void cleanupRegion(LLViewerRegion *regionp);
- void cleanupRegion(LLViewerRegion *regionp);
+ static BOOL shouldAddPart(); // Just decides whether this particle should be added or not (for particle count capping)
+ F32 maxRate() // Return maximum particle generation rate
+ {
+ if (sParticleCount >= MAX_PART_COUNT)
+ {
+ return 1.f;
+ }
+ if (sParticleCount > PART_THROTTLE_THRESHOLD*sMaxParticleCount)
+ {
+ return (((F32)sParticleCount/(F32)sMaxParticleCount)-PART_THROTTLE_THRESHOLD)*PART_THROTTLE_RESCALE;
+ }
+ return 0.f;
+ }
+ F32 getRefRate() { return sParticleAdaptiveRate; }
+ F32 getBurstRate() {return sParticleBurstRate; }
+ void addPart(LLViewerPart* part);
+ void updatePartBurstRate() ;
+ void clearParticlesByID(const U32 system_id);
+ void clearParticlesByOwnerID(const LLUUID& task_id);
+ void removeLastCreatedSource();
- static BOOL shouldAddPart(); // Just decides whether this particle should be added or not (for particle count capping)
- F32 maxRate() // Return maximum particle generation rate
- {
- if (sParticleCount >= MAX_PART_COUNT)
- {
- return 1.f;
- }
- if (sParticleCount > PART_THROTTLE_THRESHOLD*sMaxParticleCount)
- {
- return (((F32)sParticleCount/(F32)sMaxParticleCount)-PART_THROTTLE_THRESHOLD)*PART_THROTTLE_RESCALE;
- }
- return 0.f;
- }
- F32 getRefRate() { return sParticleAdaptiveRate; }
- F32 getBurstRate() {return sParticleBurstRate; }
- void addPart(LLViewerPart* part);
- void updatePartBurstRate() ;
- void clearParticlesByID(const U32 system_id);
- void clearParticlesByOwnerID(const LLUUID& task_id);
- void removeLastCreatedSource();
+ const source_list_t* getParticleSystemList() const { return &mViewerPartSources; }
- const source_list_t* getParticleSystemList() const { return &mViewerPartSources; }
+ friend class LLViewerPartGroup;
- friend class LLViewerPartGroup;
+ BOOL aboveParticleLimit() const { return sParticleCount > sMaxParticleCount; }
- BOOL aboveParticleLimit() const { return sParticleCount > sMaxParticleCount; }
+ static void setMaxPartCount(const S32 max_parts) { sMaxParticleCount = max_parts; }
+ static S32 getMaxPartCount() { return sMaxParticleCount; }
+ static void incPartCount(const S32 count) { sParticleCount += count; }
+ static void decPartCount(const S32 count) { sParticleCount -= count; }
- static void setMaxPartCount(const S32 max_parts) { sMaxParticleCount = max_parts; }
- static S32 getMaxPartCount() { return sMaxParticleCount; }
- static void incPartCount(const S32 count) { sParticleCount += count; }
- static void decPartCount(const S32 count) { sParticleCount -= count; }
-
- U32 mID;
+ U32 mID;
protected:
- LLViewerPartGroup *createViewerPartGroup(const LLVector3 &pos_agent, const F32 desired_size, bool hud);
- LLViewerPartGroup *put(LLViewerPart* part);
+ LLViewerPartGroup *createViewerPartGroup(const LLVector3 &pos_agent, const F32 desired_size, bool hud);
+ LLViewerPartGroup *put(LLViewerPart* part);
- group_list_t mViewerPartGroups;
- source_list_t mViewerPartSources;
- LLFrameTimer mSimulationTimer;
+ group_list_t mViewerPartGroups;
+ source_list_t mViewerPartSources;
+ LLFrameTimer mSimulationTimer;
- static S32 sMaxParticleCount;
- static S32 sParticleCount;
- static F32 sParticleAdaptiveRate;
- static F32 sParticleBurstRate;
+ static S32 sMaxParticleCount;
+ static S32 sParticleCount;
+ static F32 sParticleAdaptiveRate;
+ static F32 sParticleBurstRate;
- static const S32 MAX_PART_COUNT;
- static const F32 PART_THROTTLE_THRESHOLD;
- static const F32 PART_THROTTLE_RESCALE;
- static const F32 PART_ADAPT_RATE_MULT;
- static const F32 PART_ADAPT_RATE_MULT_RECIP;
+ static const S32 MAX_PART_COUNT;
+ static const F32 PART_THROTTLE_THRESHOLD;
+ static const F32 PART_THROTTLE_RESCALE;
+ static const F32 PART_ADAPT_RATE_MULT;
+ static const F32 PART_ADAPT_RATE_MULT_RECIP;
//debug use only
public:
- static S32 sParticleCount2;
+ static S32 sParticleCount2;
- static void checkParticleCount(U32 size = 0) ;
+ static void checkParticleCount(U32 size = 0) ;
};
#endif // LL_LLVIEWERPARTSIM_H