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) set(CMAKE_AUTOUIC ON)
find_package(Qt6 COMPONENTS Widgets OpenGLWidgets REQUIRED) 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 add_executable(OpenCAD
src/main.cpp src/main.cpp
@@ -24,4 +42,13 @@ add_executable(OpenCAD
resources.qrc 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; return m_plane;
} }
const TopoDS_Shape& SketchFeature::shape() const
{
return m_shape;
}
void SketchFeature::read(const QJsonObject& json) void SketchFeature::read(const QJsonObject& json)
{ {
Feature::read(json); Feature::read(json);

View File

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