OpenCAX/entry/src/main/cpp/NativeEGLOCCT/V3d/V3dDrawer/V3dDrawer.cpp
2026-03-30 21:53:34 +08:00

86 lines
2.4 KiB
C++

//
// Created on 2026/3/30.
//
// Node APIs are not fully supported. To solve the compilation error of the interface cannot be found,
// please include "napi/native_api.h".
#ifndef NATIVE_TAG
#define NATIVE_TAG "V3DDRAWER"
#endif
#include "V3dDrawer.h"
namespace NativeOpenCAX {
V3dDrawer::V3dDrawer() :
drawer(nullptr),
v3d_IsoAspect(nullptr),
v3d_LineAspect(nullptr),
v3d_TextAspect(nullptr),
v3d_ShadingAspect(nullptr),
v3d_PlaneAspect(nullptr),
v3d_ArrowAspect(nullptr),
v3d_DatumAspect(nullptr),
v3d_DimAspect(nullptr)
{
}
V3dDrawer::~V3dDrawer() {}
bool V3dDrawer::InitV3dAllAspect(Handle(AIS_InteractiveContext)& ctx) {
try {
drawer=ctx->DefaultDrawer();
v3d_IsoAspect=drawer->UIsoAspect();
v3d_LineAspect=drawer->LineAspect();
v3d_TextAspect=drawer->TextAspect();
v3d_ShadingAspect=drawer->ShadingAspect();
v3d_PlaneAspect=drawer->PlaneAspect();
v3d_ArrowAspect=drawer->ArrowAspect();
v3d_DatumAspect=drawer->DatumAspect();
v3d_DimAspect=drawer->DimensionAspect();
InitV3dIsoAspectOpts();
InitV3dLineAspectOpts();
InitV3dTextAspectOpts();
InitV3dShadingAspectOpts();
InitV3dPlaneAspectOpts();
InitV3dArrowAspectOpts();
InitV3dDatumAspectOpts();
InitV3dDimAspectOpts();
HILOG_INFO(NATIVE_TAG, "InitV3dDrawer Done");
return true;
} catch (std::exception &e) {
HILOG_INFO(NATIVE_TAG, "InitV3dDrawer Fail:%{public}d", e.what());
return false;
}
}
void V3dDrawer::InitV3dDrawer(){
//所有面的边界线
drawer->SetFaceBoundaryDraw(true);
}
void V3dDrawer::InitV3dIsoAspectOpts() {
v3d_IsoAspect->SetWidth(1.0);
}
void V3dDrawer::InitV3dLineAspectOpts() {
//线宽
v3d_LineAspect->SetWidth(5.0);
//线颜色
v3d_LineAspect->SetColor(Quantity_NOC_BLACK);
//线型
v3d_LineAspect->SetTypeOfLine(Aspect_TOL_DOTDASH);
}
void V3dDrawer::InitV3dTextAspectOpts() {
v3d_TextAspect->SetFont("HarmonyOS Sans");
v3d_TextAspect->SetHeight(35);
}
void V3dDrawer::InitV3dShadingAspectOpts() {
v3d_ShadingAspect->SetColor(Quantity_NOC_YELLOW);
v3d_ShadingAspect->SetMaterial(Graphic3d_NOM_PLASTIC);
}
void V3dDrawer::InitV3dPlaneAspectOpts() {
}
void V3dDrawer::InitV3dArrowAspectOpts() {
}
void V3dDrawer::InitV3dDatumAspectOpts() {
}
void V3dDrawer::InitV3dDimAspectOpts() {
}
}