opencascade-hs 0.5.0.1 → 0.5.1.0
raw patch · 13 files changed
+218/−2 lines, 13 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ OpenCascade.BOPAlgo.BOP: addTool :: Ptr BOP -> Ptr Shape -> IO ()
+ OpenCascade.BOPAlgo.BOP: data BOP
+ OpenCascade.BOPAlgo.BOP: new :: Acquire (Ptr BOP)
+ OpenCascade.BOPAlgo.BOP: setOperation :: Ptr BOP -> Operation -> IO ()
+ OpenCascade.BOPAlgo.Builder: addArgument :: Ptr Builder -> Ptr Shape -> IO ()
+ OpenCascade.BOPAlgo.Builder: data Builder
+ OpenCascade.BOPAlgo.Builder: new :: Acquire (Ptr Builder)
+ OpenCascade.BOPAlgo.Builder: perform :: Ptr Builder -> IO ()
+ OpenCascade.BOPAlgo.Builder: setRunParallel :: Ptr Builder -> Bool -> IO ()
+ OpenCascade.BOPAlgo.Builder: shape :: Ptr Builder -> Acquire (Ptr Shape)
+ OpenCascade.BOPAlgo.Internal.Destructors: deleteBOP :: Ptr BOP -> IO ()
+ OpenCascade.BOPAlgo.Internal.Destructors: deleteBuilder :: Ptr Builder -> IO ()
+ OpenCascade.BOPAlgo.Operation: Common :: Operation
+ OpenCascade.BOPAlgo.Operation: Cut :: Operation
+ OpenCascade.BOPAlgo.Operation: Cut21 :: Operation
+ OpenCascade.BOPAlgo.Operation: Fuse :: Operation
+ OpenCascade.BOPAlgo.Operation: Section :: Operation
+ OpenCascade.BOPAlgo.Operation: Unknown :: Operation
+ OpenCascade.BOPAlgo.Operation: data Operation
+ OpenCascade.BOPAlgo.Operation: instance GHC.Classes.Eq OpenCascade.BOPAlgo.Operation.Operation
+ OpenCascade.BOPAlgo.Operation: instance GHC.Enum.Enum OpenCascade.BOPAlgo.Operation.Operation
+ OpenCascade.BOPAlgo.Operation: instance GHC.Show.Show OpenCascade.BOPAlgo.Operation.Operation
+ OpenCascade.BOPAlgo.Types: data BOP
+ OpenCascade.BOPAlgo.Types: data Builder
+ OpenCascade.BOPAlgo.Types: instance OpenCascade.Inheritance.SubTypeOf OpenCascade.BOPAlgo.Types.Builder OpenCascade.BOPAlgo.Types.BOP
Files
- CHANGELOG.md +12/−0
- cpp/hs_BOPAlgo_BOP.cpp +19/−0
- cpp/hs_BOPAlgo_BOP.h +22/−0
- cpp/hs_BOPAlgo_Builder.cpp +27/−0
- cpp/hs_BOPAlgo_Builder.h +26/−0
- cpp/hs_BRepAlgoAPI_Fuse.h +0/−1
- cpp/hs_types.h +3/−0
- opencascade-hs.cabal +10/−1
- src/OpenCascade/BOPAlgo/BOP.hs +29/−0
- src/OpenCascade/BOPAlgo/Builder.hs +39/−0
- src/OpenCascade/BOPAlgo/Internal/Destructors.hs +11/−0
- src/OpenCascade/BOPAlgo/Operation.hs +7/−0
- src/OpenCascade/BOPAlgo/Types.hs +13/−0
CHANGELOG.md view
@@ -8,10 +8,20 @@ ## Unreleased +## 0.5.1.0++### Added++- Add `OpenCascade.BOPAlgo.Builder`+- Add `OpenCascade.BOPAlgo.BOP`+- Add `OpenCascade.BOPAlgo.Operation`+ ## 0.5.0.1 ## 0.5.0.0 +### Added+ - Add `OpenCascade.BRepFilletAPI.MakeFillet` methods `reset`, `nbFaultyContours`, `faultyContour`, `nbEdges`, `edge` and `remove` - Add `OpenCascade.BRepBuilderAPI.MakeShape` method `build` - Add `OpenCascade.BRepOffsetAPI.MakePipe` constructor `fromWireShapeTrihedronModeAndForceC1`@@ -33,6 +43,8 @@ - Add `OpenCascade.Geom.Curve` methods `firstParameter` and `lastParameter` ## 0.4.0.0++### Added - Add `OpenCascade.BRepBuilderAPI.MakeVertex` - Add `OpenCascade.BRepBuilderAPI.MakeWire.vertex`
+ cpp/hs_BOPAlgo_BOP.cpp view
@@ -0,0 +1,19 @@+#include <BOPAlgo_BOP.hxx>+#include "hs_BOPAlgo_BOP.h"+++BOPAlgo_BOP * hs_new_BOPAlgo_BOP(){+ return new BOPAlgo_BOP();+}++void hs_delete_BOPAlgo_BOP(BOPAlgo_BOP * bop){+ delete bop;+}++void hs_BOPAlgo_BOP_AddTool(BOPAlgo_BOP *bop, TopoDS_Shape * tool){+ bop->AddTool(*tool);+}++void hs_BOPAlgo_BOP_SetOperation(BOPAlgo_BOP *bop, BOPAlgo_Operation operation){+ bop->SetOperation(operation);+}
+ cpp/hs_BOPAlgo_BOP.h view
@@ -0,0 +1,22 @@+#ifndef HS_BOPALGO_BOP_H+#define HS_BOPALGO_BOP_H++#include "hs_types.h"++#ifdef __cplusplus+extern "C" {+#endif++BOPAlgo_BOP * hs_new_BOPAlgo_BOP();++void hs_delete_BOPAlgo_BOP(BOPAlgo_BOP * bop);++void hs_BOPAlgo_BOP_AddTool(BOPAlgo_BOP *bop, TopoDS_Shape * tool);++void hs_BOPAlgo_BOP_SetOperation(BOPAlgo_BOP *bop, BOPAlgo_Operation operation);++#ifdef __cplusplus+}+#endif++#endif // HS_BOPALGO_BOP_H
+ cpp/hs_BOPAlgo_Builder.cpp view
@@ -0,0 +1,27 @@+#include <BOPAlgo_Builder.hxx>+#include "hs_BOPAlgo_Builder.h"++BOPAlgo_Builder * hs_new_BOPAlgo_Builder(){+ return new BOPAlgo_Builder();+}++void hs_delete_BOPAlgo_Builder(BOPAlgo_Builder * builder){+ delete builder;+}++void hs_BOPAlgo_Builder_AddArgument(BOPAlgo_Builder * builder, TopoDS_Shape * shape){+ builder->AddArgument(*shape);+}++TopoDS_Shape * hs_BOPAlgo_Builder_Shape(BOPAlgo_Builder * builder){+ return new TopoDS_Shape(builder->Shape());+}++void hs_BOPAlgo_Builder_SetRunParallel(BOPAlgo_Builder * builder, bool runParallel){+ builder->SetRunParallel(runParallel);+}++void hs_BOPAlgo_Builder_Perform(BOPAlgo_Builder * builder){+ builder->Perform();+}+
+ cpp/hs_BOPAlgo_Builder.h view
@@ -0,0 +1,26 @@+#ifndef HS_BOPALGO_BUILDER_H+#define HS_BOPALGO_BUILDER_H++#include "hs_types.h"++#ifdef __cplusplus+extern "C" {+#endif++BOPAlgo_Builder * hs_new_BOPAlgo_Builder();++void hs_delete_BOPAlgo_Builder(BOPAlgo_Builder * builder);++void hs_BOPAlgo_Builder_AddArgument(BOPAlgo_Builder * builder, TopoDS_Shape * shape);++TopoDS_Shape * hs_BOPAlgo_Builder_Shape(BOPAlgo_Builder * builder);++void hs_BOPAlgo_Builder_SetRunParallel(BOPAlgo_Builder * builder, bool runParallel);++void hs_BOPAlgo_Builder_Perform(BOPAlgo_Builder * builder);++#ifdef __cplusplus+}+#endif++#endif // HS_BOPALGO_BUILDER_H
cpp/hs_BRepAlgoAPI_Fuse.h view
@@ -1,4 +1,3 @@- #ifndef HS_BREPALGOAPI_FUSE_H #define HS_BREPALGOAPI_FUSE_H
cpp/hs_types.h view
@@ -100,6 +100,9 @@ typedef void HLRBRep_Algo; typedef void HLRBRep_HLRToShape; typedef int HLRBRep_TypeOfResultingEdge;+typedef void BOPAlgo_Builder;+typedef void BOPAlgo_BOP;+typedef int BOPAlgo_Operation; #define Handle(X) void #define ARRAY_1(X) void
opencascade-hs.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: opencascade-hs-version: 0.5.0.1+version: 0.5.1.0 synopsis: Thin Wrapper for the OpenCASCADE CAD Kernel description: Please see the README on GitHub at <https://github.com/joe-warren/opencascade-hs#readme> category: Graphics,FFI@@ -23,6 +23,8 @@ CHANGELOG.md cpp/hs_Bnd_Box.h cpp/hs_Bnd_OBB.h+ cpp/hs_BOPAlgo_BOP.h+ cpp/hs_BOPAlgo_Builder.h cpp/hs_BRep_Tool.h cpp/hs_BRepAdaptor_Curve.h cpp/hs_BRepAlgoAPI_Common.h@@ -131,6 +133,11 @@ OpenCascade.Bnd.Internal.Destructors OpenCascade.Bnd.OBB OpenCascade.Bnd.Types+ OpenCascade.BOPAlgo.BOP+ OpenCascade.BOPAlgo.Builder+ OpenCascade.BOPAlgo.Internal.Destructors+ OpenCascade.BOPAlgo.Operation+ OpenCascade.BOPAlgo.Types OpenCascade.BRep.Tool OpenCascade.BRepAdaptor OpenCascade.BRepAdaptor.Curve@@ -342,6 +349,8 @@ cxx-sources: cpp/hs_Bnd_Box.cpp cpp/hs_Bnd_OBB.cpp+ cpp/hs_BOPAlgo_BOP.cpp+ cpp/hs_BOPAlgo_Builder.cpp cpp/hs_BRep_Tool.cpp cpp/hs_BRepAdaptor_Curve.cpp cpp/hs_BRepAlgoAPI_Common.cpp
+ src/OpenCascade/BOPAlgo/BOP.hs view
@@ -0,0 +1,29 @@+{-# LANGUAGE CApiFFI #-} +module OpenCascade.BOPAlgo.BOP +( BOP+, new+, addTool+, setOperation+) where++import OpenCascade.BOPAlgo.Types+import OpenCascade.BOPAlgo.Internal.Destructors (deleteBOP)+import OpenCascade.BOPAlgo.Operation (Operation)+import qualified OpenCascade.TopoDS.Types as TopoDS++import Foreign.Ptr (Ptr)+import Data.Acquire (Acquire, mkAcquire)+import Foreign.C (CInt (..))+++foreign import capi unsafe "hs_BOPAlgo_BOP.h hs_new_BOPAlgo_BOP" rawNew :: IO (Ptr BOP)++new :: Acquire (Ptr BOP)+new = mkAcquire rawNew deleteBOP++foreign import capi unsafe "hs_BOPAlgo_BOP.h hs_BOPAlgo_BOP_AddTool" addTool :: Ptr BOP -> Ptr TopoDS.Shape -> IO ()++foreign import capi unsafe "hs_BOPAlgo_BOP.h hs_BOPAlgo_BOP_SetOperation" rawSetOperation :: Ptr BOP -> CInt -> IO ()++setOperation :: Ptr BOP -> Operation -> IO ()+setOperation bop op = rawSetOperation bop (fromIntegral . fromEnum $ op)
+ src/OpenCascade/BOPAlgo/Builder.hs view
@@ -0,0 +1,39 @@+{-# LANGUAGE CApiFFI #-} +module OpenCascade.BOPAlgo.Builder+( Builder+, new+, addArgument+, setRunParallel+, shape+, perform+) where++import OpenCascade.BOPAlgo.Types+import OpenCascade.BOPAlgo.Internal.Destructors (deleteBuilder)+import qualified OpenCascade.TopoDS.Types as TopoDS+import OpenCascade.TopoDS.Internal.Destructors (deleteShape)+import Foreign.Ptr (Ptr)+import Foreign.C (CBool (..))+import Data.Acquire (Acquire, mkAcquire)+import OpenCascade.Internal.Bool (boolToCBool)++foreign import capi unsafe "hs_BOPAlgo_Builder.h hs_new_BOPAlgo_Builder" rawNew :: IO (Ptr Builder)++new :: Acquire (Ptr Builder)+new = mkAcquire rawNew deleteBuilder++foreign import capi unsafe "hs_BOPAlgo_Builder.h hs_BOPAlgo_Builder_AddArgument" addArgument :: Ptr Builder -> Ptr TopoDS.Shape -> IO ()++foreign import capi unsafe "hs_BOPAlgo_Builder.h hs_BOPAlgo_Builder_SetRunParallel" rawSetRunParallel :: Ptr Builder -> CBool -> IO ()++setRunParallel :: Ptr Builder -> Bool -> IO ()+setRunParallel builder = rawSetRunParallel builder . boolToCBool++foreign import capi unsafe "hs_BOPAlgo_Builder.h hs_BOPAlgo_Builder_Shape" rawShape :: Ptr Builder -> IO (Ptr TopoDS.Shape)++shape :: Ptr Builder -> Acquire (Ptr TopoDS.Shape)+shape builder = mkAcquire (rawShape builder) deleteShape +++foreign import capi unsafe "hs_BOPAlgo_Builder.h hs_BOPAlgo_Builder_Perform" perform :: Ptr Builder -> IO ()+
+ src/OpenCascade/BOPAlgo/Internal/Destructors.hs view
@@ -0,0 +1,11 @@+{-# LANGUAGE CApiFFI #-}+module OpenCascade.BOPAlgo.Internal.Destructors +( deleteBuilder+, deleteBOP+) where++import OpenCascade.BOPAlgo.Types+import Foreign.Ptr++foreign import capi unsafe "hs_BOPAlgo_Builder.h hs_delete_BOPAlgo_Builder" deleteBuilder :: Ptr Builder -> IO ()+foreign import capi unsafe "hs_BOPAlgo_BOP.h hs_delete_BOPAlgo_BOP" deleteBOP :: Ptr BOP -> IO ()
+ src/OpenCascade/BOPAlgo/Operation.hs view
@@ -0,0 +1,7 @@+module OpenCascade.BOPAlgo.Operation+( Operation (..)+) where++-- this should match the enumeration in BOPAlgo_Operation+data Operation = Common | Fuse | Cut | Cut21 | Section | Unknown+ deriving (Show, Eq, Enum)
+ src/OpenCascade/BOPAlgo/Types.hs view
@@ -0,0 +1,13 @@+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE EmptyDataDecls #-}+module OpenCascade.BOPAlgo.Types+( Builder+, BOP+) where++import qualified OpenCascade.Inheritance as Inheritance++data Builder+data BOP++instance Inheritance.SubTypeOf Builder BOP