// // 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() { } }