86 lines
2.4 KiB
C++
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() {
|
|
}
|
|
} |