You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
1.4 KiB
C

1 month ago
#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