{-# LANGUAGE CApiFFI #-}
module OpenCascade.BRepBuilderAPI.MakeEdge
( fromVertices
, fromPnts
, fromCurve
, fromCurveAndParameters
, fromCurveAndVertices
, fromCurveAndPnts
, fromCurveVerticesAndParameters
, fromCurvePntsAndParameters
) where
import OpenCascade.TopoDS.Internal.Destructors as TopoDS.Destructors
import qualified OpenCascade.TopoDS as TopoDS
import qualified OpenCascade.GP as GP
import qualified OpenCascade.Geom as Geom
import OpenCascade.Handle
import OpenCascade.Inheritance
import Foreign.C
import Foreign.Ptr
import Data.Acquire
foreign import capi unsafe "hs_BRepBuilderAPI_MakeEdge.h hs_BRepBuilderAPI_MakeEdge_fromVertices" rawFromVertices :: Ptr TopoDS.Vertex -> Ptr TopoDS.Vertex -> IO (Ptr TopoDS.Edge)
fromVertices :: Ptr TopoDS.Vertex -> Ptr TopoDS.Vertex -> Acquire (Ptr TopoDS.Edge)
fromVertices :: Ptr Vertex -> Ptr Vertex -> Acquire (Ptr Edge)
fromVertices Ptr Vertex
start Ptr Vertex
end = IO (Ptr Edge) -> (Ptr Edge -> IO ()) -> Acquire (Ptr Edge)
forall a. IO a -> (a -> IO ()) -> Acquire a
mkAcquire (Ptr Vertex -> Ptr Vertex -> IO (Ptr Edge)
rawFromVertices Ptr Vertex
start Ptr Vertex
end) (Ptr Shape -> IO ()
TopoDS.Destructors.deleteShape (Ptr Shape -> IO ())
-> (Ptr Edge -> Ptr Shape) -> Ptr Edge -> IO ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Ptr Edge -> Ptr Shape
forall a b. SubTypeOf a b => Ptr b -> Ptr a
upcast)
foreign import capi unsafe "hs_BRepBuilderAPI_MakeEdge.h hs_BRepBuilderAPI_MakeEdge_fromPnts" rawFromPnts :: Ptr GP.Pnt -> Ptr GP.Pnt -> IO (Ptr TopoDS.Edge)
fromPnts :: Ptr GP.Pnt -> Ptr GP.Pnt -> Acquire (Ptr TopoDS.Edge)
fromPnts :: Ptr Pnt -> Ptr Pnt -> Acquire (Ptr Edge)
fromPnts Ptr Pnt
start Ptr Pnt
end = IO (Ptr Edge) -> (Ptr Edge -> IO ()) -> Acquire (Ptr Edge)
forall a. IO a -> (a -> IO ()) -> Acquire a
mkAcquire (Ptr Pnt -> Ptr Pnt -> IO (Ptr Edge)
rawFromPnts Ptr Pnt
start Ptr Pnt
end) (Ptr Shape -> IO ()
TopoDS.Destructors.deleteShape (Ptr Shape -> IO ())
-> (Ptr Edge -> Ptr Shape) -> Ptr Edge -> IO ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Ptr Edge -> Ptr Shape
forall a b. SubTypeOf a b => Ptr b -> Ptr a
upcast)
foreign import capi unsafe "hs_BRepBuilderAPI_MakeEdge.h hs_BRepBuilderAPI_MakeEdge_fromCurve" rawFromCurve :: Ptr (Handle Geom.Curve) -> IO (Ptr TopoDS.Edge)
fromCurve :: Ptr (Handle Geom.Curve) -> Acquire (Ptr TopoDS.Edge)
fromCurve :: Ptr (Handle Curve) -> Acquire (Ptr Edge)
fromCurve Ptr (Handle Curve)
curve = IO (Ptr Edge) -> (Ptr Edge -> IO ()) -> Acquire (Ptr Edge)
forall a. IO a -> (a -> IO ()) -> Acquire a
mkAcquire (Ptr (Handle Curve) -> IO (Ptr Edge)
rawFromCurve Ptr (Handle Curve)
curve) (Ptr Shape -> IO ()
TopoDS.Destructors.deleteShape (Ptr Shape -> IO ())
-> (Ptr Edge -> Ptr Shape) -> Ptr Edge -> IO ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Ptr Edge -> Ptr Shape
forall a b. SubTypeOf a b => Ptr b -> Ptr a
upcast)
foreign import capi unsafe "hs_BRepBuilderAPI_MakeEdge.h hs_BRepBuilderAPI_MakeEdge_fromCurveAndParameters" rawFromCurveAndParameters :: Ptr (Handle Geom.Curve) -> CDouble -> CDouble -> IO (Ptr TopoDS.Edge)
fromCurveAndParameters :: Ptr (Handle Geom.Curve) -> Double -> Double -> Acquire (Ptr TopoDS.Edge)
fromCurveAndParameters :: Ptr (Handle Curve) -> Double -> Double -> Acquire (Ptr Edge)
fromCurveAndParameters Ptr (Handle Curve)
curve Double
p1 Double
p2 = IO (Ptr Edge) -> (Ptr Edge -> IO ()) -> Acquire (Ptr Edge)
forall a. IO a -> (a -> IO ()) -> Acquire a
mkAcquire (Ptr (Handle Curve) -> CDouble -> CDouble -> IO (Ptr Edge)
rawFromCurveAndParameters Ptr (Handle Curve)
curve (Double -> CDouble
CDouble Double
p1) (Double -> CDouble
CDouble Double
p2)) (Ptr Shape -> IO ()
TopoDS.Destructors.deleteShape (Ptr Shape -> IO ())
-> (Ptr Edge -> Ptr Shape) -> Ptr Edge -> IO ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Ptr Edge -> Ptr Shape
forall a b. SubTypeOf a b => Ptr b -> Ptr a
upcast)
foreign import capi unsafe "hs_BRepBuilderAPI_MakeEdge.h hs_BRepBuilderAPI_MakeEdge_fromCurveAndVertices" rawFromCurveAndVertices :: Ptr (Handle Geom.Curve) -> Ptr TopoDS.Vertex -> Ptr TopoDS.Vertex -> IO (Ptr TopoDS.Edge)
fromCurveAndVertices :: Ptr (Handle Geom.Curve) -> Ptr TopoDS.Vertex -> Ptr TopoDS.Vertex -> Acquire (Ptr TopoDS.Edge)
fromCurveAndVertices :: Ptr (Handle Curve)
-> Ptr Vertex -> Ptr Vertex -> Acquire (Ptr Edge)
fromCurveAndVertices Ptr (Handle Curve)
curve Ptr Vertex
v1 Ptr Vertex
v2 = IO (Ptr Edge) -> (Ptr Edge -> IO ()) -> Acquire (Ptr Edge)
forall a. IO a -> (a -> IO ()) -> Acquire a
mkAcquire (Ptr (Handle Curve) -> Ptr Vertex -> Ptr Vertex -> IO (Ptr Edge)
rawFromCurveAndVertices Ptr (Handle Curve)
curve Ptr Vertex
v1 Ptr Vertex
v2) (Ptr Shape -> IO ()
TopoDS.Destructors.deleteShape (Ptr Shape -> IO ())
-> (Ptr Edge -> Ptr Shape) -> Ptr Edge -> IO ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Ptr Edge -> Ptr Shape
forall a b. SubTypeOf a b => Ptr b -> Ptr a
upcast)
foreign import capi unsafe "hs_BRepBuilderAPI_MakeEdge.h hs_BRepBuilderAPI_MakeEdge_fromCurveAndPnts" rawFromCurveAndPnts :: Ptr (Handle Geom.Curve) -> Ptr GP.Pnt -> Ptr GP.Pnt -> IO (Ptr TopoDS.Edge)
fromCurveAndPnts :: Ptr (Handle Geom.Curve) -> Ptr GP.Pnt -> Ptr GP.Pnt -> Acquire (Ptr TopoDS.Edge)
fromCurveAndPnts :: Ptr (Handle Curve) -> Ptr Pnt -> Ptr Pnt -> Acquire (Ptr Edge)
fromCurveAndPnts Ptr (Handle Curve)
curve Ptr Pnt
v1 Ptr Pnt
v2 = IO (Ptr Edge) -> (Ptr Edge -> IO ()) -> Acquire (Ptr Edge)
forall a. IO a -> (a -> IO ()) -> Acquire a
mkAcquire (Ptr (Handle Curve) -> Ptr Pnt -> Ptr Pnt -> IO (Ptr Edge)
rawFromCurveAndPnts Ptr (Handle Curve)
curve Ptr Pnt
v1 Ptr Pnt
v2) (Ptr Shape -> IO ()
TopoDS.Destructors.deleteShape (Ptr Shape -> IO ())
-> (Ptr Edge -> Ptr Shape) -> Ptr Edge -> IO ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Ptr Edge -> Ptr Shape
forall a b. SubTypeOf a b => Ptr b -> Ptr a
upcast)
foreign import capi unsafe "hs_BRepBuilderAPI_MakeEdge.h hs_BRepBuilderAPI_MakeEdge_fromCurveVerticesAndParameters" rawFromCurveVerticesAndParameters :: Ptr (Handle Geom.Curve) -> Ptr TopoDS.Vertex -> Ptr TopoDS.Vertex -> CDouble -> CDouble -> IO (Ptr TopoDS.Edge)
fromCurveVerticesAndParameters :: Ptr (Handle Geom.Curve) -> Ptr TopoDS.Vertex -> Ptr TopoDS.Vertex -> Double -> Double -> Acquire (Ptr TopoDS.Edge)
fromCurveVerticesAndParameters :: Ptr (Handle Curve)
-> Ptr Vertex
-> Ptr Vertex
-> Double
-> Double
-> Acquire (Ptr Edge)
fromCurveVerticesAndParameters Ptr (Handle Curve)
curve Ptr Vertex
v1 Ptr Vertex
v2 Double
p1 Double
p2 = IO (Ptr Edge) -> (Ptr Edge -> IO ()) -> Acquire (Ptr Edge)
forall a. IO a -> (a -> IO ()) -> Acquire a
mkAcquire (Ptr (Handle Curve)
-> Ptr Vertex -> Ptr Vertex -> CDouble -> CDouble -> IO (Ptr Edge)
rawFromCurveVerticesAndParameters Ptr (Handle Curve)
curve Ptr Vertex
v1 Ptr Vertex
v2 (Double -> CDouble
CDouble Double
p1) (Double -> CDouble
CDouble Double
p2)) (Ptr Shape -> IO ()
TopoDS.Destructors.deleteShape (Ptr Shape -> IO ())
-> (Ptr Edge -> Ptr Shape) -> Ptr Edge -> IO ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Ptr Edge -> Ptr Shape
forall a b. SubTypeOf a b => Ptr b -> Ptr a
upcast)
foreign import capi unsafe "hs_BRepBuilderAPI_MakeEdge.h hs_BRepBuilderAPI_MakeEdge_fromCurvePntsAndParameters" rawFromCurvePntsAndParameters :: Ptr (Handle Geom.Curve) -> Ptr GP.Pnt -> Ptr GP.Pnt -> CDouble -> CDouble -> IO (Ptr TopoDS.Edge)
fromCurvePntsAndParameters :: Ptr (Handle Geom.Curve) -> Ptr GP.Pnt -> Ptr GP.Pnt -> Double -> Double -> Acquire (Ptr TopoDS.Edge)
fromCurvePntsAndParameters :: Ptr (Handle Curve)
-> Ptr Pnt -> Ptr Pnt -> Double -> Double -> Acquire (Ptr Edge)
fromCurvePntsAndParameters Ptr (Handle Curve)
curve Ptr Pnt
v1 Ptr Pnt
v2 Double
p1 Double
p2 = IO (Ptr Edge) -> (Ptr Edge -> IO ()) -> Acquire (Ptr Edge)
forall a. IO a -> (a -> IO ()) -> Acquire a
mkAcquire (Ptr (Handle Curve)
-> Ptr Pnt -> Ptr Pnt -> CDouble -> CDouble -> IO (Ptr Edge)
rawFromCurvePntsAndParameters Ptr (Handle Curve)
curve Ptr Pnt
v1 Ptr Pnt
v2 (Double -> CDouble
CDouble Double
p1) (Double -> CDouble
CDouble Double
p2)) (Ptr Shape -> IO ()
TopoDS.Destructors.deleteShape (Ptr Shape -> IO ())
-> (Ptr Edge -> Ptr Shape) -> Ptr Edge -> IO ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Ptr Edge -> Ptr Shape
forall a b. SubTypeOf a b => Ptr b -> Ptr a
upcast)