修改Reander的属性名
This commit is contained in:
parent
56aee7da62
commit
90fe9ffe46
@ -57,11 +57,12 @@ add_library(opencax SHARED
|
|||||||
NativeEGLOCCT/V3d/V3dCtx/V3dCtx.h
|
NativeEGLOCCT/V3d/V3dCtx/V3dCtx.h
|
||||||
NativeEGLOCCT/V3d/V3dView/V3dView.h
|
NativeEGLOCCT/V3d/V3dView/V3dView.h
|
||||||
NativeEGLOCCT/V3d/V3dWin/V3dWin.h
|
NativeEGLOCCT/V3d/V3dWin/V3dWin.h
|
||||||
NativeEGLOCCT/V3d/V3dCa/V3dCa.h
|
NativeEGLOCCT/V3d/V3dCamera/V3dCamera.h
|
||||||
NativeEGLOCCT/V3d/V3dDrawer/V3dDrawer.h
|
NativeEGLOCCT/V3d/V3dDrawer/V3dDrawer.h
|
||||||
NativeEGLOCCT/V3d/V3dTri/V3dTri.h
|
NativeEGLOCCT/V3d/V3dTri/V3dTri.h
|
||||||
NativeEGLOCCT/V3d/V3dTri/V3dWCSTri.h
|
NativeEGLOCCT/V3d/V3dTri/V3dWCSTri.h
|
||||||
NativeEGLOCCT/V3d/V3dTri/V3dTriCube.h
|
NativeEGLOCCT/V3d/V3dTri/V3dTriCube.h
|
||||||
|
|
||||||
# Cpp Src
|
# Cpp Src
|
||||||
NativeEGLOCCT/EGLMgr/EGLCore.cpp
|
NativeEGLOCCT/EGLMgr/EGLCore.cpp
|
||||||
NativeEGLOCCT/EGLMgr/EGLSubCore.cpp
|
NativeEGLOCCT/EGLMgr/EGLSubCore.cpp
|
||||||
@ -73,7 +74,7 @@ add_library(opencax SHARED
|
|||||||
NativeEGLOCCT/V3d/V3dViewer/V3dViewer.cpp
|
NativeEGLOCCT/V3d/V3dViewer/V3dViewer.cpp
|
||||||
NativeEGLOCCT/V3d/V3dCtx/V3dCtx.cpp
|
NativeEGLOCCT/V3d/V3dCtx/V3dCtx.cpp
|
||||||
NativeEGLOCCT/V3d/V3dView/V3dView.cpp
|
NativeEGLOCCT/V3d/V3dView/V3dView.cpp
|
||||||
NativeEGLOCCT/V3d/V3dCa/V3dCa.cpp
|
NativeEGLOCCT/V3d/V3dCamera/V3dCamera.cpp
|
||||||
NativeEGLOCCT/V3d/V3dWin/V3dWin.cpp
|
NativeEGLOCCT/V3d/V3dWin/V3dWin.cpp
|
||||||
NativeEGLOCCT/V3d/V3dDrawer/V3dDrawer.cpp
|
NativeEGLOCCT/V3d/V3dDrawer/V3dDrawer.cpp
|
||||||
NativeEGLOCCT/V3d/V3dTri/V3dTri.cpp
|
NativeEGLOCCT/V3d/V3dTri/V3dTri.cpp
|
||||||
|
|||||||
@ -193,7 +193,7 @@ void NativeMgr::OnMouseEvent(OH_NativeXComponent *comp, void *win) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//Test Mouse MIDDLE_BUTTON Long Press
|
//Test Mouse MIDDLE_BUTTON Long Press
|
||||||
//HILOG_WARN(NATIVE_TAG, "ExtraMouseEventInfo:%{public}s",extra);
|
HILOG_WARN(NATIVE_TAG, "ExtraMouseEventInfo:%{public}d",extra);
|
||||||
std::lock_guard<std::mutex> lock(mapMutex);
|
std::lock_guard<std::mutex> lock(mapMutex);
|
||||||
//通过时间戳判断事件唯一性.保证单一时间戳只触发一次事件
|
//通过时间戳判断事件唯一性.保证单一时间戳只触发一次事件
|
||||||
if(mouseEvent.timestamp==NativeMgr::timestamp){
|
if(mouseEvent.timestamp==NativeMgr::timestamp){
|
||||||
@ -214,6 +214,7 @@ void NativeMgr::OnMouseEvent(OH_NativeXComponent *comp, void *win) {
|
|||||||
HILOG_INFO(NATIVE_TAG, "ALLAction:%{public}d",mouseEvent.action);
|
HILOG_INFO(NATIVE_TAG, "ALLAction:%{public}d",mouseEvent.action);
|
||||||
HILOG_INFO(NATIVE_TAG, "ALLTimestamp:%{public}d",mouseEvent.timestamp);
|
HILOG_INFO(NATIVE_TAG, "ALLTimestamp:%{public}d",mouseEvent.timestamp);
|
||||||
}
|
}
|
||||||
|
//鼠标滚轮缩放实现
|
||||||
|
|
||||||
//以下代码为采用按住鼠标右键不放进行Move改变Carmera的旋转视角
|
//以下代码为采用按住鼠标右键不放进行Move改变Carmera的旋转视角
|
||||||
//旋转视角分为三种模式:
|
//旋转视角分为三种模式:
|
||||||
@ -345,7 +346,7 @@ ArkUI_NodeHandle CreateNodeHandle(void* userData) {
|
|||||||
// 注册XComponent回调函数
|
// 注册XComponent回调函数
|
||||||
OH_NativeXComponent_RegisterCallback(nativeXComponent, &NativeMgr::xSurfaceTouchEventCallBack);
|
OH_NativeXComponent_RegisterCallback(nativeXComponent, &NativeMgr::xSurfaceTouchEventCallBack);
|
||||||
//注册XComponent组件鼠标回调事件
|
//注册XComponent组件鼠标回调事件
|
||||||
//OH_NativeXComponent_RegisterMouseEventCallback(nativeXComponent, &NativeMgr::xMouseEventCallBack);
|
OH_NativeXComponent_RegisterMouseEventCallback(nativeXComponent, &NativeMgr::xMouseEventCallBack);
|
||||||
// nodeAPI->registerNodeEvent(xc, NODE_ON_MOUSE, 1, &xc);
|
// nodeAPI->registerNodeEvent(xc, NODE_ON_MOUSE, 1, &xc);
|
||||||
// nodeAPI->registerNodeEvent(xc, NODE_ON_AXIS, 1, &xc);
|
// nodeAPI->registerNodeEvent(xc, NODE_ON_AXIS, 1, &xc);
|
||||||
// nodeAPI->addNodeEventReceiver(xc, [](ArkUI_NodeEvent *event) {
|
// nodeAPI->addNodeEventReceiver(xc, [](ArkUI_NodeEvent *event) {
|
||||||
|
|||||||
@ -15,13 +15,13 @@ width(0),
|
|||||||
height(0),
|
height(0),
|
||||||
v3dTri(new V3dTri),
|
v3dTri(new V3dTri),
|
||||||
v3dTriCube(new V3dTriCube),
|
v3dTriCube(new V3dTriCube),
|
||||||
v3dcr(new V3dCa),
|
v3dCamera(new V3dCamera),
|
||||||
v3dctx(new V3dCtx),
|
v3dCtx(new V3dCtx),
|
||||||
v3dogd(new V3dOGD),
|
v3dOgd(new V3dOGD),
|
||||||
v3dview(new V3dView),
|
v3dView(new V3dView),
|
||||||
v3ddrawer(new V3dDrawer),
|
v3dDrawer(new V3dDrawer),
|
||||||
v3dviewer(new V3dViewer),
|
v3dViewer(new V3dViewer),
|
||||||
v3dwin(new V3dWin)
|
v3dWin(new V3dWin)
|
||||||
{
|
{
|
||||||
width = w;
|
width = w;
|
||||||
height = h;
|
height = h;
|
||||||
@ -31,58 +31,58 @@ Render::~Render() { shapes_.clear(); }
|
|||||||
|
|
||||||
bool Render::init(EGLDisplay eglDisp,EGLContext ctx,EGLConfig eglConfig) {
|
bool Render::init(EGLDisplay eglDisp,EGLContext ctx,EGLConfig eglConfig) {
|
||||||
//初始化OpenGL
|
//初始化OpenGL
|
||||||
if (!v3dogd->InitV3dOGD(eglDisp,ctx,eglConfig)) {
|
if (!v3dOgd->InitV3dOGD(eglDisp,ctx,eglConfig)) {
|
||||||
HILOG_ERROR(NATIVE_TAG, "Init GraphicDriver Fail!");
|
HILOG_ERROR(NATIVE_TAG, "Init GraphicDriver Fail!");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
//初始化视口管理
|
//初始化视口管理
|
||||||
if (!v3dviewer->InitV3dViewer(v3dogd->graphicDriver)) {
|
if (!v3dViewer->InitV3dViewer(v3dOgd->graphicDriver)) {
|
||||||
HILOG_ERROR(NATIVE_TAG, "Init Viewer Fail!");
|
HILOG_ERROR(NATIVE_TAG, "Init Viewer Fail!");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
//初始化OCCT内部上下文
|
//初始化OCCT内部上下文
|
||||||
if (!v3dctx->InitV3dCtx(v3dviewer->viewer)) {
|
if (!v3dCtx->InitV3dCtx(v3dViewer->viewer)) {
|
||||||
HILOG_ERROR(NATIVE_TAG, "Init Ctx Fail!");
|
HILOG_ERROR(NATIVE_TAG, "Init Ctx Fail!");
|
||||||
return false;
|
return false;
|
||||||
}else{
|
}else{
|
||||||
//初始化OCCT上下文的Drawer(全局属性设置)
|
//初始化OCCT上下文的Drawer(全局属性设置)
|
||||||
v3ddrawer->InitV3dAllAspect(v3dctx->ctx);
|
v3dDrawer->InitV3dAllAspect(v3dCtx->ctx);
|
||||||
}
|
}
|
||||||
//初始化绑定Window
|
//初始化绑定Window
|
||||||
if (!v3dwin->InitV3dWin(width, height)) {
|
if (!v3dWin->InitV3dWin(width, height)) {
|
||||||
HILOG_ERROR(NATIVE_TAG, "Init Window Fail!");
|
HILOG_ERROR(NATIVE_TAG, "Init Window Fail!");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
//初始化视图
|
//初始化视图
|
||||||
if (!v3dview->InitV3dView(v3dviewer->viewer,ctx,v3dwin->win)) {
|
if (!v3dView->InitV3dView(v3dViewer->viewer,ctx,v3dWin->win)) {
|
||||||
HILOG_ERROR(NATIVE_TAG, "Init View Fail!");
|
HILOG_ERROR(NATIVE_TAG, "Init View Fail!");
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
v3dview->InitViewOption();
|
v3dView->InitViewOption();
|
||||||
}
|
}
|
||||||
if (!v3dcr->InitV3dCa(v3dview->view)) {
|
if (!v3dCamera->InitV3dCamera(v3dView->view)) {
|
||||||
HILOG_ERROR(NATIVE_TAG, "Init Camera Fail!");
|
HILOG_ERROR(NATIVE_TAG, "Init Camera Fail!");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
//初始化世界坐标系
|
//初始化世界坐标系
|
||||||
if (!v3dTri->InitV3dTri(v3dctx->ctx)) {
|
if (!v3dTri->InitV3dTri(v3dCtx->ctx)) {
|
||||||
HILOG_ERROR(NATIVE_TAG, "Init AXIS Fail!");
|
HILOG_ERROR(NATIVE_TAG, "Init AXIS Fail!");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
//初始化正方体视角切换指示器
|
//初始化正方体视角切换指示器
|
||||||
if (!v3dTriCube->InitV3dTriCube(v3dctx->ctx)) {
|
if (!v3dTriCube->InitV3dTriCube(v3dCtx->ctx)) {
|
||||||
HILOG_ERROR(NATIVE_TAG, "Init AXIS Cuba Fail!");
|
HILOG_ERROR(NATIVE_TAG, "Init AXIS Cuba Fail!");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
//InitDevText();
|
//InitDevText();
|
||||||
v3dview->ResetView();
|
v3dView->ResetView();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Render::loadModel(const std::string &filePath) {
|
bool Render::loadModel(const std::string &filePath) {
|
||||||
// 清除现有模型
|
// 清除现有模型
|
||||||
for (auto &shape : shapes_) {
|
for (auto &shape : shapes_) {
|
||||||
v3dctx->ctx->Remove(shape, false);
|
v3dCtx->ctx->Remove(shape, false);
|
||||||
}
|
}
|
||||||
shapes_.clear();
|
shapes_.clear();
|
||||||
|
|
||||||
@ -120,14 +120,14 @@ bool Render::loadModel(const std::string &filePath) {
|
|||||||
// 设置材质
|
// 设置材质
|
||||||
Handle(Prs3d_Drawer) drawer = aisShape->Attributes();
|
Handle(Prs3d_Drawer) drawer = aisShape->Attributes();
|
||||||
drawer->SetFaceBoundaryDraw(true);
|
drawer->SetFaceBoundaryDraw(true);
|
||||||
drawer->SetWireAspect(v3ddrawer->v3d_LineAspect);
|
drawer->SetWireAspect(v3dDrawer->v3d_LineAspect);
|
||||||
drawer->SetShadingAspect(v3ddrawer->v3d_ShadingAspect);
|
drawer->SetShadingAspect(v3dDrawer->v3d_ShadingAspect);
|
||||||
v3dctx->ctx->Display(aisShape, true);
|
v3dCtx->ctx->Display(aisShape, true);
|
||||||
shapes_.push_back(aisShape);
|
shapes_.push_back(aisShape);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
v3dview->view->ZFitAll();
|
v3dView->view->ZFitAll();
|
||||||
v3dview->ResetView();
|
v3dView->ResetView();
|
||||||
OH_LOG_Print(LOG_APP, LOG_ERROR, LOG_PRINT_DOMAIN, "LoadModel",
|
OH_LOG_Print(LOG_APP, LOG_ERROR, LOG_PRINT_DOMAIN, "LoadModel",
|
||||||
"Successfully loaded STEP file with %{public}d shapes", numShapes);
|
"Successfully loaded STEP file with %{public}d shapes", numShapes);
|
||||||
return true;
|
return true;
|
||||||
@ -140,28 +140,28 @@ void Render::setTranslation(float tx, float ty) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Render::render() {
|
void Render::render() {
|
||||||
if (v3dview->view.IsNull()) {
|
if (v3dView->view.IsNull()) {
|
||||||
OH_LOG_Print(LOG_APP, LOG_ERROR, LOG_PRINT_DOMAIN, "Render", "View Is Null");
|
OH_LOG_Print(LOG_APP, LOG_ERROR, LOG_PRINT_DOMAIN, "Render", "View Is Null");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
v3dview->MustBeResized();
|
v3dView->MustBeResized();
|
||||||
v3dview->Redraw();
|
v3dView->Redraw();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Render::resize(int w, int h) {
|
void Render::resize(int w, int h) {
|
||||||
HILOG_ERROR(NATIVE_TAG, "InPut Size:%{public}d,%{public}d", w, h);
|
HILOG_ERROR(NATIVE_TAG, "InPut Size:%{public}d,%{public}d", w, h);
|
||||||
v3dwin->Resize(w, h);
|
v3dWin->Resize(w, h);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Render::setRotation(float xAngle, float yAngle) { v3dcr->SetRotation(xAngle, yAngle); }
|
void Render::setRotation(float xAngle, float yAngle) { v3dCamera->SetRotation(xAngle, yAngle); }
|
||||||
|
|
||||||
void Render::setZoomLevel(float zoom) {
|
void Render::setZoomLevel(float zoom) {
|
||||||
v3dTri->SetZoomLevel(std::max(0.1f, std::min(zoom, 5.0f))); // 限制缩放范围
|
v3dTri->SetZoomLevel(std::max(0.1f, std::min(zoom, 5.0f))); // 限制缩放范围
|
||||||
}
|
}
|
||||||
void Render::setClearColor(float r, float g, float b, float a) { v3dview->SetClearColor(r, g, b, a); }
|
void Render::setClearColor(float r, float g, float b, float a) { v3dView->SetClearColor(r, g, b, a); }
|
||||||
void Render::resetView() { v3dview->ResetView(); }
|
void Render::resetView() { v3dView->ResetView(); }
|
||||||
void Render::SwitchView(std::string str) {
|
void Render::SwitchView(std::string str) {
|
||||||
v3dview->SwitchView(str);
|
v3dCamera->SwitchView(str);
|
||||||
}
|
}
|
||||||
void Render::InitDevText(){
|
void Render::InitDevText(){
|
||||||
Handle(AIS_TextLabel) aTextLabel = new AIS_TextLabel();
|
Handle(AIS_TextLabel) aTextLabel = new AIS_TextLabel();
|
||||||
@ -169,7 +169,7 @@ void Render::InitDevText(){
|
|||||||
aTextLabel->SetText(chinese_array);
|
aTextLabel->SetText(chinese_array);
|
||||||
gp_Pnt position(0-(width/3), 0-(height/3), 0.0); // 例如,在原点
|
gp_Pnt position(0-(width/3), 0-(height/3), 0.0); // 例如,在原点
|
||||||
aTextLabel->SetPosition(position);
|
aTextLabel->SetPosition(position);
|
||||||
v3dctx->ctx->Display(aTextLabel, Standard_True);
|
v3dCtx->ctx->Display(aTextLabel, Standard_True);
|
||||||
HILOG_ERROR(NATIVE_TAG, "aTextLabel字体名字:%{public}s", aTextLabel->FontName().ToCString());
|
HILOG_ERROR(NATIVE_TAG, "aTextLabel字体名字:%{public}s", aTextLabel->FontName().ToCString());
|
||||||
HILOG_ERROR(NATIVE_TAG, "aTextLabel字体名字:%{public}s", aTextLabel->Attributes()->TextAspect()->Aspect()->Font().ToCString());
|
HILOG_ERROR(NATIVE_TAG, "aTextLabel字体名字:%{public}s", aTextLabel->Attributes()->TextAspect()->Aspect()->Font().ToCString());
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
#include "../V3d/V3dTri/V3dTri.h"
|
#include "../V3d/V3dTri/V3dTri.h"
|
||||||
#include "../V3d/V3dTri/V3dTriCube.h"
|
#include "../V3d/V3dTri/V3dTriCube.h"
|
||||||
#include "../V3d/V3dCa/V3dCa.h"
|
#include "../V3d/V3dCamera/V3dCamera.h"
|
||||||
#include "../V3d/V3dCtx/V3dCtx.h"
|
#include "../V3d/V3dCtx/V3dCtx.h"
|
||||||
#include "../V3d/V3dOGD/V3dOGD.h"
|
#include "../V3d/V3dOGD/V3dOGD.h"
|
||||||
#include "../V3d/V3dWin/V3dWin.h"
|
#include "../V3d/V3dWin/V3dWin.h"
|
||||||
@ -49,13 +49,13 @@ private:
|
|||||||
int height;
|
int height;
|
||||||
V3dTri* v3dTri;
|
V3dTri* v3dTri;
|
||||||
V3dTriCube* v3dTriCube;
|
V3dTriCube* v3dTriCube;
|
||||||
V3dCa* v3dcr;
|
V3dCamera* v3dCamera;
|
||||||
V3dCtx* v3dctx;
|
V3dCtx* v3dCtx;
|
||||||
V3dOGD* v3dogd;
|
V3dOGD* v3dOgd;
|
||||||
V3dDrawer* v3ddrawer;
|
V3dDrawer* v3dDrawer;
|
||||||
V3dView* v3dview;
|
V3dView* v3dView;
|
||||||
V3dViewer* v3dviewer;
|
V3dViewer* v3dViewer;
|
||||||
V3dWin* v3dwin;
|
V3dWin* v3dWin;
|
||||||
std::vector<Handle(AIS_Shape)> shapes_;
|
std::vector<Handle(AIS_Shape)> shapes_;
|
||||||
};
|
};
|
||||||
} // namespace NativeRender
|
} // namespace NativeRender
|
||||||
|
|||||||
4
entry/src/main/cpp/NativeEGLOCCT/V3d/V3dCamera/README.md
Normal file
4
entry/src/main/cpp/NativeEGLOCCT/V3d/V3dCamera/README.md
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
V3dCamera 为相机主类型,包含相机对象,后期可以扩展多相机切换<br>
|
||||||
|
V3dAnimCamera为相机运动动画对象,可以执行多种相机动画,包括相机移动,旋转等<br>
|
||||||
|
|
||||||
|
|
||||||
@ -4,7 +4,7 @@
|
|||||||
// Node APIs are not fully supported. To solve the compilation error of the interface cannot be found,
|
// Node APIs are not fully supported. To solve the compilation error of the interface cannot be found,
|
||||||
// please include "napi/native_api.h".
|
// please include "napi/native_api.h".
|
||||||
|
|
||||||
#include "V3dCa.h"
|
#include "V3dCamera.h"
|
||||||
|
|
||||||
#ifndef NATIVE_TAG
|
#ifndef NATIVE_TAG
|
||||||
#define NATIVE_TAG "CAMERA"
|
#define NATIVE_TAG "CAMERA"
|
||||||
@ -12,10 +12,15 @@
|
|||||||
|
|
||||||
namespace NativeOpenCAX {
|
namespace NativeOpenCAX {
|
||||||
|
|
||||||
V3dCa::V3dCa() : camera(nullptr) {}
|
V3dCamera::V3dCamera() :
|
||||||
V3dCa::~V3dCa() {}
|
camera(nullptr)
|
||||||
bool V3dCa::InitV3dCa(Handle(V3d_View)& view) {
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
V3dCamera::~V3dCamera() {}
|
||||||
|
bool V3dCamera::InitV3dCamera(Handle(V3d_View)& _view) {
|
||||||
try {
|
try {
|
||||||
|
view=_view;
|
||||||
camera = new Graphic3d_Camera;
|
camera = new Graphic3d_Camera;
|
||||||
// 将角度转换为弧度并计算对应的缩放因子
|
// 将角度转换为弧度并计算对应的缩放因子
|
||||||
camera->SetFOVy(45.0);
|
camera->SetFOVy(45.0);
|
||||||
@ -30,7 +35,29 @@ bool V3dCa::InitV3dCa(Handle(V3d_View)& view) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void V3dCa::SetRotation(float xAngle, float yAngle) {
|
//切换视图
|
||||||
|
void V3dCamera::SwitchView(std::string nView) {
|
||||||
|
V3d_TypeOfOrientation tV3d;
|
||||||
|
if (nView == "CMD_VIEW_FRONT") {
|
||||||
|
tV3d = V3d_Yneg;
|
||||||
|
} else if (nView == "CMD_VIEW_TOP") {
|
||||||
|
tV3d = V3d_Zpos;
|
||||||
|
} else if (nView == "CMD_VIEW_LEFT_SIDE") {
|
||||||
|
tV3d = V3d_Xneg;
|
||||||
|
} else if (nView == "CMD_VIEW_RIGHT_SIDE") {
|
||||||
|
tV3d = V3d_Xpos;
|
||||||
|
} else if (nView == "CMD_VIEW_BOTTOM") {
|
||||||
|
tV3d = V3d_Zneg;
|
||||||
|
} else if (nView == "CMD_VIEW_REAR") {
|
||||||
|
tV3d = V3d_Ypos;
|
||||||
|
} else if (nView == "CMD_VIEW_ISO") {
|
||||||
|
tV3d = V3d_XposYnegZpos;
|
||||||
|
} else if (nView == "CMD_VIEW_DIM") {
|
||||||
|
tV3d = V3d_XposYposZpos;
|
||||||
|
}
|
||||||
|
view->SetProj(tV3d);
|
||||||
|
}
|
||||||
|
void V3dCamera::SetRotation(float xAngle, float yAngle) {
|
||||||
gp_Pnt currentEye = camera->Eye();
|
gp_Pnt currentEye = camera->Eye();
|
||||||
gp_Pnt currentCenter = camera->Center();
|
gp_Pnt currentCenter = camera->Center();
|
||||||
gp_Dir currentUp = camera->Up();
|
gp_Dir currentUp = camera->Up();
|
||||||
@ -12,14 +12,16 @@
|
|||||||
#include <gp_Quaternion.hxx>
|
#include <gp_Quaternion.hxx>
|
||||||
namespace NativeOpenCAX {
|
namespace NativeOpenCAX {
|
||||||
|
|
||||||
class V3dCa{
|
class V3dCamera{
|
||||||
public:
|
public:
|
||||||
V3dCa();
|
V3dCamera();
|
||||||
~V3dCa();
|
~V3dCamera();
|
||||||
bool InitV3dCa(Handle(V3d_View)& view);
|
bool InitV3dCamera(Handle(V3d_View)& view);
|
||||||
|
void SwitchView(std::string view);
|
||||||
void SetRotation(float xAngle, float yAngle);
|
void SetRotation(float xAngle, float yAngle);
|
||||||
public:
|
public:
|
||||||
Handle(Graphic3d_Camera) camera;
|
Handle(Graphic3d_Camera) camera;
|
||||||
|
Handle(V3d_View) view;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace NativeOpenCAX
|
} // namespace NativeOpenCAX
|
||||||
@ -76,25 +76,5 @@ void V3dView::ResetView() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void V3dView::SwitchView(std::string nView) {
|
|
||||||
V3d_TypeOfOrientation tV3d;
|
|
||||||
if (nView == "CMD_VIEW_FRONT") {
|
|
||||||
tV3d = V3d_Yneg;
|
|
||||||
} else if (nView == "CMD_VIEW_TOP") {
|
|
||||||
tV3d = V3d_Zpos;
|
|
||||||
} else if (nView == "CMD_VIEW_LEFT_SIDE") {
|
|
||||||
tV3d = V3d_Xneg;
|
|
||||||
} else if (nView == "CMD_VIEW_RIGHT_SIDE") {
|
|
||||||
tV3d = V3d_Xpos;
|
|
||||||
} else if (nView == "CMD_VIEW_BOTTOM") {
|
|
||||||
tV3d = V3d_Zneg;
|
|
||||||
} else if (nView == "CMD_VIEW_REAR") {
|
|
||||||
tV3d = V3d_Ypos;
|
|
||||||
} else if (nView == "CMD_VIEW_ISO") {
|
|
||||||
tV3d = V3d_XposYnegZpos;
|
|
||||||
} else if (nView == "CMD_VIEW_DIM") {
|
|
||||||
tV3d = V3d_XposYposZpos;
|
|
||||||
}
|
|
||||||
view->SetProj(tV3d);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ -26,7 +26,7 @@ public:
|
|||||||
void MustBeResized();
|
void MustBeResized();
|
||||||
void Redraw();
|
void Redraw();
|
||||||
void ResetView();
|
void ResetView();
|
||||||
void SwitchView(std::string view);
|
|
||||||
public:
|
public:
|
||||||
Handle(V3d_View) view;
|
Handle(V3d_View) view;
|
||||||
Quantity_Color clearColor;
|
Quantity_Color clearColor;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user