llregionposition.cpp

Go to the documentation of this file.
00001 
00032 #include "llviewerprecompiledheaders.h"
00033 
00034 #include "llregionposition.h"
00035 
00036 #include "llagent.h"
00037 #include "llworld.h"
00038 #include "llviewerregion.h"
00039 
00040 LLRegionPosition::LLRegionPosition()
00041 {
00042         mRegionp = NULL;
00043 }
00044 
00045 LLRegionPosition::LLRegionPosition(LLViewerRegion *regionp, const LLVector3 &position)
00046 {
00047         mRegionp = regionp;
00048         mPositionRegion = position;
00049 }
00050 
00051 LLRegionPosition::LLRegionPosition(const LLVector3d &global_position)
00052 {
00053         setPositionGlobal(global_position);
00054 }
00055 
00056 LLViewerRegion *LLRegionPosition::getRegion() const
00057 {
00058         return mRegionp;
00059 }
00060 
00061 const LLVector3 &LLRegionPosition::getPositionRegion() const
00062 {
00063         return mPositionRegion;
00064 }
00065 
00066 const LLVector3 LLRegionPosition::getPositionAgent() const
00067 {
00068         return mRegionp->getPosAgentFromRegion( mPositionRegion );
00069 }
00070 
00071 LLVector3d LLRegionPosition::getPositionGlobal() const
00072 {
00073         if (mRegionp)
00074         {
00075                 return mRegionp->getPosGlobalFromRegion(mPositionRegion);
00076         }
00077         else
00078         {
00079                 LLVector3d pos_global;
00080                 pos_global.setVec(mPositionRegion);
00081                 return pos_global;
00082         }
00083 }
00084 
00085 
00086 void LLRegionPosition::setPositionGlobal(const LLVector3d& position_global )
00087 {
00088         mRegionp = gWorldPointer->getRegionFromPosGlobal(position_global);
00089         if (mRegionp)
00090         {
00091                 mPositionRegion = mRegionp->getPosRegionFromGlobal(position_global);
00092         }
00093         else
00094         {
00095                 mRegionp = gAgent.getRegion();
00096                 llassert(mRegionp);
00097                 mPositionRegion = mRegionp->getPosRegionFromGlobal(position_global);
00098         }
00099 }

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