Integrade OpenCASCADE

This commit is contained in:
2026-02-13 20:59:06 -07:00
parent 3543604e79
commit f46590219a
3 changed files with 37 additions and 1 deletions

View File

@@ -9,6 +9,24 @@ set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
find_package(Qt6 COMPONENTS Widgets OpenGLWidgets REQUIRED)
find_package(TBB REQUIRED)
find_package(OpenCASCADE REQUIRED
COMPONENTS
FoundationClasses
ModelingData
ModelingAlgorithms
Visualization
)
# Workaround for Debian's OpenCASCADE package not setting INCLUDE_DIRS correctly
if(NOT OpenCASCADE_INCLUDE_DIRS)
set(OpenCASCADE_INCLUDE_DIRS "/usr/include/opencascade")
message(STATUS "OpenCASCADE_INCLUDE_DIRS was not set. Forcing to /usr/include/opencascade")
endif()
message(STATUS "OpenCASCADE_INCLUDE_DIRS: ${OpenCASCADE_INCLUDE_DIRS}")
message(STATUS "OpenCASCADE_LIBRARIES: ${OpenCASCADE_LIBRARIES}")
add_executable(OpenCAD
src/main.cpp
@@ -24,4 +42,13 @@ add_executable(OpenCAD
resources.qrc
)
target_link_libraries(OpenCAD PRIVATE Qt6::Widgets Qt6::OpenGLWidgets)
target_include_directories(OpenCAD PRIVATE ${OpenCASCADE_INCLUDE_DIRS})
target_link_libraries(OpenCAD PRIVATE
Qt6::Widgets
Qt6::OpenGLWidgets
${OpenCASCADE_FoundationClasses_LIBRARIES}
${OpenCASCADE_ModelingData_LIBRARIES}
${OpenCASCADE_ModelingAlgorithms_LIBRARIES}
${OpenCASCADE_Visualization_LIBRARIES}
TBB::tbb
)

View File

@@ -20,6 +20,11 @@ SketchFeature::SketchPlane SketchFeature::plane() const
return m_plane;
}
const TopoDS_Shape& SketchFeature::shape() const
{
return m_shape;
}
void SketchFeature::read(const QJsonObject& json)
{
Feature::read(json);

View File

@@ -1,6 +1,7 @@
#ifndef SKETCHFEATURE_H
#define SKETCHFEATURE_H
#include <TopoDS_Shape.hxx>
#include "Feature.h"
class SketchFeature : public Feature
@@ -19,11 +20,14 @@ public:
void setPlane(SketchPlane plane);
SketchPlane plane() const;
const TopoDS_Shape& shape() const;
void read(const QJsonObject &json) override;
void write(QJsonObject &json) const override;
private:
SketchPlane m_plane;
TopoDS_Shape m_shape;
};
#endif // SKETCHFEATURE_H