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.

67 lines
2.0 KiB
C

1 month ago
#ifndef XJ_COMPOSITE_OSG_VIEW_H
#define XJ_COMPOSITE_OSG_VIEW_H
#include "dllExport.h"
#include "Common.h"
#include "XJObjectManager/XJObject.h"
#include <vector>
class XJOSGVIEWEXPORT CXJCompositeOSGView
{
public:
CXJCompositeOSGView();
virtual ~CXJCompositeOSGView();
void AddOSGView(int index,void* hwnd);
static void Render(void* ptr);
//static void Render();
//<2F><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD>ָ<EFBFBD><EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><C2B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int UpdateObjectView(int index,CXJObject* obj, EOSGUpdateType updateType = UPDATE_ALL);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>عǣ<D8B9><C7A3><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>عǺ<D8B9><C7BA>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD>
void ClipPlaneList(int index, CXJObject *pobj, std::vector<CXJPlane*> Planes, bool IsClosed = true);
void StopClipPlane(int index, CXJObject *pobj);
//<2F><>ƽ<EFBFBD><EFBFBD><E6BDAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD><D6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD>ͬ<EFBFBD><CDAC>ɫ<EFBFBD><C9AB>ʾ
void SplitObjectByClipPlane(int index, CXJObject *obj, vector<CXJPlane*> Planes, int clipIndex);
void StopSplitObject(int index, CXJObject *obj);
//<2F><>ȡ<EFBFBD><C8A1>ִ<EFBFBD><D6B4><EFBFBD>ļ<EFBFBD>·<EFBFBD><C2B7>
void SetModeulePath(std::string a_exePath) {m_exePath = a_exePath;}
//<2F><><EFBFBD><EFBFBD>ͶӰ<CDB6><D3B0>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>
void SetProjView(int index,XJViewType viewType);
//<2F><><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ͼ<EFBFBD><CDBC>ʾ
void ZoomView(int index);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>
void RotateObject(int index, CXJObject* obj, Point3D basePt, Point3D rotateDir, float angle);
//<2F><><EFBFBD><EFBFBD><EFBFBD>任,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4BBBB>ֻ<EFBFBD>һ<E4BBBB>Σ<EFBFBD><CEA3><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><E3A3AC>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4BBBB><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
void TransformObjectOnce(int index, CXJObject* obj, Point3D originPt, Point3D oriVec, Point3D destVec);
void GetObjectMatrix(int index, CXJObject* obj, Matrix4& matrix) const;
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>osg<73><67><EFBFBD><EFBFBD>
void DeleteAllOSGObjects(int index);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>Text<78><74> displayPosΪ<73><CEAA>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
//0---<2D><><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD>ʾ<EFBFBD><CABE> 1--<2D><><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD>ʾ<EFBFBD><CABE> 2--<2D><><EFBFBD>½<EFBFBD><C2BD><EFBFBD>ʾ
void setHUDText(int index, wchar_t* str, HUDTextWinPos displayPos = WINDOW_LEFT_TOP_POS, AlignmentType alighment = BASE_LINE_ALIGNMENT);
//<2F><><EFBFBD><EFBFBD>text<78><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void setHUDTextProperties(int index, float textSize, COLORREF textColor, std::string& font);
private:
void* m_CompositeViewer;
void* m_graphicContext;
std::vector<void*> m_osgInternals;
std::string m_exePath;
};
#endif