123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- /************************************************************************************************
- *
- * Copyright (C) 2001-2002 Raven Software
- *
- * RM_Area.h
- *
- ************************************************************************************************/
- #pragma once
- #if !defined(RM_AREA_H_INC)
- #define RM_AREA_H_INC
- #ifdef DEBUG_LINKING
- #pragma message("...including RM_Area.h")
- #endif
- class CRMArea
- {
- private:
- float mPaddingSize;
- float mSpacingRadius;
- float mConfineRadius;
- float mRadius;
- float mAngle;
- int mMoveCount;
- vec3_t mOrigin;
- vec3_t mConfineOrigin;
- vec3_t mLookAtOrigin;
- bool mCollision;
- bool mFlatten;
- bool mLookAt;
- bool mLockOrigin;
- int mSymmetric;
- public:
- CRMArea ( float spacing, float padding, float confine, vec3_t confineOrigin, vec3_t lookAtOrigin, bool flatten = true, int symmetric = 0 );
- void Mirror ( void );
- void SetOrigin(vec3_t origin) { VectorCopy ( origin, mOrigin ); }
- void SetAngle(float angle) { mAngle = angle; }
- void SetSymmetric(int sym) { mSymmetric = sym; }
- void EnableCollision(bool e) { mCollision = e; }
- void EnableLookAt(bool la) {mLookAt = la; }
- float LookAt(vec3_t lookat);
- void LockOrigin( void ) { mLockOrigin = true; }
- void AddMoveCount() { mMoveCount++; }
- void ClearMoveCount() { mMoveCount=0; }
- float GetPaddingSize() { return mPaddingSize; }
- float GetSpacingRadius() { return mSpacingRadius; }
- float GetRadius() { return mRadius; }
- float GetConfineRadius() { return mConfineRadius; }
- float GetAngle() { return mAngle; }
- int GetMoveCount() { return mMoveCount; }
- vec_t* GetOrigin() { return mOrigin; }
- vec_t* GetConfineOrigin() { return mConfineOrigin; }
- vec_t* GetLookAtOrigin() { return mLookAtOrigin; }
- bool GetLookAt() { return mLookAt;}
- bool GetLockOrigin() { return mLockOrigin; }
- int GetSymmetric() { return mSymmetric; }
- void SetRadius(float r) { mRadius = r; }
- bool IsCollisionEnabled(){ return mCollision; }
- bool IsFlattened (){ return mFlatten; }
- };
- typedef vector<CRMArea*> rmAreaVector_t;
- class CRMAreaManager
- {
- private:
- rmAreaVector_t mAreas;
- vec3_t mMins;
- vec3_t mMaxs;
- float mWidth;
- float mHeight;
- public:
-
- CRMAreaManager ( const vec3_t mins, const vec3_t maxs );
- ~CRMAreaManager ( );
- CRMArea* CreateArea ( vec3_t origin, float spacing, int spacingline, float padding, float confine, vec3_t confineOrigin, vec3_t lookAtOrigin, bool flatten=true, bool collide=true, bool lockorigin=false, int symmetric=0);
- void MoveArea ( CRMArea* area, vec3_t origin);
- CRMArea* EnumArea ( const int index );
- // void CreateMap ( void );
- };
- #endif
|