00001 00032 #ifndef LL_LLPREVIEWLANDMARK_H 00033 #define LL_LLPREVIEWLANDMARK_H 00034 00035 #include <deque> 00036 00037 #include "lllandmark.h" 00038 00039 #include "llfloater.h" 00040 #include "llmap.h" 00041 #include "llstring.h" 00042 #include "lluuid.h" 00043 #include "v3dmath.h" 00044 #include "v4coloru.h" 00045 00046 #include "llhudtext.h" 00047 #include "llpreview.h" 00048 00049 class LLIconCtrl; 00050 class LLInventoryItem; 00051 class LLLandmarkList; 00052 class LLLineEditor; 00053 class LLMessageSystem; 00054 class LLPreviewLandmark; 00055 class LLPanelPlace; 00056 00057 const S32 PREVIEW_LANDMARK_NUM_COLORS = 6; 00058 00059 typedef std::deque< LLPreviewLandmark* > LLPreviewLandmarkList; 00060 00061 class LLPreviewLandmark : public LLPreview 00062 { 00063 public: 00064 LLPreviewLandmark(const std::string& name, const LLRect& rect, const std::string& title, 00065 const LLUUID& item_uuid, 00066 BOOL show_keep_discard = FALSE, 00067 LLViewerInventoryItem* inv_item = NULL); 00068 virtual ~LLPreviewLandmark(); 00069 00070 /*virtual*/ void draw(); 00071 00072 const LLString& getName() const; 00073 const LLColor4& getMarkerColor() const; 00074 00075 LLVector3d getPositionGlobal() const; 00076 00077 //static S32 getNumInstances() { return LLPreviewLandmark::sOrderedInstances.getLength(); } 00078 //static const LLPreviewLandmark* getFirst() { return LLPreviewLandmark::sOrderedInstances.getFirstData(); } 00079 //static const LLPreviewLandmark* getNext() { return LLPreviewLandmark::sOrderedInstances.getNextData(); } 00080 00081 static void* createPlaceDetail(void* userdata); 00082 00083 /*virtual*/ void loadAsset(); 00084 /*virtual*/ EAssetStatus getAssetStatus(); 00085 00086 protected: 00087 void getDegreesAndDist(F32* degrees, F64* horiz_dist, F64* vert_dist) const; 00088 00089 private: 00090 // void renderBeacon(); 00091 // LLPointer<LLHUDText> mBeaconText; 00092 00093 LLIconCtrl* mIconLandmark; 00094 LLPanelPlace* mPlacePanel; 00095 LLLandmark* mLandmark; 00096 LLColor4 mMarkerColor; 00097 00098 //static LLDoubleLinkedList< LLPreviewLandmark > sOrderedInstances; 00099 static LLPreviewLandmarkList sOrderedInstances; 00100 }; 00101 00102 #endif