|
|
|
|
|
|
|
|
|
|
|
#ifndef XJOSGOBJMANAGER_H
|
|
|
|
|
|
#define XJOSGOBJMANAGER_H
|
|
|
|
|
|
|
|
|
|
|
|
#include "XJOSGObject/XJOSGObject.h"
|
|
|
|
|
|
#include <osgViewer/Viewer>
|
|
|
|
|
|
|
|
|
|
|
|
class CXJOSGViewInternal;
|
|
|
|
|
|
class CXJOSGObjManager;
|
|
|
|
|
|
class SelectionManager;
|
|
|
|
|
|
|
|
|
|
|
|
class CXJOSGObjManager
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CXJOSGObjManager();
|
|
|
|
|
|
CXJOSGObjManager(osgViewer::Viewer* pviewer);
|
|
|
|
|
|
~CXJOSGObjManager();
|
|
|
|
|
|
|
|
|
|
|
|
/*<2A><>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
int UpdateObjectView(CXJObject *obj, EOSGUpdateType updateType = UPDATE_ALL);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD>еĶ<D0B5><C4B6><EFBFBD>
|
|
|
|
|
|
int CreateObjectView(CXJObject *obj);
|
|
|
|
|
|
|
|
|
|
|
|
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ڵ<EFBFBD>
|
|
|
|
|
|
void CXJOSGObjManager::DeleteObjectView(CXJObject *pobj);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ѯmap<61><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ڴ˶<DAB4><CBB6><EFBFBD>
|
|
|
|
|
|
bool HasItemInMap(CXJObject *pobj);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>map<61><70><EFBFBD><EFBFBD>
|
|
|
|
|
|
void FreeMap() {m_mapOm3D.clear();}
|
|
|
|
|
|
|
|
|
|
|
|
void SetSelectionManager(SelectionManager* sm) {m_selectionManager = sm;}
|
|
|
|
|
|
|
|
|
|
|
|
void SetViewInternal(CXJOSGViewInternal* pParent){m_pParent = pParent;}
|
|
|
|
|
|
|
|
|
|
|
|
/***<2A><>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں˶<DABA><CBB6><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>**/
|
|
|
|
|
|
CXJOSGObject* GetObjectView(const CXJObject * obj);
|
|
|
|
|
|
CXJOSGObject* GetObjectView(int omkey);
|
|
|
|
|
|
|
|
|
|
|
|
int GetViewObject(CXJOSGObject* obj);
|
|
|
|
|
|
int GetViewObject(int osgKey);
|
|
|
|
|
|
|
|
|
|
|
|
CXJOSGObject* GetViewPointer(int osgKey);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>
|
|
|
|
|
|
void GetDisplayedObjects(std::vector<CXJOSGObject*>& displayedList);
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
std::map<int, CXJOSGObject*> m_mapOm3D;
|
|
|
|
|
|
|
|
|
|
|
|
osgViewer::Viewer* m_pViewer;
|
|
|
|
|
|
|
|
|
|
|
|
SelectionManager* m_selectionManager;
|
|
|
|
|
|
|
|
|
|
|
|
osg::Group* m_3DModelLayer;
|
|
|
|
|
|
|
|
|
|
|
|
osg::Group* m_tempModelLayer;
|
|
|
|
|
|
|
|
|
|
|
|
CXJOSGViewInternal* m_pParent;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|