opencascade-hs 0.2.0.0 → 0.2.1.0
raw patch · 35 files changed
+455/−1 lines, 35 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ OpenCascade.Message.Internal.Destructors: deleteProgressRange :: Ptr ProgressRange -> IO ()
+ OpenCascade.Message.ProgressRange: data ProgressRange
+ OpenCascade.Message.ProgressRange: new :: Acquire (Ptr ProgressRange)
+ OpenCascade.Message.Types: data ProgressRange
+ OpenCascade.RWGltf.CafWriter: data CafWriter
+ OpenCascade.RWGltf.CafWriter: new :: String -> Bool -> Acquire (Ptr CafWriter)
+ OpenCascade.RWGltf.CafWriter: perform :: Ptr CafWriter -> Ptr (Handle Document) -> Ptr IndexedDataMapOfStringString -> Ptr ProgressRange -> IO ()
+ OpenCascade.RWGltf.Internal.Destructors: deleteCafWriter :: Ptr CafWriter -> IO ()
+ OpenCascade.RWGltf.Types: data CafWriter
+ OpenCascade.TColStd.IndexedDataMapOfStringString: data IndexedDataMapOfStringString
+ OpenCascade.TColStd.IndexedDataMapOfStringString: new :: Acquire (Ptr IndexedDataMapOfStringString)
+ OpenCascade.TColStd.Internal.Destructors: deleteIndexedDataMapOfStringString :: Ptr IndexedDataMapOfStringString -> IO ()
+ OpenCascade.TColStd.Types: data IndexedDataMapOfStringString
+ OpenCascade.TDF.Internal.Destructors: deleteLabel :: Ptr Label -> IO ()
+ OpenCascade.TDF.Types: data Label
+ OpenCascade.TDocStd.Document: data Document
+ OpenCascade.TDocStd.Document: fromStorageFormat :: String -> Acquire (Ptr (Handle Document))
+ OpenCascade.TDocStd.Document: main :: Ptr (Handle Document) -> Acquire (Ptr Label)
+ OpenCascade.TDocStd.Internal.Destructors: deleteDocumentHandle :: Ptr (Handle Document) -> IO ()
+ OpenCascade.TDocStd.Types: data Document
+ OpenCascade.XCAFDoc.DocumentTool: shapeTool :: Ptr Label -> Acquire (Ptr (Handle ShapeTool))
+ OpenCascade.XCAFDoc.Internal.Destructors: deleteShapeToolHandle :: Ptr (Handle ShapeTool) -> IO ()
+ OpenCascade.XCAFDoc.ShapeTool: addShape :: Ptr (Handle ShapeTool) -> Ptr Shape -> Bool -> Bool -> Acquire (Ptr Label)
+ OpenCascade.XCAFDoc.ShapeTool: data ShapeTool
+ OpenCascade.XCAFDoc.Types: data ShapeTool
Files
- CHANGELOG.md +12/−0
- cpp/hs_Message_ProgressRange.cpp +10/−0
- cpp/hs_Message_ProgressRange.h +18/−0
- cpp/hs_RWGltf_CafWriter.cpp +14/−0
- cpp/hs_RWGltf_CafWriter.h +20/−0
- cpp/hs_TColStd_IndexedDataMapOfStringString.cpp +10/−0
- cpp/hs_TColStd_IndexedDataMapOfStringString.h +18/−0
- cpp/hs_TDF_Label.cpp +6/−0
- cpp/hs_TDF_Label.h +16/−0
- cpp/hs_TDocStd_Document.cpp +15/−0
- cpp/hs_TDocStd_Document.h +20/−0
- cpp/hs_XCAFDoc_DocumentTool.cpp +6/−0
- cpp/hs_XCAFDoc_DocumentTool.h +16/−0
- cpp/hs_XCAFDoc_ShapeTool.cpp +10/−0
- cpp/hs_XCAFDoc_ShapeTool.h +18/−0
- cpp/hs_types.h +6/−0
- opencascade-hs.cabal +36/−1
- src/OpenCascade/Message/Internal/Destructors.hs +9/−0
- src/OpenCascade/Message/ProgressRange.hs +15/−0
- src/OpenCascade/Message/Types.hs +6/−0
- src/OpenCascade/RWGltf/CafWriter.hs +25/−0
- src/OpenCascade/RWGltf/Internal/Destructors.hs +9/−0
- src/OpenCascade/RWGltf/Types.hs +6/−0
- src/OpenCascade/TColStd/IndexedDataMapOfStringString.hs +15/−0
- src/OpenCascade/TColStd/Internal/Destructors.hs +9/−0
- src/OpenCascade/TColStd/Types.hs +6/−0
- src/OpenCascade/TDF/Internal/Destructors.hs +9/−0
- src/OpenCascade/TDF/Types.hs +6/−0
- src/OpenCascade/TDocStd/Document.hs +25/−0
- src/OpenCascade/TDocStd/Internal/Destructors.hs +8/−0
- src/OpenCascade/TDocStd/Types.hs +4/−0
- src/OpenCascade/XCAFDoc/DocumentTool.hs +16/−0
- src/OpenCascade/XCAFDoc/Internal/Destructors.hs +10/−0
- src/OpenCascade/XCAFDoc/ShapeTool.hs +20/−0
- src/OpenCascade/XCAFDoc/Types.hs +6/−0
CHANGELOG.md view
@@ -8,6 +8,18 @@ ## Unreleased +## 0.2.1.0++### Added++- Added OpenCascade.Message.ProgressRange+- Added OpenCascade.RWGltf.CafWriter+- Added OpenCascade.RWGltf.Types+- Added OpenCascade.TColStd.IndexedDataMapOfStringString+- Added OpenCascade.TDocStd.Document+- Added OpenCascade.XCAFDoc.DocumentTool+- Added OpenCascade.XCAFDoc.ShapeTool+ ## 0.2.0.0 ### Added
+ cpp/hs_Message_ProgressRange.cpp view
@@ -0,0 +1,10 @@+#include <Message_ProgressRange.hxx>+#include "hs_Message_ProgressRange.h"++Message_ProgressRange * hs_new_Message_ProgressRange(){+ return new Message_ProgressRange();+}++void hs_delete_Message_ProgressRange(Message_ProgressRange * theRange){+ delete theRange;+}
+ cpp/hs_Message_ProgressRange.h view
@@ -0,0 +1,18 @@+#ifndef HS_MESSAGE_PROGRESSRANGE_H+#define HS_MESSAGE_PROGRESSRANGE_H++#include "hs_types.h"++#ifdef __cplusplus+extern "C" {+#endif++Message_ProgressRange * hs_new_Message_ProgressRange();++void hs_delete_Message_ProgressRange(Message_ProgressRange * theRange);++#ifdef __cplusplus+}+#endif++#endif // HS_MESSAGE_PROGRESSRANGE_H
+ cpp/hs_RWGltf_CafWriter.cpp view
@@ -0,0 +1,14 @@+#include <RWGltf_CafWriter.hxx>+#include "hs_RWGltf_CafWriter.h"++RWGltf_CafWriter * hs_new_RWGltf_CafWriter(char * theFile, bool isBinary){+ return new RWGltf_CafWriter(theFile, isBinary);+}++void hs_delete_RWGltf_CafWriter(RWGltf_CafWriter * theWriter){+ delete theWriter; +}++void hs_RWGltf_CafWriter_Perform(RWGltf_CafWriter * theWriter, Handle(TDocStd_Document) * theDocument, TColStd_IndexedDataMapOfStringString * theFileInfo, Message_ProgressRange * theProgress){+ theWriter->Perform(*theDocument, *theFileInfo, *theProgress);+}
+ cpp/hs_RWGltf_CafWriter.h view
@@ -0,0 +1,20 @@+#ifndef HS_RWGLTF_CAFWRITER_H+#define HS_RWGLTF_CAFWRITER_H++#include "hs_types.h"++#ifdef __cplusplus+extern "C" {+#endif++RWGltf_CafWriter * hs_new_RWGltf_CafWriter(char * theFile, bool isBinary);++void hs_delete_RWGltf_CafWriter(RWGltf_CafWriter * theWriter);++void hs_RWGltf_CafWriter_Perform(RWGltf_CafWriter * theWriter, Handle(TDocStd_Document) * theDocument, TColStd_IndexedDataMapOfStringString * theFileInfo, Message_ProgressRange * theProgress);++#ifdef __cplusplus+}+#endif++#endif // HS_RWGLTF_CAFWRITER_H
+ cpp/hs_TColStd_IndexedDataMapOfStringString.cpp view
@@ -0,0 +1,10 @@+#include <TColStd_IndexedDataMapOfStringString.hxx>+#include "hs_TColStd_IndexedDataMapOfStringString.h"++TColStd_IndexedDataMapOfStringString * hs_new_TColStd_IndexedDataMapOfStringString(){+ return new TColStd_IndexedDataMapOfStringString();+}++void hs_delete_TColStd_IndexedDataMapOfStringString(TColStd_IndexedDataMapOfStringString * theMap){+ delete theMap;+}
+ cpp/hs_TColStd_IndexedDataMapOfStringString.h view
@@ -0,0 +1,18 @@+#ifndef HS_TCOLSTD_INDEXEDDATAMAPOFSTRINGSTRING_H+#define HS_TCOLSTD_INDEXEDDATAMAPOFSTRINGSTRING_H++#include "hs_types.h"++#ifdef __cplusplus+extern "C" {+#endif++TColStd_IndexedDataMapOfStringString * hs_new_TColStd_IndexedDataMapOfStringString();++void hs_delete_TColStd_IndexedDataMapOfStringString(TColStd_IndexedDataMapOfStringString * theMap);++#ifdef __cplusplus+}+#endif++#endif // HS_TCOLSTD_INDEXEDDATAMAPOFSTRINGSTRING_H
+ cpp/hs_TDF_Label.cpp view
@@ -0,0 +1,6 @@+#include <TDF_Label.hxx>+#include "hs_TDF_Label.h"++void hs_delete_TDF_Label(TDF_Label * theLabel){+ delete theLabel;+}
+ cpp/hs_TDF_Label.h view
@@ -0,0 +1,16 @@+#ifndef HS_TDF_LABEL_H+#define HS_TDF_LABEL_H++#include "hs_types.h"++#ifdef __cplusplus+extern "C" {+#endif++void hs_delete_TDF_Label(TDF_Label * theLabel);++#ifdef __cplusplus+}+#endif++#endif // HS_TDF_LABEL_H
+ cpp/hs_TDocStd_Document.cpp view
@@ -0,0 +1,15 @@+#include <TDocStd_Document.hxx>+#include <XCAFDoc_ShapeTool.hxx>+#include "hs_TDocStd_Document.h"++Handle(TDocStd_Document) * hs_new_TDocStd_Document(char * storageFormat){+ return new opencascade::handle<TDocStd_Document>(new TDocStd_Document(storageFormat));+}++void hs_delete_TDocStd_Document(Handle(TDocStd_Document) * theDocument){+ delete theDocument;+}++TDF_Label * hs_TDocStd_Document_main(Handle(TDocStd_Document) *theDocument){+ return new TDF_Label(theDocument->get()->Main());+}
+ cpp/hs_TDocStd_Document.h view
@@ -0,0 +1,20 @@+#ifndef HS_TDOCSTD_DOCUMENT_H+#define HS_TDOCSTD_DOCUMENT_H++#include "hs_types.h"++#ifdef __cplusplus+extern "C" {+#endif++Handle(TDocStd_Document) * hs_new_TDocStd_Document(char * storageFormat);++void hs_delete_TDocStd_Document(Handle(TDocStd_Document) * theDocument);++TDF_Label * hs_TDocStd_Document_main(Handle(TDocStd_Document) *theDocument);++#ifdef __cplusplus+}+#endif++#endif // HS_TDOCSTD_DOCUMENT_H
+ cpp/hs_XCAFDoc_DocumentTool.cpp view
@@ -0,0 +1,6 @@+#include <XCAFDoc_DocumentTool.hxx>+#include "hs_XCAFDoc_DocumentTool.h"++Handle (XCAFDoc_ShapeTool) * hs_XCAFDoc_DocumentTool_shapeTool(TDF_Label * label){+ return new opencascade::handle<XCAFDoc_ShapeTool>(XCAFDoc_DocumentTool::ShapeTool(*label));+}
+ cpp/hs_XCAFDoc_DocumentTool.h view
@@ -0,0 +1,16 @@+#ifndef HS_XCAFDOC_DOCUMENTTOOL_H+#define HS_XCAFDOC_DOCUMENTTOOL_H++#include "hs_types.h"++#ifdef __cplusplus+extern "C" {+#endif++Handle (XCAFDoc_ShapeTool) * hs_XCAFDoc_DocumentTool_shapeTool(TDF_Label * label);++#ifdef __cplusplus+}+#endif++#endif // HS_XCAFDOC_DOCUMENTTOOL_H
+ cpp/hs_XCAFDoc_ShapeTool.cpp view
@@ -0,0 +1,10 @@+#include <XCAFDoc_ShapeTool.hxx>+#include "hs_XCAFDoc_ShapeTool.h"++void hs_delete_XCAFDoc_ShapeTool(Handle(XCAFDoc_ShapeTool) * shapeTool){+ delete shapeTool;+}++TDF_Label * hs_XCAFDoc_ShapeTool_addShape(Handle(XCAFDoc_ShapeTool) *shapeTool, TopoDS_Shape *theShape, bool makeAssembly, bool makePrepare){+ return new TDF_Label(shapeTool->get()->AddShape(*theShape, makeAssembly, makePrepare));+}
+ cpp/hs_XCAFDoc_ShapeTool.h view
@@ -0,0 +1,18 @@+#ifndef HS_XCAFDOC_SHAPETOOL_H+#define HS_XCAFDOC_SHAPETOOL_H++#include "hs_types.h"++#ifdef __cplusplus+extern "C" {+#endif++void hs_delete_XCAFDoc_ShapeTool(Handle(XCAFDoc_ShapeTool) * shapeTool);++TDF_Label * hs_XCAFDoc_ShapeTool_addShape(Handle(XCAFDoc_ShapeTool) *shapeTool, TopoDS_Shape *theShape, bool makeAssembly, bool makePrepare);++#ifdef __cplusplus+}+#endif++#endif // HS_XCAFDOC_SHAPETOOL_H
cpp/hs_types.h view
@@ -66,6 +66,12 @@ typedef void GProp_GProps; typedef void Bnd_Box; typedef void Bnd_OBB;+typedef void Message_ProgressRange;+typedef void RWGltf_CafWriter;+typedef void TColStd_IndexedDataMapOfStringString;+typedef void TDF_Label;+typedef void TDocStd_Document;+typedef void XCAFDoc_ShapeTool; #define Handle(X) void #define ARRAY_1(X) void #else // __cplusplus
opencascade-hs.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: opencascade-hs-version: 0.2.0.0+version: 0.2.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@@ -70,9 +70,14 @@ cpp/hs_gp_Vec2d.h cpp/hs_gp_XYZ.h cpp/hs_GProp_GProps.h+ cpp/hs_Message_ProgressRange.h cpp/hs_NCollection_Array1.h+ cpp/hs_RWGltf_CafWriter.h cpp/hs_STEPControl_Writer.h cpp/hs_StlAPI_Writer.h+ cpp/hs_TColStd_IndexedDataMapOfStringString.h+ cpp/hs_TDF_Label.h+ cpp/hs_TDocStd_Document.h cpp/hs_TopExp_Explorer.h cpp/hs_TopLoc_Location.h cpp/hs_TopoDS_Compound.h@@ -85,6 +90,8 @@ cpp/hs_TopoDS_Vertex.h cpp/hs_TopoDS_Wire.h cpp/hs_types.h+ cpp/hs_XCAFDoc_DocumentTool.h+ cpp/hs_XCAFDoc_ShapeTool.h source-repository head type: git@@ -180,10 +187,16 @@ OpenCascade.IFSelect.ReturnStatus OpenCascade.Inheritance OpenCascade.Internal.Bool+ OpenCascade.Message.Internal.Destructors+ OpenCascade.Message.ProgressRange+ OpenCascade.Message.Types OpenCascade.NCollection OpenCascade.NCollection.Array1 OpenCascade.NCollection.Internal.Destructors OpenCascade.NCollection.Types+ OpenCascade.RWGltf.CafWriter+ OpenCascade.RWGltf.Internal.Destructors+ OpenCascade.RWGltf.Types OpenCascade.STEPControl OpenCascade.STEPControl.Internal.Destructors OpenCascade.STEPControl.StepModelType@@ -193,6 +206,14 @@ OpenCascade.StlAPI.Internal.Destructors OpenCascade.StlAPI.Types OpenCascade.StlAPI.Writer+ OpenCascade.TColStd.IndexedDataMapOfStringString+ OpenCascade.TColStd.Internal.Destructors+ OpenCascade.TColStd.Types+ OpenCascade.TDF.Internal.Destructors+ OpenCascade.TDF.Types+ OpenCascade.TDocStd.Document+ OpenCascade.TDocStd.Internal.Destructors+ OpenCascade.TDocStd.Types OpenCascade.TopAbs OpenCascade.TopAbs.Orientation OpenCascade.TopAbs.ShapeEnum@@ -218,6 +239,10 @@ OpenCascade.TopoDS.Wire OpenCascade.TopTools OpenCascade.TopTools.Types+ OpenCascade.XCAFDoc.DocumentTool+ OpenCascade.XCAFDoc.Internal.Destructors+ OpenCascade.XCAFDoc.ShapeTool+ OpenCascade.XCAFDoc.Types other-modules: Paths_opencascade_hs autogen-modules:@@ -279,9 +304,14 @@ cpp/hs_gp_Vec2d.cpp cpp/hs_gp_XYZ.cpp cpp/hs_GProp_GProps.cpp+ cpp/hs_Message_ProgressRange.cpp cpp/hs_NCollection_Array1.cpp+ cpp/hs_RWGltf_CafWriter.cpp cpp/hs_STEPControl_Writer.cpp cpp/hs_StlAPI_Writer.cpp+ cpp/hs_TColStd_IndexedDataMapOfStringString.cpp+ cpp/hs_TDF_Label.cpp+ cpp/hs_TDocStd_Document.cpp cpp/hs_TopExp_Explorer.cpp cpp/hs_TopLoc_Location.cpp cpp/hs_TopoDS_Compound.cpp@@ -293,6 +323,8 @@ cpp/hs_TopoDS_Solid.cpp cpp/hs_TopoDS_Vertex.cpp cpp/hs_TopoDS_Wire.cpp+ cpp/hs_XCAFDoc_DocumentTool.cpp+ cpp/hs_XCAFDoc_ShapeTool.cpp extra-libraries: stdc++ TKGeomBase@@ -312,6 +344,9 @@ TKSTEP TKV3d TKMesh+ TKRWMesh+ TKLCAF+ TKXCAF TKService build-depends: base >=4.7 && <5
+ src/OpenCascade/Message/Internal/Destructors.hs view
@@ -0,0 +1,9 @@+{-# LANGUAGE CApiFFI #-}+module OpenCascade.Message.Internal.Destructors+( deleteProgressRange+) where++import OpenCascade.Message.Types+import Foreign.Ptr ++foreign import capi unsafe "hs_Message_ProgressRange.h hs_delete_Message_ProgressRange" deleteProgressRange :: Ptr ProgressRange -> IO ()
+ src/OpenCascade/Message/ProgressRange.hs view
@@ -0,0 +1,15 @@+{-# LANGUAGE CApiFFI #-}+module OpenCascade.Message.ProgressRange+( ProgressRange+, new+) where++import OpenCascade.Message.Types (ProgressRange)+import OpenCascade.Message.Internal.Destructors (deleteProgressRange)+import Foreign.Ptr (Ptr)+import Data.Acquire (Acquire, mkAcquire)++foreign import capi unsafe "hs_Message_ProgressRange.h hs_new_Message_ProgressRange" rawNew :: IO (Ptr ProgressRange)++new :: Acquire (Ptr ProgressRange)+new = mkAcquire rawNew deleteProgressRange
+ src/OpenCascade/Message/Types.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE EmptyDataDecls #-}+module OpenCascade.Message.Types+( ProgressRange+) where++data ProgressRange
+ src/OpenCascade/RWGltf/CafWriter.hs view
@@ -0,0 +1,25 @@+{-# LANGUAGE CApiFFI #-}+module OpenCascade.RWGltf.CafWriter+( CafWriter+, new+, perform+) where++import OpenCascade.RWGltf.Types (CafWriter)+import OpenCascade.RWGltf.Internal.Destructors (deleteCafWriter)+import Foreign.Ptr (Ptr)+import Foreign.C.String (CString, withCString)+import Foreign.C (CBool (..))+import Data.Acquire (Acquire, mkAcquire)+import OpenCascade.Internal.Bool (boolToCBool)+import OpenCascade.Handle (Handle)+import qualified OpenCascade.TDocStd.Types as TDocStd+import qualified OpenCascade.TColStd.Types as TColStd+import qualified OpenCascade.Message.Types as Message++foreign import capi unsafe "hs_RWGltf_CafWriter.h hs_new_RWGltf_CafWriter" rawNew :: CString -> CBool -> IO (Ptr CafWriter)++new :: String -> Bool -> Acquire (Ptr CafWriter)+new filepath binary = mkAcquire (withCString filepath $ \str -> rawNew str (boolToCBool binary)) deleteCafWriter++foreign import capi unsafe "hs_RWGltf_CafWriter.h hs_RWGltf_CafWriter_Perform" perform :: Ptr CafWriter -> Ptr (Handle TDocStd.Document) -> Ptr (TColStd.IndexedDataMapOfStringString) -> Ptr (Message.ProgressRange) -> IO ()
+ src/OpenCascade/RWGltf/Internal/Destructors.hs view
@@ -0,0 +1,9 @@+{-# LANGUAGE CApiFFI #-}+module OpenCascade.RWGltf.Internal.Destructors+( deleteCafWriter+) where++import OpenCascade.RWGltf.Types+import Foreign.Ptr ++foreign import capi unsafe "hs_RWGltf_CafWriter.h hs_delete_RWGltf_CafWriter" deleteCafWriter :: Ptr CafWriter -> IO ()
+ src/OpenCascade/RWGltf/Types.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE EmptyDataDecls #-}+module OpenCascade.RWGltf.Types+( CafWriter+) where++data CafWriter
+ src/OpenCascade/TColStd/IndexedDataMapOfStringString.hs view
@@ -0,0 +1,15 @@+{-# LANGUAGE CApiFFI #-}+module OpenCascade.TColStd.IndexedDataMapOfStringString+( IndexedDataMapOfStringString+, new+) where++import OpenCascade.TColStd.Types (IndexedDataMapOfStringString)+import OpenCascade.TColStd.Internal.Destructors (deleteIndexedDataMapOfStringString)+import Foreign.Ptr (Ptr)+import Data.Acquire (Acquire, mkAcquire)++foreign import capi unsafe "hs_TColStd_IndexedDataMapOfStringString.h hs_new_TColStd_IndexedDataMapOfStringString" rawNew :: IO (Ptr IndexedDataMapOfStringString)++new :: Acquire (Ptr IndexedDataMapOfStringString)+new = mkAcquire rawNew deleteIndexedDataMapOfStringString
+ src/OpenCascade/TColStd/Internal/Destructors.hs view
@@ -0,0 +1,9 @@+{-# LANGUAGE CApiFFI #-}+module OpenCascade.TColStd.Internal.Destructors+( deleteIndexedDataMapOfStringString+) where++import OpenCascade.TColStd.Types+import Foreign.Ptr ++foreign import capi unsafe "hs_TColStd_IndexedDataMapOfStringString.h hs_delete_TColStd_IndexedDataMapOfStringString" deleteIndexedDataMapOfStringString :: Ptr (IndexedDataMapOfStringString) -> IO ()
+ src/OpenCascade/TColStd/Types.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE EmptyDataDecls #-}+module OpenCascade.TColStd.Types+( IndexedDataMapOfStringString+) where++data IndexedDataMapOfStringString
+ src/OpenCascade/TDF/Internal/Destructors.hs view
@@ -0,0 +1,9 @@+{-# LANGUAGE CApiFFI #-}+module OpenCascade.TDF.Internal.Destructors +( deleteLabel+) where+import OpenCascade.TDF.Types +import Foreign.Ptr (Ptr)+++foreign import capi unsafe "hs_TDF_Label.h hs_delete_TDF_Label" deleteLabel :: Ptr Label -> IO ()
+ src/OpenCascade/TDF/Types.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE EmptyDataDecls #-}+module OpenCascade.TDF.Types +( Label+) where++data Label
+ src/OpenCascade/TDocStd/Document.hs view
@@ -0,0 +1,25 @@+{-# LANGUAGE CApiFFI #-}+module OpenCascade.TDocStd.Document +( Document+, fromStorageFormat+, main +) where++import OpenCascade.TDocStd.Types (Document)+import OpenCascade.TDocStd.Internal.Destructors (deleteDocumentHandle)+import OpenCascade.TDF.Types (Label)+import OpenCascade.TDF.Internal.Destructors (deleteLabel)+import OpenCascade.Handle (Handle)+import Data.Acquire (Acquire, mkAcquire)+import Foreign.Ptr (Ptr)+import Foreign.C.String (CString, withCString)++foreign import capi unsafe "hs_TDocStd_Document.h hs_new_TDocStd_Document" rawNew :: CString -> IO (Ptr (Handle Document))++fromStorageFormat :: String -> Acquire (Ptr (Handle Document))+fromStorageFormat fmt = mkAcquire (withCString fmt rawNew) deleteDocumentHandle++foreign import capi unsafe "hs_TDocStd_Document.h hs_TDocStd_Document_main" rawMain :: Ptr (Handle Document) -> IO (Ptr Label)++main :: Ptr (Handle Document) -> Acquire (Ptr Label)+main doc = mkAcquire (rawMain doc) deleteLabel
+ src/OpenCascade/TDocStd/Internal/Destructors.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE CApiFFI #-}+module OpenCascade.TDocStd.Internal.Destructors (deleteDocumentHandle) where++import OpenCascade.Handle (Handle)+import OpenCascade.TDocStd.Types (Document)+import Foreign.Ptr (Ptr)++foreign import capi unsafe "hs_TDocStd_Document.h hs_delete_TDocStd_Document" deleteDocumentHandle :: Ptr (Handle Document) -> IO ()
+ src/OpenCascade/TDocStd/Types.hs view
@@ -0,0 +1,4 @@+{-# LANGUAGE EmptyDataDecls #-}+module OpenCascade.TDocStd.Types (Document) where++data Document
+ src/OpenCascade/XCAFDoc/DocumentTool.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE CApiFFI #-}+module OpenCascade.XCAFDoc.DocumentTool+( shapeTool+) where++import OpenCascade.XCAFDoc.Types (ShapeTool)+import OpenCascade.XCAFDoc.Internal.Destructors (deleteShapeToolHandle)+import OpenCascade.TDF.Types (Label)+import OpenCascade.Handle (Handle)+import Foreign.Ptr (Ptr)+import Data.Acquire (Acquire, mkAcquire)++foreign import capi unsafe "hs_XCAFDoc_DocumentTool.h hs_XCAFDoc_DocumentTool_shapeTool" rawShapeTool :: Ptr Label -> IO (Ptr (Handle ShapeTool))++shapeTool :: Ptr Label -> Acquire (Ptr (Handle ShapeTool))+shapeTool label = mkAcquire (rawShapeTool label) deleteShapeToolHandle
+ src/OpenCascade/XCAFDoc/Internal/Destructors.hs view
@@ -0,0 +1,10 @@+{-# LANGUAGE CApiFFI #-}+module OpenCascade.XCAFDoc.Internal.Destructors +( deleteShapeToolHandle +) where++import OpenCascade.XCAFDoc.Types+import OpenCascade.Handle+import Foreign.Ptr ++foreign import capi unsafe "hs_XCAFDoc_ShapeTool.h hs_delete_XCAFDoc_ShapeTool" deleteShapeToolHandle :: Ptr (Handle ShapeTool) -> IO ()
+ src/OpenCascade/XCAFDoc/ShapeTool.hs view
@@ -0,0 +1,20 @@+{-# LANGUAGE CApiFFI #-}+module OpenCascade.XCAFDoc.ShapeTool+( ShapeTool+, addShape+) where++import OpenCascade.XCAFDoc.Types (ShapeTool)+import qualified OpenCascade.TopoDS.Types as TopoDS+import OpenCascade.Handle (Handle)+import OpenCascade.TDF.Types (Label)+import OpenCascade.TDF.Internal.Destructors (deleteLabel)+import OpenCascade.Internal.Bool (boolToCBool)+import Data.Acquire (Acquire, mkAcquire)+import Foreign.C (CBool (..))+import Foreign.Ptr (Ptr)++foreign import capi unsafe "hs_XCAFDoc_ShapeTool.h hs_XCAFDoc_ShapeTool_addShape" rawAddShape :: Ptr (Handle ShapeTool) -> Ptr TopoDS.Shape -> CBool -> CBool -> IO (Ptr Label)++addShape :: Ptr (Handle ShapeTool) -> Ptr TopoDS.Shape -> Bool -> Bool -> Acquire (Ptr Label)+addShape tool shape makeAssembly makePrepare = mkAcquire (rawAddShape tool shape (boolToCBool makeAssembly) (boolToCBool makePrepare)) deleteLabel
+ src/OpenCascade/XCAFDoc/Types.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE EmptyDataDecls #-}+module OpenCascade.XCAFDoc.Types +( ShapeTool+) where++data ShapeTool