|
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
#include <osgViewer/Viewer>
|
|
|
|
|
|
#include <osgViewer/ViewerEventHandlers>
|
|
|
|
|
|
#include <osgViewer/api/win32/GraphicsWindowWin32>
|
|
|
|
|
|
|
|
|
|
|
|
#include <osgDB/ReadFile>
|
|
|
|
|
|
#include <osgUtil/Optimizer>
|
|
|
|
|
|
#include <osgManipulator/TrackballDragger>
|
|
|
|
|
|
#include <osgManipulator/TranslateAxisDragger>
|
|
|
|
|
|
#include <osgManipulator/Translate2DDragger>
|
|
|
|
|
|
#include <osgGA/TrackballManipulator>
|
|
|
|
|
|
|
|
|
|
|
|
#include "../Assist/XJOSGCommon.h"
|
|
|
|
|
|
#include "../XJOSGObject/XJOSGObject.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#include "XJOSGView/XJOSGView.h"
|
|
|
|
|
|
#include "XJObjectManager/XJObjectManager.h"
|
|
|
|
|
|
#include "XJAlgorithm/XJPoint2D.h"
|
|
|
|
|
|
|
|
|
|
|
|
#include "XJUserEventHandler.h"
|
|
|
|
|
|
#include "XJTrackballManipulator.h"
|
|
|
|
|
|
#include "HUDCamera.h"
|
|
|
|
|
|
#include "XJV3D_Viewer.h"
|
|
|
|
|
|
#include "XJOSGObjManager.h"
|
|
|
|
|
|
#include "BaseOperator/ViewerSelector.h"
|
|
|
|
|
|
|
|
|
|
|
|
#include "BaseOperator/SelectionManager.h"
|
|
|
|
|
|
#include "BaseOperator/OBaseOperator.h"
|
|
|
|
|
|
#include "BaseOperator/XJMouseOperator.h"
|
|
|
|
|
|
#include "BaseOperator/OpPickZValue.h"
|
|
|
|
|
|
#include "BaseOperator/OpMarkupMouse.h"
|
|
|
|
|
|
#include <string>
|
|
|
|
|
|
#include <vector>
|
|
|
|
|
|
#include <map>
|
|
|
|
|
|
using namespace OSGView;
|
|
|
|
|
|
|
|
|
|
|
|
class PromptionHandler;
|
|
|
|
|
|
class BoxPicker;
|
|
|
|
|
|
|
|
|
|
|
|
static int osgCurManagerIndex;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CXJOSGViewInternal : public CXJObserver
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
//<2F><><EFBFBD>캯<EFBFBD><ECBAAF><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ھ<EFBFBD><DABE><EFBFBD>
|
|
|
|
|
|
CXJOSGViewInternal();
|
|
|
|
|
|
virtual ~CXJOSGViewInternal();
|
|
|
|
|
|
|
|
|
|
|
|
enum {MAX_NOTE_LEN = 512};
|
|
|
|
|
|
|
|
|
|
|
|
void SetHWND(void* hWnd) {m_hWnd = (::HWND)hWnd;}
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>
|
|
|
|
|
|
void Frame();
|
|
|
|
|
|
|
|
|
|
|
|
bool Done();
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ػ<EFBFBD>
|
|
|
|
|
|
void RequestRedraw();
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ʼ<EFBFBD><CABC>OSG
|
|
|
|
|
|
void InitOSG(const std::string& bkgFile);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F>ͷ<EFBFBD>OSG<53><47><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
|
|
|
|
|
|
int TerminateOSG();
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD>UI<55><49><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
|
|
|
|
|
|
void RunEventHandle();
|
|
|
|
|
|
|
|
|
|
|
|
/*<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><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void ActivateEventOperator(CXJMouseOperator* pEventOp);
|
|
|
|
|
|
void DeactiveEventOperator();
|
|
|
|
|
|
|
|
|
|
|
|
/***<2A><>ͼ<EFBFBD>任***/
|
|
|
|
|
|
void TopView();
|
|
|
|
|
|
void LeftView();
|
|
|
|
|
|
void RightView();
|
|
|
|
|
|
void BottonView();
|
|
|
|
|
|
void FrontView();
|
|
|
|
|
|
void BackView();
|
|
|
|
|
|
void ZoomAll();
|
|
|
|
|
|
|
|
|
|
|
|
void TopNoZoomView();
|
|
|
|
|
|
void SetProjViewWithoutZoom(Point3D dir, Point3D up);
|
|
|
|
|
|
|
|
|
|
|
|
void ZoomView(double px, double py, double scale);
|
|
|
|
|
|
void GetViewPos(Point2D& pt, double& scale);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͶӰ<CDB6><D3B0>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͶӰ<CDB6><D3B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB8>ͶӰ<CDB6><D3B0>
|
|
|
|
|
|
void StartOrthoProjection();
|
|
|
|
|
|
void StartPerspectProjection();
|
|
|
|
|
|
|
|
|
|
|
|
//get the selected list of the obj's omkey
|
|
|
|
|
|
const std::vector<int>& GetSelOmKeyList();
|
|
|
|
|
|
|
|
|
|
|
|
//return the number of selected obj
|
|
|
|
|
|
int NbSelected() const;
|
|
|
|
|
|
|
|
|
|
|
|
//return the CXJObject's omkey selected by index
|
|
|
|
|
|
int SelectedObjOmKey(int index);
|
|
|
|
|
|
|
|
|
|
|
|
//set current operator
|
|
|
|
|
|
void LocalSetOperator(OBaseOperator* op);
|
|
|
|
|
|
|
|
|
|
|
|
//is threr a operator handler;
|
|
|
|
|
|
bool HasOperatorHandler();
|
|
|
|
|
|
|
|
|
|
|
|
//there is no event handle in osgview
|
|
|
|
|
|
void OnNoSelectEvent();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void UnlightDynamicDetectedObject();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int DrawPolygonOnScreen(std::vector<std::vector<Point3D>>& polyList, Point3D curPosition);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD>ϵĶ<CFB5><C4B6><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void ClearPolygonOnScreen();
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD>ϵı<CFB5><C4B1><EFBFBD>
|
|
|
|
|
|
void ClearMarkUp();
|
|
|
|
|
|
|
|
|
|
|
|
//Rotate camera by left mouse button
|
|
|
|
|
|
void OnCameraOrbit();
|
|
|
|
|
|
|
|
|
|
|
|
//pan camera by left mouse button
|
|
|
|
|
|
void OnCameraPan();
|
|
|
|
|
|
|
|
|
|
|
|
//use trackball manipulator
|
|
|
|
|
|
void OnCameraTrackball();
|
|
|
|
|
|
|
|
|
|
|
|
//allow trackball throw
|
|
|
|
|
|
void OnCameraContinuousOrbit();
|
|
|
|
|
|
|
|
|
|
|
|
//rotate with axis<69><73>the camera axis need update in real time
|
|
|
|
|
|
void OnCameraVerticalAxisOrbit();
|
|
|
|
|
|
|
|
|
|
|
|
//only hilight obj
|
|
|
|
|
|
void HilightObject(CXJOSGObject* sel);
|
|
|
|
|
|
|
|
|
|
|
|
//select and Hilight a osgobj
|
|
|
|
|
|
int SelectObject(CXJOSGObject* sel);
|
|
|
|
|
|
|
|
|
|
|
|
int PickedObject();
|
|
|
|
|
|
//get the intersection pt
|
|
|
|
|
|
int PickedPoint(osg::Vec3d& pnt, osg::Vec3d& normal);
|
|
|
|
|
|
|
|
|
|
|
|
int PickedDir(osg::Vec3d& dir);
|
|
|
|
|
|
|
|
|
|
|
|
//unselect and unHilight all obj from list
|
|
|
|
|
|
void DeSelectSelList();
|
|
|
|
|
|
|
|
|
|
|
|
//set selected obj's visibility in selList
|
|
|
|
|
|
void InvisibleSelList(bool visible);
|
|
|
|
|
|
|
|
|
|
|
|
//set selected obj's transparency in selList
|
|
|
|
|
|
void TransparentSelList(bool transparent);
|
|
|
|
|
|
|
|
|
|
|
|
//set selected obj's wireframe in selList
|
|
|
|
|
|
void WireframeSelList(bool wireframe);
|
|
|
|
|
|
|
|
|
|
|
|
void SetPolygonOffsets(CXJObject* pobj, float aFactor, float aUnits);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void SetViewManipulatorEnable(bool enable);
|
|
|
|
|
|
|
|
|
|
|
|
/****ʰȡ<CAB0><C8A1>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*****/
|
|
|
|
|
|
int PickObject(int x, int y, CXJOSGObject* &obj, bool reverseY = false);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>ģʽ
|
|
|
|
|
|
void SetPickMode(int pickMode = 0);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*******ģ<><C4A3><EFBFBD>϶<EFBFBD><CFB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*******/
|
|
|
|
|
|
//<2F><>ģʽ<C4A3>µ<EFBFBD><C2B5>ϷŲ<CFB7><C5B2><EFBFBD>
|
|
|
|
|
|
void TrackBallDragger(CXJObject *obj);
|
|
|
|
|
|
void SetRotateDraggerStep(double step);
|
|
|
|
|
|
|
|
|
|
|
|
void TranslateAxisDragger(CXJObject *obj);
|
|
|
|
|
|
void TranslateDirDragger(std::vector<CXJObject*> objList, Point3D dir);
|
|
|
|
|
|
void TranslateDirAndRotateDragger(std::vector<CXJObject*> objList, Point3D dir);
|
|
|
|
|
|
void RotateDirDragger(CXJObject *obj,Point3D dir);
|
|
|
|
|
|
void SetTranslationDraggerStep(double step);
|
|
|
|
|
|
void Translate2DDragger(CXJObject *obj);
|
|
|
|
|
|
void TranslateLocalCordDragger(CXJObject* obj, const Point3D& localCorX,
|
|
|
|
|
|
const Point3D& localCorY, const Point3D& localCorZ);
|
|
|
|
|
|
void TrackBallLocalCordDragger(CXJObject* obj, const Point3D& localCorX,
|
|
|
|
|
|
const Point3D& localCorY, const Point3D& localCorZ);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD><CFB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void ClearDraggerObject();
|
|
|
|
|
|
|
|
|
|
|
|
//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>Dragger
|
|
|
|
|
|
bool IsExistDragger();
|
|
|
|
|
|
|
|
|
|
|
|
/**********ģ<><C4A3><EFBFBD><EFBFBD>ͼ<EFBFBD>任<EFBFBD>;<EFBFBD><CDBE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*************/
|
|
|
|
|
|
|
|
|
|
|
|
//ƽ<><C6BD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><F3A3ACB8><EFBFBD>x,y,z<><7A><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void TranslateObject(CXJObject *obj,float x,float y,float z);
|
|
|
|
|
|
//<2F><>תָ<D7AA><D6B8><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><F3A3ACB8><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD>㡢<EFBFBD><E3A1A2>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD>Ƕ<EFBFBD>
|
|
|
|
|
|
void RotateObject(CXJObject* obj,Point3D basePt,Point3D rotateDir,float angle);
|
|
|
|
|
|
//<2F>任ָ<E4BBBB><D6B8><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>ӳ<F3A3ACB4>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>任<EFBFBD><E4BBBB>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ʸת<CAB8><D7AA>Ϊ<EFBFBD><CEAA>ת<EFBFBD><D7AA><EFBFBD>ͽǶ<CDBD>
|
|
|
|
|
|
void ConvertDirToAngleAxis(const Point3D& dir, Point3D& rotAxis, double& angle);
|
|
|
|
|
|
|
|
|
|
|
|
bool MakeRotationByAxes(const Point3D& xdir, const Point3D& ydir, const Point3D& zdir,
|
|
|
|
|
|
Point3D& rotateAxis, double& angle, const char* priorityOrder = "ZXY");
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼλ<CDBC><CEBB>
|
|
|
|
|
|
void ResetObjectViewPos(CXJObject* obj);
|
|
|
|
|
|
|
|
|
|
|
|
void TransformObjectOnce(CXJObject* obj, Point3D originPt, Point3D oriVec, Point3D destVec);
|
|
|
|
|
|
void GetObjectRotation(CXJObject *obj, float &x, float &y, float &z,float &ang);
|
|
|
|
|
|
void GetObjectTranslation(CXJObject *obj, float &x, float &y, float &z);
|
|
|
|
|
|
|
|
|
|
|
|
void TranslatePointW2NP(Point3D& pp, double& r);
|
|
|
|
|
|
void TranslatePointW2NFP(Point3D& p, Point3D& NPoint, Point3D& FPoint);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/***********<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>*************/
|
|
|
|
|
|
|
|
|
|
|
|
//ɾ<><C9BE><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD>ƫ<EFBFBD><C6AB>ƽ<EFBFBD><C6BD>
|
|
|
|
|
|
void DeleteTempOffsetPlane();
|
|
|
|
|
|
|
|
|
|
|
|
//ɾ<><C9BE><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2D<32><44>
|
|
|
|
|
|
void DeleteTempPattern2D();
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ʱ<EFBFBD><CAB1>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>߶μ<DFB6>
|
|
|
|
|
|
void ShowLineSet(const std::vector<Point3D>& pts);
|
|
|
|
|
|
void ClearLineSet();
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ʱ<EFBFBD><CAB1>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void ShowSelPt(osg::Vec3 &pt);
|
|
|
|
|
|
void ClearSelPt();
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ʱ<EFBFBD><CAB1>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>㼯
|
|
|
|
|
|
void ShowPointSet(const std::vector<Point3D>& pts);
|
|
|
|
|
|
void ClearPointSet();
|
|
|
|
|
|
|
|
|
|
|
|
/**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>ʽ<EFBFBD>Ժ<EFBFBD><D4BA>ᱻ<EFBFBD><E1B1BB><EFBFBD><EFBFBD>**/
|
|
|
|
|
|
//<2F><>ʱ<EFBFBD><CAB1>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
|
|
|
|
|
|
int CreateTempObject(CXJObject* obj);
|
|
|
|
|
|
int DeleteTempObject();
|
|
|
|
|
|
|
|
|
|
|
|
//ɾ<><C9BE>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
|
|
|
|
|
|
void DeleteTempObject(const CXJObject* pObj);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>λ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD>
|
|
|
|
|
|
void GetCameraLookAt(Point3D &eye,Point3D &target,Point3D &up);
|
|
|
|
|
|
|
|
|
|
|
|
void SetCameraLookAt(Point3D a_normal,Point3D a_up);
|
|
|
|
|
|
|
|
|
|
|
|
void SetCameraLookAt(const Point3D& eye, const Point3D& target, const Point3D& up);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ<CDBC>洢·<E6B4A2><C2B7>
|
|
|
|
|
|
void SetBackGroudBmpPath(const std::string bmpPath);
|
|
|
|
|
|
void SetBackGroudColor(int r, int g, int b, float a=1);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>÷ָ<C3B7><D6B8><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>ǰ<EFBFBD><C7B0>
|
|
|
|
|
|
void setModelShowInFront(CXJObject* pobj, bool isFront = true);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD>㼯
|
|
|
|
|
|
int GetPlaneMeshIntersection(CXJObject* pobj, double plnDir[3], double plnPoint[3],
|
|
|
|
|
|
std::vector<std::vector<Point3D>>& pnts, int& PolygonNum );
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>
|
|
|
|
|
|
int GetIntersectPt(CXJObject* pobj, const Point3D& start, Point3D& lineDir, Point3D& intersectPt);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<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(wchar_t* str, HUDTextWinPos displayPos, AlignmentType alighment);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>HUDText<78><74>һϵ<D2BB><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void setHUDTextProperties(float charactersize, osg::Vec4 textColor, std::string font);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD>ͼƬ<CDBC><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>
|
|
|
|
|
|
bool setPictureOnBackGround(const std::string& picPath);
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>Ĭ<EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>ͼƬ
|
|
|
|
|
|
void setDefaultBackGround();
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD>Ͻ<EFBFBD><CFBD>ж<EFBFBD>ά<EFBFBD><CEAC>ͼ
|
|
|
|
|
|
//ʰȡ<CAB0><C8A1>άͼƬ<CDBC>ϵĵ<CFB5>
|
|
|
|
|
|
int Pick2DPoint(int x, int y, osg::Vec2 &pnt2D, osg::Vec3 &pnt3D);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>µĵ<C2B5>
|
|
|
|
|
|
void ProjectWindowsToObject(int x, int y, osg::Vec3& pt);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA>Ļ<EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void ProjectObjectToWindow(const Point3D& pt, int& x, int& y );
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>λ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void ZoomAndShowTopView_Sketch(osg::Vec3 axisZ, osg::Vec3 axisY);
|
|
|
|
|
|
|
|
|
|
|
|
void ZoomAndShowFrontView_Sketch(osg::Vec3 center, osg::Vec3 norml, osg::Vec3 up);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/***<2A><>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں˶<DABA><CBB6><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>**/
|
|
|
|
|
|
CXJOSGObject* GetViewPointer(int osgKey);
|
|
|
|
|
|
CXJOSGObject* GetObjectView(const CXJObject * obj);
|
|
|
|
|
|
CXJOSGObject* GetObjectView(int omkey);
|
|
|
|
|
|
int GetViewObject(CXJOSGObject* obj) ;
|
|
|
|
|
|
int GetViewObject(int osgKey);
|
|
|
|
|
|
|
|
|
|
|
|
/**************<2A><>OSG<53><47>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>ʾģ<CABE><C4A3>*****************************************/
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>Ļ<EFBFBD>ϻ<EFBFBD><CFBB>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD>仯
|
|
|
|
|
|
int DrawPolylineOnWindow(std::vector<Point3D>& polyline);
|
|
|
|
|
|
int DrawPolylineOnMFCWindow(std::vector<Point3D>& polyline, int state = 0);
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD>ϻ<EFBFBD><CFBB>ƵĶ<C6B5><C4B6><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
int ClearPolylineOnWindow();
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>Ļ<EFBFBD>ϻ<EFBFBD><CFBB><EFBFBD>Բ<EFBFBD><D4B2>ָ<EFBFBD><D6B8>Բ<EFBFBD><D4B2>λ<EFBFBD>úͰ뾶
|
|
|
|
|
|
int DrawCircleOnWindow(int x, int y, float circleRad = 50.0);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD>ϻ<EFBFBD><CFBB>Ƶ<EFBFBD>Բ
|
|
|
|
|
|
int ClearCircleOnWindow();
|
|
|
|
|
|
|
|
|
|
|
|
//<2F>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD>л<EFBFBD><D0BB>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD>仯
|
|
|
|
|
|
int DrawPolylineOnSceneGraph(std::vector<Point3D>& polyline);
|
|
|
|
|
|
int ClearPolylineOnSceneGraph();
|
|
|
|
|
|
|
|
|
|
|
|
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>osg<73><67><EFBFBD><EFBFBD>
|
|
|
|
|
|
void DeleteAllOSGObjects();
|
|
|
|
|
|
|
|
|
|
|
|
osgViewer::Viewer* getViewer() {return m_viewer;}
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>Ⱦ<EFBFBD><C8BE>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD>̬<EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊȫ<CEAA><C8AB><EFBFBD>߳<EFBFBD>
|
|
|
|
|
|
static void Render(void* ptr);
|
|
|
|
|
|
|
|
|
|
|
|
ViewerSelector* GetViewerSelector() {return m_viewerSelector;}
|
|
|
|
|
|
|
|
|
|
|
|
CXJOSGObjManager* GetOSGObjManager() {return m_osgObjManager;}
|
|
|
|
|
|
|
|
|
|
|
|
//ÿ֡<C3BF><D6A1><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
|
|
|
|
|
|
void PreFrameUpdate(void);
|
|
|
|
|
|
|
|
|
|
|
|
//ÿ֡<C3BF><D6A1><EFBFBD>ƺ<EFBFBD><C6BA><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void PostFrameUpdate(void);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
const osgGA::GUIEventHandler* GetActiveOperator() const{ return m_ActiveEventHandler.get();}
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ȡ<EFBFBD><C8A1>ɫ<EFBFBD><C9AB>
|
|
|
|
|
|
HUDAnalysis* GetHUDAnalysis() const {return m_hudAnalysis;}
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ͼƬ
|
|
|
|
|
|
void DrawImage(std::string path);
|
|
|
|
|
|
|
|
|
|
|
|
void TakeObjectPicture(const std::vector<CXJObject*>& objList, std::string path,
|
|
|
|
|
|
const osg::Vec3d& cen,
|
|
|
|
|
|
const osg::Vec3d& dir,
|
|
|
|
|
|
const osg::Vec3d& up,
|
|
|
|
|
|
double rad,
|
|
|
|
|
|
int w, int h);
|
|
|
|
|
|
|
|
|
|
|
|
void EnablePickZValue(CXJObject* pobj, bool bEnable = true);
|
|
|
|
|
|
|
|
|
|
|
|
void EnableOpDrawPolygon(bool bEnable);
|
|
|
|
|
|
void GetOpDrawPolygon(std::vector<Point2D>& polygen);
|
|
|
|
|
|
|
|
|
|
|
|
void EnableAntiAliasing(bool bEnable);
|
|
|
|
|
|
|
|
|
|
|
|
void ShowMouse(int px, int py);
|
|
|
|
|
|
|
|
|
|
|
|
void GetMousePos(int& px, int& py);
|
|
|
|
|
|
protected:
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>·<EFBFBD><C2B7><EFBFBD><EFBFBD>ͼƬ<CDBC><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
osg::ref_ptr<osg::Camera> CreateBackGround(std::string BmpPath);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>Ⱦ<EFBFBD><C8BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱦ<EFBFBD><C8BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>
|
|
|
|
|
|
osg::ref_ptr<osg::Camera> CreateHUDCamera(osg::Camera::RenderOrder renderOrder);
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void InitManipulators(void);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void InitSceneGraph(const std::string& bkgFile);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ʼ<EFBFBD><CABC>2D<32><44><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>
|
|
|
|
|
|
void Init2DSceeGraphLayer();
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ʼ<EFBFBD><CABC><EFBFBD>϶<EFBFBD><CFB6><EFBFBD>ͼ<EFBFBD><CDBC>
|
|
|
|
|
|
void InitOsgDraggerLayer();
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void InitCameraConfig(void);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>ϵλ<CFB5>úͷ<C3BA><CDB7><EFBFBD>
|
|
|
|
|
|
void InitCoordinateSystem(void);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>
|
|
|
|
|
|
void InitEventHandlers(void);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ʼ<EFBFBD><CABC>HUD<55><44><EFBFBD><EFBFBD>
|
|
|
|
|
|
void InitHUDText(void);
|
|
|
|
|
|
|
|
|
|
|
|
void UpdateProjectionMatrix();
|
|
|
|
|
|
|
|
|
|
|
|
//friend CXJOSGObjManager* GetOSGObjManager(); //<2F><>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
//friend ViewerSelector* GetViewerSelector(); //<2F><>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
//<2F><><EFBFBD>ھ<EFBFBD><DABE><EFBFBD>
|
|
|
|
|
|
HWND m_hWnd;
|
|
|
|
|
|
|
|
|
|
|
|
//<2F>۲<EFBFBD><DBB2><EFBFBD>viewer
|
|
|
|
|
|
XJV3D_Viewer* m_viewer;
|
|
|
|
|
|
|
|
|
|
|
|
//trackball<6C><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
osg::ref_ptr</*osgGA::TrackballManipulator*/CXJTrackballManipulator> m_trackball;
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>KeySwitchѡ<68><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
osg::ref_ptr<CXJManipulator> m_keyswitchManipulator;
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>OMKey<65>Ͷ<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>
|
|
|
|
|
|
//std::map<int, CXJOSGObject* > m_mapOm3D;
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
CXJOSGObjManager* m_osgObjManager; //<2F><>̬<EFBFBD><CCAC>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>г<EFBFBD>ʼ<EFBFBD><CABC>
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ͼʰȡ<CAB0><C8A1>
|
|
|
|
|
|
ViewerSelector* m_viewerSelector;
|
|
|
|
|
|
|
|
|
|
|
|
//ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
osg::ref_ptr<SelectionManager> m_selectionManager;
|
|
|
|
|
|
|
|
|
|
|
|
//the current operator
|
|
|
|
|
|
osg::ref_ptr<osgGA::GUIEventHandler> m_ActiveEventHandler;
|
|
|
|
|
|
bool m_bHasOperator; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>־
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ洢·<E6B4A2><C2B7>
|
|
|
|
|
|
std::string m_DebugPath;
|
|
|
|
|
|
osg::Vec4 m_bgColor;
|
|
|
|
|
|
//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD>ɫ<EFBFBD><C9AB>Ĭ<EFBFBD><C4AC><EFBFBD>Ǵ<EFBFBD>ɫ
|
|
|
|
|
|
bool m_bIsBackgroundPureColor;
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>¼<EFBFBD>
|
|
|
|
|
|
osg::ref_ptr<PromptionHandler> m_KeyboardHandler;
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ק<EFBFBD><D7A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
osg::ref_ptr<osgManipulator::TrackballDragger> m_trackballDragger;
|
|
|
|
|
|
osg::ref_ptr<osgManipulator::TranslateAxisDragger> m_translateAxisDragger;
|
|
|
|
|
|
osg::ref_ptr<osgManipulator::Translate2DDragger> m_translate2DDragger;
|
|
|
|
|
|
osg::ref_ptr<osg::Switch> m_trackballDraggerSwitch;
|
|
|
|
|
|
osg::ref_ptr<osg::Switch> m_translateAxisDraggerSwitch;
|
|
|
|
|
|
osg::ref_ptr<osg::Switch> m_translate2DDraggerSwitch;
|
|
|
|
|
|
|
|
|
|
|
|
/*******************<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**************************/
|
|
|
|
|
|
OpPickZValue* m_opPickZValue;
|
|
|
|
|
|
OpMarkupMouse* m_opMarkMouse;
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>
|
|
|
|
|
|
osg::ref_ptr<osg::Group> m_root;
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ϵ<EFBFBD>ڵ<EFBFBD>
|
|
|
|
|
|
osg::ref_ptr<osg::Group> m_csysGroup;
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ʱ<EFBFBD><CAB1>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
|
|
|
|
|
|
osg::ref_ptr<osg::Group> m_tempObjectGroup;
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д洢<D0B4><E6B4A2>CTͼ<54><CDBC><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>
|
|
|
|
|
|
osg::ref_ptr<osg::Switch> m_CTImageGroup;
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>3D<33>ڵ<EFBFBD><DAB5><EFBFBD>֯
|
|
|
|
|
|
osg::ref_ptr<osg::Switch> m_3DGroup;
|
|
|
|
|
|
|
|
|
|
|
|
CXJPlane* m_2DPlane;
|
|
|
|
|
|
std::vector<CXJPlane*> m_ClipPlanes;
|
|
|
|
|
|
|
|
|
|
|
|
osg::ref_ptr<HUDText> m_hudText;
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ɫ<EFBFBD><C9AB>
|
|
|
|
|
|
osg::ref_ptr<HUDAnalysis> m_hudAnalysis;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>»ص<C2BB>
|
|
|
|
|
|
class XJSceneGraphUpdateCallBack : public osg::NodeCallback
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
XJSceneGraphUpdateCallBack()
|
|
|
|
|
|
: m_update(false),
|
|
|
|
|
|
m_ViewInternal(NULL),
|
|
|
|
|
|
m_pobj(NULL),
|
|
|
|
|
|
m_updateType(UPDATE_ALL)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
virtual void operator()(osg::Node* node, osg::NodeVisitor* nv)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_update == false)
|
|
|
|
|
|
{
|
|
|
|
|
|
traverse(node,nv);
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (NULL != m_ViewInternal && NULL != m_pobj)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_update = false;
|
|
|
|
|
|
traverse(node,nv);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
void SetUpdateRun(bool update) {m_update = update;}
|
|
|
|
|
|
bool GetUpdateRun(){return m_update;}
|
|
|
|
|
|
void SetViewInternal(CXJOSGViewInternal* viewinternal) {m_ViewInternal = viewinternal;}
|
|
|
|
|
|
void UpdateObject(CXJObject* pobj,EOSGUpdateType updateType)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_pobj = pobj;
|
|
|
|
|
|
m_updateType = updateType;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
bool m_update;
|
|
|
|
|
|
CXJOSGViewInternal* m_ViewInternal;
|
|
|
|
|
|
CXJObject* m_pobj;
|
|
|
|
|
|
EOSGUpdateType m_updateType;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|