siren2 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +15 -0
- data/.travis.yml +5 -0
- data/Gemfile +4 -0
- data/LICENSE +21 -0
- data/README.md +36 -0
- data/Rakefile +18 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/ext/siren2/extconf.rb +66 -0
- data/ext/siren2/inc/bndbox.h +51 -0
- data/ext/siren2/inc/bo.h +20 -0
- data/ext/siren2/inc/brep.h +17 -0
- data/ext/siren2/inc/common.h +98 -0
- data/ext/siren2/inc/curve.h +65 -0
- data/ext/siren2/inc/curve/bscurve.h +22 -0
- data/ext/siren2/inc/curve/bzcurve.h +17 -0
- data/ext/siren2/inc/curve/circle.h +29 -0
- data/ext/siren2/inc/curve/ellipse.h +15 -0
- data/ext/siren2/inc/curve/hyperbola.h +15 -0
- data/ext/siren2/inc/curve/line.h +17 -0
- data/ext/siren2/inc/curve/offsetcurve.h +15 -0
- data/ext/siren2/inc/curve/parabola.h +15 -0
- data/ext/siren2/inc/filler.h +26 -0
- data/ext/siren2/inc/heal.h +19 -0
- data/ext/siren2/inc/io/iges.h +19 -0
- data/ext/siren2/inc/io/step.h +18 -0
- data/ext/siren2/inc/io/stl.h +13 -0
- data/ext/siren2/inc/offset.h +35 -0
- data/ext/siren2/inc/shape.h +140 -0
- data/ext/siren2/inc/shape/chunk.h +26 -0
- data/ext/siren2/inc/shape/compound.h +22 -0
- data/ext/siren2/inc/shape/edge.h +50 -0
- data/ext/siren2/inc/shape/face.h +67 -0
- data/ext/siren2/inc/shape/shell.h +21 -0
- data/ext/siren2/inc/shape/solid.h +41 -0
- data/ext/siren2/inc/shape/vertex.h +23 -0
- data/ext/siren2/inc/shape/wire.h +31 -0
- data/ext/siren2/inc/siren.h +39 -0
- data/ext/siren2/inc/surface/dummy +0 -0
- data/ext/siren2/inc/topalgo.h +52 -0
- data/ext/siren2/inc/trans.h +48 -0
- data/ext/siren2/inc/vec.h +65 -0
- data/ext/siren2/src/bndbox.cpp +343 -0
- data/ext/siren2/src/bo.cpp +66 -0
- data/ext/siren2/src/brep.cpp +69 -0
- data/ext/siren2/src/common.cpp +18 -0
- data/ext/siren2/src/curve.cpp +75 -0
- data/ext/siren2/src/curve/bscurve.cpp +118 -0
- data/ext/siren2/src/curve/bzcurve.cpp +55 -0
- data/ext/siren2/src/curve/circle.cpp +146 -0
- data/ext/siren2/src/curve/ellipse.cpp +17 -0
- data/ext/siren2/src/curve/hyperbola.cpp +17 -0
- data/ext/siren2/src/curve/line.cpp +24 -0
- data/ext/siren2/src/curve/offsetcurve.cpp +17 -0
- data/ext/siren2/src/curve/parabola.cpp +17 -0
- data/ext/siren2/src/filler.cpp +191 -0
- data/ext/siren2/src/heal.cpp +92 -0
- data/ext/siren2/src/io/iges.cpp +85 -0
- data/ext/siren2/src/io/step.cpp +47 -0
- data/ext/siren2/src/io/stl.cpp +22 -0
- data/ext/siren2/src/offset.cpp +256 -0
- data/ext/siren2/src/shape.cpp +617 -0
- data/ext/siren2/src/shape/chunk.cpp +65 -0
- data/ext/siren2/src/shape/compound.cpp +96 -0
- data/ext/siren2/src/shape/edge.cpp +254 -0
- data/ext/siren2/src/shape/face.cpp +366 -0
- data/ext/siren2/src/shape/shell.cpp +41 -0
- data/ext/siren2/src/shape/solid.cpp +256 -0
- data/ext/siren2/src/shape/vertex.cpp +68 -0
- data/ext/siren2/src/shape/wire.cpp +100 -0
- data/ext/siren2/src/siren.cpp +80 -0
- data/ext/siren2/src/surface/dummy +0 -0
- data/ext/siren2/src/topalgo.cpp +246 -0
- data/ext/siren2/src/trans.cpp +330 -0
- data/ext/siren2/src/vec.cpp +454 -0
- data/lib/io/dxf.rb +68 -0
- data/lib/io/plot.rb +38 -0
- data/lib/io/ply.rb +57 -0
- data/lib/io/stl.rb +35 -0
- data/lib/io/svg.rb +44 -0
- data/lib/kernel/array.rb +133 -0
- data/lib/kernel/float.rb +15 -0
- data/lib/shape.rb +157 -0
- data/lib/shape/compound.rb +11 -0
- data/lib/shape/edge.rb +15 -0
- data/lib/shape/face.rb +7 -0
- data/lib/shape/shell.rb +21 -0
- data/lib/shape/solid.rb +10 -0
- data/lib/shape/vertex.rb +7 -0
- data/lib/shape/wire.rb +14 -0
- data/lib/shapes.rb +52 -0
- data/lib/siren.rb +166 -0
- data/lib/siren2/version.rb +3 -0
- data/lib/vec.rb +81 -0
- data/siren2.gemspec +28 -0
- metadata +195 -0
@@ -0,0 +1,22 @@
|
|
1
|
+
#ifndef _SHAPE_COMPOUND_H_
|
2
|
+
#define _SHAPE_COMPOUND_H_
|
3
|
+
|
4
|
+
#include "siren.h"
|
5
|
+
|
6
|
+
#include <TopoDS.hxx>
|
7
|
+
#include <TopoDS_Compound.hxx>
|
8
|
+
#include <BRep_Builder.hxx>
|
9
|
+
|
10
|
+
extern VALUE sr_cCompound;
|
11
|
+
|
12
|
+
static rb_data_type_t siren_compound_type = { "Compound", siren_shape_final };
|
13
|
+
bool siren_compound_install();
|
14
|
+
TopoDS_Compound siren_compound_get(VALUE self);
|
15
|
+
bool siren_compound_p(const VALUE&);
|
16
|
+
void siren_compound_check(const VALUE&);
|
17
|
+
VALUE siren_compound_new( const TopoDS_Shape* src);
|
18
|
+
VALUE siren_compound_init(int, VALUE*, VALUE);
|
19
|
+
VALUE siren_compound_push(int, VALUE*, VALUE);
|
20
|
+
VALUE siren_compound_delete(int, VALUE*, VALUE);
|
21
|
+
|
22
|
+
#endif
|
@@ -0,0 +1,50 @@
|
|
1
|
+
#ifndef _SHAPE_EDGE_H_
|
2
|
+
#define _SHAPE_EDGE_H_
|
3
|
+
|
4
|
+
#include "siren.h"
|
5
|
+
#include "curve.h"
|
6
|
+
#include "shape.h"
|
7
|
+
|
8
|
+
#include <TopoDS.hxx>
|
9
|
+
#include <TopoDS_Edge.hxx>
|
10
|
+
#include <TopoDS_Wire.hxx>
|
11
|
+
|
12
|
+
#include <TopExp_Explorer.hxx>
|
13
|
+
#include <BRepAdaptor_Curve.hxx>
|
14
|
+
|
15
|
+
// to_pts
|
16
|
+
#include <BRepAdaptor_Curve.hxx>
|
17
|
+
#include <GCPnts_UniformDeflection.hxx>
|
18
|
+
|
19
|
+
// param
|
20
|
+
#include <ShapeAnalysis_Curve.hxx>
|
21
|
+
#include <BRepAdaptor_Curve.hxx>
|
22
|
+
|
23
|
+
#include <BRepExtrema_ExtCC.hxx>
|
24
|
+
|
25
|
+
extern VALUE sr_cEdge;
|
26
|
+
|
27
|
+
static rb_data_type_t siren_edge_type = { "Edge", siren_shape_final };
|
28
|
+
bool siren_edge_install();
|
29
|
+
TopoDS_Edge siren_edge_get(VALUE self);
|
30
|
+
bool siren_edge_p(const VALUE&);
|
31
|
+
void siren_edge_check(const VALUE&);
|
32
|
+
VALUE siren_edge_new( const TopoDS_Shape* src);
|
33
|
+
|
34
|
+
VALUE siren_edge_init(int, VALUE*, VALUE);
|
35
|
+
VALUE siren_edge_sp(int, VALUE*, VALUE);
|
36
|
+
VALUE siren_edge_tp(int, VALUE*, VALUE);
|
37
|
+
VALUE siren_edge_to_pts(int, VALUE*, VALUE);
|
38
|
+
VALUE siren_edge_param(int, VALUE*, VALUE);
|
39
|
+
VALUE siren_edge_to_xyz(int, VALUE*, VALUE);
|
40
|
+
VALUE siren_edge_curvature(int, VALUE*, VALUE);
|
41
|
+
VALUE siren_edge_tangent(int, VALUE*, VALUE);
|
42
|
+
|
43
|
+
VALUE siren_edge_terms(int, VALUE*, VALUE);
|
44
|
+
VALUE siren_edge_curve(int, VALUE*, VALUE);
|
45
|
+
|
46
|
+
VALUE siren_edge_split(int, VALUE*, VALUE);
|
47
|
+
VALUE siren_edge_trim(int, VALUE*, VALUE);
|
48
|
+
VALUE siren_edge_extrema(int, VALUE*, VALUE);
|
49
|
+
|
50
|
+
#endif
|
@@ -0,0 +1,67 @@
|
|
1
|
+
#ifndef _SHAPE_FACE_H_
|
2
|
+
#define _SHAPE_FACE_H_
|
3
|
+
|
4
|
+
#include "siren.h"
|
5
|
+
#include "shape.h"
|
6
|
+
#include "vec.h"
|
7
|
+
|
8
|
+
#include <gp_Ax3.hxx>
|
9
|
+
#include <gp_Pln.hxx>
|
10
|
+
|
11
|
+
#include <TopoDS.hxx>
|
12
|
+
#include <TopoDS_Wire.hxx>
|
13
|
+
#include <TopoDS_Face.hxx>
|
14
|
+
|
15
|
+
#include <BRepTools.hxx>
|
16
|
+
#include <GeomLProp_SLProps.hxx>
|
17
|
+
|
18
|
+
#include <BRepBuilderAPI_MakeFace.hxx>
|
19
|
+
#include <BRepBuilderAPI_MakePolygon.hxx>
|
20
|
+
|
21
|
+
#include <Geom_BezierSurface.hxx>
|
22
|
+
#include <TColgp_Array2OfPnt.hxx>
|
23
|
+
#include <TColStd_Array2OfReal.hxx>
|
24
|
+
|
25
|
+
#include <Geom_BSplineSurface.hxx>
|
26
|
+
#include <ShapeFix_Shape.hxx>
|
27
|
+
|
28
|
+
// to_bezier
|
29
|
+
#include <TopoDS_Compound.hxx>
|
30
|
+
#include <BRep_Tool.hxx>
|
31
|
+
#include <Geom_Surface.hxx>
|
32
|
+
#include <Geom_BSplineSurface.hxx>
|
33
|
+
#include <Geom_BezierSurface.hxx>
|
34
|
+
#include <GeomConvert_BSplineSurfaceToBezierSurface.hxx>
|
35
|
+
#include <TColGeom_Array2OfBezierSurface.hxx>
|
36
|
+
|
37
|
+
// split
|
38
|
+
#include <BRepFeat_SplitShape.hxx>
|
39
|
+
|
40
|
+
// triangle
|
41
|
+
#include <BRepMesh_IncrementalMesh.hxx>
|
42
|
+
#include <Poly_Triangulation.hxx>
|
43
|
+
#include <Poly_Triangle.hxx>
|
44
|
+
#include <Poly_Array1OfTriangle.hxx>
|
45
|
+
|
46
|
+
extern VALUE sr_cFace;
|
47
|
+
|
48
|
+
static rb_data_type_t siren_face_type = { "Face", siren_shape_final };
|
49
|
+
bool siren_face_install();
|
50
|
+
TopoDS_Face siren_face_get(VALUE self);
|
51
|
+
bool siren_face_p(const VALUE&);
|
52
|
+
void siren_face_check(const VALUE&);
|
53
|
+
VALUE siren_face_new( const TopoDS_Shape* src);
|
54
|
+
|
55
|
+
VALUE siren_face_plane(int, VALUE*, VALUE);
|
56
|
+
VALUE siren_face_face(int, VALUE*, VALUE);
|
57
|
+
VALUE siren_face_infplane(int, VALUE*, VALUE);
|
58
|
+
VALUE siren_face_polygon(int, VALUE*, VALUE);
|
59
|
+
VALUE siren_face_bzsurf(int, VALUE*, VALUE);
|
60
|
+
VALUE siren_face_bssurf(int, VALUE*, VALUE);
|
61
|
+
|
62
|
+
VALUE siren_face_normal(int, VALUE*, VALUE);
|
63
|
+
VALUE siren_face_to_bezier(int, VALUE*, VALUE);
|
64
|
+
VALUE siren_face_split(int, VALUE*, VALUE);
|
65
|
+
VALUE siren_face_triangle(int, VALUE*, VALUE);
|
66
|
+
|
67
|
+
#endif
|
@@ -0,0 +1,21 @@
|
|
1
|
+
#ifndef _SHAPE_SHELL_H_
|
2
|
+
#define _SHAPE_SHELL_H_
|
3
|
+
|
4
|
+
#include "siren.h"
|
5
|
+
|
6
|
+
#include <TopoDS.hxx>
|
7
|
+
#include <TopoDS_Shell.hxx>
|
8
|
+
#include <BRepBuilderAPI_Sewing.hxx>
|
9
|
+
|
10
|
+
extern VALUE sr_cShell;
|
11
|
+
|
12
|
+
static rb_data_type_t siren_shell_type = { "Shell", siren_shape_final };
|
13
|
+
bool siren_shell_install();
|
14
|
+
TopoDS_Shell siren_shell_get(VALUE self);
|
15
|
+
bool siren_shell_p(const VALUE&);
|
16
|
+
void siren_shell_check(const VALUE&);
|
17
|
+
VALUE siren_shell_new( const TopoDS_Shape* src);
|
18
|
+
|
19
|
+
VALUE siren_shell_make(int, VALUE*, VALUE);
|
20
|
+
|
21
|
+
#endif
|
@@ -0,0 +1,41 @@
|
|
1
|
+
#ifndef _SHAPE_SOLID_H_
|
2
|
+
#define _SHAPE_SOLID_H_
|
3
|
+
|
4
|
+
#include "siren.h"
|
5
|
+
|
6
|
+
#include <TopoDS.hxx>
|
7
|
+
#include <TopoDS_Solid.hxx>
|
8
|
+
|
9
|
+
#include <BRepPrimAPI_MakeBox.hxx>
|
10
|
+
#include <BRepPrimAPI_MakeSphere.hxx>
|
11
|
+
#include <BRepPrimAPI_MakeCylinder.hxx>
|
12
|
+
#include <BRepPrimAPI_MakeCone.hxx>
|
13
|
+
#include <BRepPrimAPI_MakeTorus.hxx>
|
14
|
+
#include <BRepPrimAPI_MakeHalfSpace.hxx>
|
15
|
+
#include <BRepPrimAPI_MakeWedge.hxx>
|
16
|
+
|
17
|
+
extern VALUE sr_cSolid;
|
18
|
+
|
19
|
+
static rb_data_type_t siren_solid_type = { "Solid", siren_shape_final };
|
20
|
+
bool siren_solid_install();
|
21
|
+
TopoDS_Solid siren_solid_get(VALUE self);
|
22
|
+
bool siren_solid_p(const VALUE&);
|
23
|
+
void siren_solid_check(const VALUE&);
|
24
|
+
VALUE siren_solid_new( const TopoDS_Shape* src);
|
25
|
+
|
26
|
+
VALUE siren_solid_init(int, VALUE*, VALUE);
|
27
|
+
|
28
|
+
VALUE siren_solid_box (int, VALUE*, VALUE);
|
29
|
+
VALUE siren_solid_box2p (int, VALUE*, VALUE);
|
30
|
+
VALUE siren_solid_boxax (int, VALUE*, VALUE);
|
31
|
+
VALUE siren_solid_sphere (int, VALUE*, VALUE);
|
32
|
+
VALUE siren_solid_cylinder (int, VALUE*, VALUE);
|
33
|
+
VALUE siren_solid_cone (int, VALUE*, VALUE);
|
34
|
+
VALUE siren_solid_torus (int, VALUE*, VALUE);
|
35
|
+
VALUE siren_solid_halfspace (int, VALUE*, VALUE);
|
36
|
+
VALUE siren_solid_prism (int, VALUE*, VALUE);
|
37
|
+
VALUE siren_solid_revol (int, VALUE*, VALUE);
|
38
|
+
VALUE siren_solid_revolution (int, VALUE*, VALUE);
|
39
|
+
VALUE siren_solid_wedge (int, VALUE*, VALUE);
|
40
|
+
|
41
|
+
#endif
|
@@ -0,0 +1,23 @@
|
|
1
|
+
#ifndef _SHAPE_VERTEX_H_
|
2
|
+
#define _SHAPE_VERTEX_H_
|
3
|
+
|
4
|
+
#include "siren.h"
|
5
|
+
|
6
|
+
#include <TopoDS.hxx>
|
7
|
+
#include <TopoDS_Vertex.hxx>
|
8
|
+
#include <BRepBuilderAPI_MakeVertex.hxx>
|
9
|
+
|
10
|
+
extern VALUE sr_cVertex;
|
11
|
+
|
12
|
+
static rb_data_type_t siren_vertex_type = { "Vertex", siren_shape_final };
|
13
|
+
bool siren_vertex_install();
|
14
|
+
TopoDS_Vertex siren_vertex_get(VALUE self);
|
15
|
+
bool siren_vertex_p(const VALUE&);
|
16
|
+
void siren_vertex_check(const VALUE&);
|
17
|
+
VALUE siren_vertex_new( const TopoDS_Shape* src);
|
18
|
+
|
19
|
+
VALUE siren_vertex_init(int, VALUE*, VALUE);
|
20
|
+
VALUE siren_vertex_xyz(int, VALUE*, VALUE);
|
21
|
+
VALUE siren_vertex_to_v(int, VALUE*, VALUE);
|
22
|
+
|
23
|
+
#endif
|
@@ -0,0 +1,31 @@
|
|
1
|
+
#ifndef _SHAPE_WIRE_H_
|
2
|
+
#define _SHAPE_WIRE_H_
|
3
|
+
|
4
|
+
#include "siren.h"
|
5
|
+
#include "shape.h"
|
6
|
+
#include "topalgo.h"
|
7
|
+
#include "vec.h"
|
8
|
+
|
9
|
+
#include <TopoDS.hxx>
|
10
|
+
#include <TopoDS_Wire.hxx>
|
11
|
+
#include <TopoDS_Edge.hxx>
|
12
|
+
|
13
|
+
// #include <ShapeFix_Wire.hxx>
|
14
|
+
// #include <ShapeExtend_WireData.hxx>
|
15
|
+
#include <BRepBuilderAPI_MakeWire.hxx>
|
16
|
+
#include <ShapeFix_ShapeTolerance.hxx>
|
17
|
+
#include <BRepTools_WireExplorer.hxx>
|
18
|
+
|
19
|
+
extern VALUE sr_cWire;
|
20
|
+
|
21
|
+
static rb_data_type_t siren_wire_type = { "Wire", siren_shape_final };
|
22
|
+
bool siren_wire_install();
|
23
|
+
TopoDS_Wire siren_wire_get(VALUE self);
|
24
|
+
bool siren_wire_p(const VALUE&);
|
25
|
+
void siren_wire_check(const VALUE&);
|
26
|
+
VALUE siren_wire_new( const TopoDS_Shape* src);
|
27
|
+
|
28
|
+
VALUE siren_wire_make(int, VALUE*, VALUE);
|
29
|
+
VALUE siren_wire_ordered_edges(int, VALUE*, VALUE);
|
30
|
+
|
31
|
+
#endif
|
@@ -0,0 +1,39 @@
|
|
1
|
+
#ifndef _SR_H_
|
2
|
+
#define _SR_H_
|
3
|
+
|
4
|
+
// Configuration
|
5
|
+
#define SR_ENABLE_GPROP
|
6
|
+
#define SR_ENABLE_BO
|
7
|
+
#define SR_ENABLE_OFFSET
|
8
|
+
//#define SR_ENABLE_SHHEALING
|
9
|
+
#define SR_ENABLE_STL
|
10
|
+
#define SR_ENABLE_IGES
|
11
|
+
#define SR_ENABLE_STEP
|
12
|
+
//#define SR_ENABLE_CHUNK
|
13
|
+
|
14
|
+
// C++ standard library headers
|
15
|
+
#include <iostream>
|
16
|
+
#include <stdlib.h>
|
17
|
+
|
18
|
+
// placement new
|
19
|
+
#include <new>
|
20
|
+
|
21
|
+
// Ruby headers
|
22
|
+
#include "ruby.h"
|
23
|
+
|
24
|
+
// OpenCASCADE headers
|
25
|
+
#include <Standard.hxx>
|
26
|
+
#include <Standard_TypeDef.hxx>
|
27
|
+
#include <Standard_Macro.hxx>
|
28
|
+
#include <TopoDS.hxx>
|
29
|
+
#include <TopoDS_Shape.hxx>
|
30
|
+
#include <TopoDS_Compound.hxx>
|
31
|
+
#include <gp_Pnt.hxx>
|
32
|
+
|
33
|
+
using namespace opencascade;
|
34
|
+
|
35
|
+
extern VALUE sr_mSiren;
|
36
|
+
|
37
|
+
#include "common.h"
|
38
|
+
|
39
|
+
#endif
|
File without changes
|
@@ -0,0 +1,52 @@
|
|
1
|
+
#ifndef _topalgo_H_
|
2
|
+
#define _topalgo_H_
|
3
|
+
|
4
|
+
#include "siren.h"
|
5
|
+
#include "vec.h"
|
6
|
+
#include "shape.h"
|
7
|
+
|
8
|
+
#include <BRepBuilderAPI.hxx>
|
9
|
+
#include <BRepBuilderAPI_MakeEdge.hxx>
|
10
|
+
#include <BRepBuilderAPI_MakeWire.hxx>
|
11
|
+
#include <BRepBuilderAPI_MakeSolid.hxx>
|
12
|
+
|
13
|
+
#include <GeomAPI_Interpolate.hxx> // curve
|
14
|
+
#include <TColgp_Array1OfVec.hxx>
|
15
|
+
#include <TColgp_HArray1OfPnt.hxx>
|
16
|
+
#include <TColStd_HArray1OfBoolean.hxx>
|
17
|
+
|
18
|
+
#include <TopExp_Explorer.hxx>
|
19
|
+
|
20
|
+
// copy
|
21
|
+
#include <BRepBuilderAPI_Copy.hxx>
|
22
|
+
|
23
|
+
// NURBS curve
|
24
|
+
#include <TColStd_Array1OfReal.hxx>
|
25
|
+
#include <TColStd_Array1OfInteger.hxx>
|
26
|
+
#include <Geom_BSplineCurve.hxx>
|
27
|
+
|
28
|
+
#include <GProp_GProps.hxx>
|
29
|
+
#include <BRepGProp.hxx>
|
30
|
+
|
31
|
+
#include <gp_Circ.hxx>
|
32
|
+
#include <GC_MakeArcOfCircle.hxx>
|
33
|
+
#include <GC_MakeCircle.hxx>
|
34
|
+
|
35
|
+
bool siren_topalgo_install();
|
36
|
+
|
37
|
+
VALUE siren_topalgo_copy(int, VALUE*, VALUE);
|
38
|
+
|
39
|
+
VALUE siren_topalgo_line (int, VALUE*, VALUE);
|
40
|
+
VALUE siren_topalgo_infline (int, VALUE*, VALUE);
|
41
|
+
VALUE siren_topalgo_polyline (int, VALUE*, VALUE);
|
42
|
+
VALUE siren_topalgo_interpolate(int, VALUE*, VALUE);
|
43
|
+
VALUE siren_topalgo_arc (int, VALUE*, VALUE);
|
44
|
+
VALUE siren_topalgo_arc3p (int, VALUE*, VALUE);
|
45
|
+
VALUE siren_topalgo_circle (int, VALUE*, VALUE);
|
46
|
+
VALUE siren_topalgo_circle3p (int, VALUE*, VALUE);
|
47
|
+
|
48
|
+
VALUE siren_topalgo_volume(int, VALUE*, VALUE);
|
49
|
+
VALUE siren_topalgo_cog(int, VALUE*, VALUE);
|
50
|
+
VALUE siren_topalgo_area(int, VALUE*, VALUE);
|
51
|
+
|
52
|
+
#endif
|
@@ -0,0 +1,48 @@
|
|
1
|
+
#ifndef _TRANS_H_
|
2
|
+
#define _TRANS_H_
|
3
|
+
|
4
|
+
#include "common.h"
|
5
|
+
#include "siren.h"
|
6
|
+
#include "vec.h"
|
7
|
+
|
8
|
+
#include <gp_Ax1.hxx>
|
9
|
+
#include <gp_Ax2.hxx>
|
10
|
+
#include <gp_Ax3.hxx>
|
11
|
+
#include <gp_Trsf.hxx>
|
12
|
+
|
13
|
+
extern VALUE sr_cTrans;
|
14
|
+
|
15
|
+
bool siren_trans_install();
|
16
|
+
void siren_trans_final( void* p);
|
17
|
+
static rb_data_type_t siren_trans_type = { "Trans", siren_trans_final };
|
18
|
+
gp_Trsf* siren_trans_get( VALUE obj);
|
19
|
+
struct RClass* siren_trans_rclass();
|
20
|
+
VALUE siren_trans_new( const gp_Trsf& src);
|
21
|
+
|
22
|
+
VALUE siren_trans_init(int, VALUE*, VALUE);
|
23
|
+
VALUE siren_trans_to_s(int, VALUE*, VALUE);
|
24
|
+
VALUE siren_trans_to_a(int, VALUE*, VALUE);
|
25
|
+
VALUE siren_trans_matrix(int, VALUE*, VALUE);
|
26
|
+
VALUE siren_trans_set_matrix(int, VALUE*, VALUE);
|
27
|
+
VALUE siren_trans_multiply(int, VALUE*, VALUE);
|
28
|
+
VALUE siren_trans_multiply_bang(int, VALUE*, VALUE);
|
29
|
+
VALUE siren_trans_power(int, VALUE*, VALUE);
|
30
|
+
VALUE siren_trans_power_bang(int, VALUE*, VALUE);
|
31
|
+
VALUE siren_trans_invert(int, VALUE*, VALUE);
|
32
|
+
VALUE siren_trans_invert_bang(int, VALUE*, VALUE);
|
33
|
+
VALUE siren_trans_is_negative(int, VALUE*, VALUE);
|
34
|
+
VALUE siren_trans_translate_bang(int, VALUE*, VALUE);
|
35
|
+
VALUE siren_trans_translatef(int, VALUE*, VALUE);
|
36
|
+
VALUE siren_trans_set_translatef(int, VALUE*, VALUE);
|
37
|
+
VALUE siren_trans_mirror(int, VALUE*, VALUE);
|
38
|
+
VALUE siren_trans_mirror_bang(int, VALUE*, VALUE);
|
39
|
+
VALUE siren_trans_rotate_bang(int, VALUE*, VALUE);
|
40
|
+
//VALUE siren_trans_rotatef(int, VALUE*, VALUE);
|
41
|
+
//VALUE siren_trans_set_rotatef(int, VALUE*, VALUE);
|
42
|
+
VALUE siren_trans_scale_bang(int, VALUE*, VALUE);
|
43
|
+
VALUE siren_trans_scalef(int, VALUE*, VALUE);
|
44
|
+
VALUE siren_trans_set_scalef(int, VALUE*, VALUE);
|
45
|
+
VALUE siren_trans_transform_bang(int, VALUE*, VALUE);
|
46
|
+
VALUE siren_trans_move_point(int, VALUE*, VALUE);
|
47
|
+
|
48
|
+
#endif
|
@@ -0,0 +1,65 @@
|
|
1
|
+
#ifndef _VEC_H_
|
2
|
+
#define _VEC_H_
|
3
|
+
|
4
|
+
#include "siren.h"
|
5
|
+
|
6
|
+
extern VALUE sr_cVec;
|
7
|
+
|
8
|
+
bool siren_vec_install();
|
9
|
+
void siren_vec_final(void* p);
|
10
|
+
static rb_data_type_t siren_vec_type = { "Siren::Vec", siren_vec_final };
|
11
|
+
gp_Vec* siren_vec_get(VALUE obj);
|
12
|
+
struct RClass* siren_vec_rclass();
|
13
|
+
VALUE siren_vec_new(double x, double y, double z);
|
14
|
+
VALUE siren_vec_new(const gp_Vec& vec);
|
15
|
+
|
16
|
+
VALUE siren_vec_init(int, VALUE*, VALUE);
|
17
|
+
VALUE siren_vec_x(int, VALUE*, VALUE);
|
18
|
+
VALUE siren_vec_x_set(int, VALUE*, VALUE);
|
19
|
+
VALUE siren_vec_y(int, VALUE*, VALUE);
|
20
|
+
VALUE siren_vec_y_set(int, VALUE*, VALUE);
|
21
|
+
VALUE siren_vec_z(int, VALUE*, VALUE);
|
22
|
+
VALUE siren_vec_z_set(int, VALUE*, VALUE);
|
23
|
+
|
24
|
+
VALUE siren_vec_is_equal(int, VALUE*, VALUE);
|
25
|
+
VALUE siren_vec_is_normal(int, VALUE*, VALUE);
|
26
|
+
VALUE siren_vec_is_reverse(int, VALUE*, VALUE);
|
27
|
+
VALUE siren_vec_is_parallel(int, VALUE*, VALUE);
|
28
|
+
VALUE siren_vec_angle(int, VALUE*, VALUE);
|
29
|
+
VALUE siren_vec_angleref(int, VALUE*, VALUE);
|
30
|
+
VALUE siren_vec_magnitude(int, VALUE*, VALUE);
|
31
|
+
VALUE siren_vec_square_mag(int, VALUE*, VALUE);
|
32
|
+
VALUE siren_vec_cross(int, VALUE*, VALUE);
|
33
|
+
VALUE siren_vec_cross_bang(int, VALUE*, VALUE);
|
34
|
+
VALUE siren_vec_cross_mag(int, VALUE*, VALUE);
|
35
|
+
VALUE siren_vec_cross_square_mag(int, VALUE*, VALUE);
|
36
|
+
VALUE siren_vec_cross_cross(int, VALUE*, VALUE);
|
37
|
+
VALUE siren_vec_cross_cross_bang(int, VALUE*, VALUE);
|
38
|
+
VALUE siren_vec_dot(int, VALUE*, VALUE);
|
39
|
+
VALUE siren_vec_dot_cross(int, VALUE*, VALUE);
|
40
|
+
VALUE siren_vec_normal(int, VALUE*, VALUE);
|
41
|
+
VALUE siren_vec_normal_bang(int, VALUE*, VALUE);
|
42
|
+
VALUE siren_vec_reverse(int, VALUE*, VALUE);
|
43
|
+
VALUE siren_vec_reverse_bang(int, VALUE*, VALUE);
|
44
|
+
|
45
|
+
// VALUE siren_vec_coord(int, VALUE*, VALUE);
|
46
|
+
// VALUE siren_vec_coord_set(int, VALUE*, VALUE);
|
47
|
+
|
48
|
+
VALUE siren_vec_mirror(int argc, VALUE* argv, VALUE self);
|
49
|
+
VALUE siren_vec_mirror_bang(int, VALUE*, VALUE);
|
50
|
+
VALUE siren_vec_rotate(int, VALUE*, VALUE);
|
51
|
+
VALUE siren_vec_rotate_bang(int, VALUE*, VALUE);
|
52
|
+
VALUE siren_vec_scale(int, VALUE*, VALUE);
|
53
|
+
VALUE siren_vec_scale_bang(int, VALUE*, VALUE);
|
54
|
+
VALUE siren_vec_transform(int, VALUE*, VALUE);
|
55
|
+
VALUE siren_vec_transform_bang(int, VALUE*, VALUE);
|
56
|
+
|
57
|
+
VALUE siren_vec_negative(int, VALUE*, VALUE);
|
58
|
+
|
59
|
+
VALUE siren_vec_eq(int, VALUE*, VALUE);
|
60
|
+
VALUE siren_vec_plus(int, VALUE*, VALUE);
|
61
|
+
VALUE siren_vec_minus(int, VALUE*, VALUE);
|
62
|
+
VALUE siren_vec_multiply_scalar(int, VALUE*, VALUE);
|
63
|
+
VALUE siren_vec_devide_scalar(int, VALUE*, VALUE);
|
64
|
+
|
65
|
+
#endif
|