2 * Project Info: http://jcae.sourceforge.net
\r
4 * This program is free software; you can redistribute it and/or modify it under
\r
5 * the terms of the GNU Lesser General Public License as published by the Free
\r
6 * Software Foundation; either version 2.1 of the License, or (at your option)
\r
9 * This program is distributed in the hope that it will be useful, but WITHOUT
\r
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
\r
11 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
\r
14 * You should have received a copy of the GNU Lesser General Public License
\r
15 * along with this program; if not, write to the Free Software Foundation, Inc.,
\r
16 * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
\r
18 * (C) Copyright 2005, by EADS CRC
\r
19 * (C) Copyright 2008, 2009, by EADS France
\r
25 #ifdef HAVE_CONFIG_H
\r
26 //config.h generated by autotools from config.h.in (see an example in Opencascade).
\r
29 #include <Adaptor3d_Curve.hxx>
\r
30 #include <TopExp.hxx>
\r
31 #include <Poly_Triangulation.hxx>
\r
34 // Handle enums with Java enums
\r
36 %include "enums.swg"
\r
38 // Handle C arrays as Java arrays
\r
39 %include "arrays_java.i";
\r
40 %apply double[] {double *};
\r
41 %apply double[] {double &};
\r
43 // load the native library
\r
44 %pragma(java) jniclasscode=%{
\r
47 System.loadLibrary("TKERNEL");
\r
48 System.loadLibrary("TKMATH");
\r
49 System.loadLibrary("TKG2D");
\r
50 System.loadLibrary("TKG3D");
\r
51 System.loadLibrary("TKGEOMBASE");
\r
52 System.loadLibrary("TKBREP");
\r
53 System.loadLibrary("TKGEOMALGO");
\r
54 System.loadLibrary("TKTOPALGO");
\r
55 System.loadLibrary("TKMESH");
\r
57 System.loadLibrary("TKBO");
\r
58 System.loadLibrary("TKSHHEALING");
\r
60 System.loadLibrary("TKPRIM");
\r
61 System.loadLibrary("TKBOOL");
\r
62 System.loadLibrary("TKFILLET");
\r
63 System.loadLibrary("TKOFFSET");
\r
65 System.loadLibrary("TKXSBASE");
\r
66 System.loadLibrary("TKIGES");
\r
67 System.loadLibrary("TKSTEPBASE");
\r
68 System.loadLibrary("TKSTEPATTR");
\r
69 System.loadLibrary("TKSTEP209");
\r
70 System.loadLibrary("TKSTEP");
\r
72 System.loadLibrary("OccJava");
\r
73 if(!"0".equals(System.getenv("MMGT_OPT")))
\r
74 throw new RuntimeException("The MMGT_OPT environement variable must be set to 0 before using occjava.");
\r
78 %include "Standard.i"
\r
83 %include "GeomAbs.i"
\r
84 %include "TopTools.i"
\r
86 %include "GeomLProp_SLProps.i"
\r
87 %include "BRepTools.i"
\r
88 %include "BRepBuilderAPI.i"
\r
89 %include "BRepOffsetAPI.i"
\r
90 %include "BRepPrimAPI.i"
\r
91 %include "BRepAlgoAPI.i"
\r
94 %include "BRepLib.i"
\r
95 %include "BRepFilletAPI.i"
\r
96 %include "BRepCheck.i"
\r
97 %include "ShapeBuild.i"
\r
98 %include "XSControl.i"
\r
99 %include "ShapeFix.i"
\r
100 %include "APIHeaderSection_MakeHeader.i"
\r
101 // This one require Opencascade 6.2
\r
102 %include "ShapeUpgrade.i"
\r
103 //Jens Schmidt, req. f. Thesis
\r
104 %include "GeomAPI.i"
\r
108 %typemap(javacode) TopExp
\r
110 public static TopoDS_Vertex[] vertices(TopoDS_Edge edge)
\r
112 TopoDS_Vertex first=new TopoDS_Vertex();
\r
113 TopoDS_Vertex second=new TopoDS_Vertex();
\r
114 vertices(edge, first, second);
\r
115 return new TopoDS_Vertex[]{first, second};
\r
119 class TopLoc_Location
\r
121 %rename(isIdentity) IsIdentity;
\r
122 %rename(transformation) Transformation;
\r
124 Standard_Boolean IsIdentity();
\r
125 const gp_Trsf& Transformation();
\r
131 %rename(vertices) Vertices;
\r
132 static void Vertices(const TopoDS_Edge& E,TopoDS_Vertex& Vfirst,TopoDS_Vertex& Vlast,const Standard_Boolean CumOri = Standard_False) ;
\r
138 %{#include "TopExp_Explorer.hxx"%}
\r
139 class TopExp_Explorer
\r
143 TopExp_Explorer(const TopoDS_Shape& S,const TopAbs_ShapeEnum ToFind,
\r
144 const TopAbs_ShapeEnum ToAvoid = TopAbs_SHAPE);
\r
145 %rename(init) Init;
\r
146 %rename(more) More;
\r
147 %rename(next) Next;
\r
148 %rename(current) Current;
\r
149 void Init(const TopoDS_Shape& S, const TopAbs_ShapeEnum ToFind,
\r
150 const TopAbs_ShapeEnum ToAvoid = TopAbs_SHAPE) ;
\r
151 Standard_Boolean More() const;
\r
153 const TopoDS_Shape & Current();
\r
159 %{#include "Bnd_Box.hxx"%}
\r
160 %typemap(javacode) Bnd_Box
\r
163 * Return the array { Xmin, Ymin, Zmin, Xmax, Ymax, Zmax }
\r
165 public double[] get()
\r
167 double[] toReturn=new double[6];
\r
175 %rename(isVoid) IsVoid;
\r
178 Standard_Boolean IsVoid() const;
\r
183 void get(double box[6])
\r
185 if(!self->IsVoid())
\r
186 self->Get(box[0], box[1], box[2], box[3], box[4], box[5]);
\r
193 %{#include "BRepBndLib.hxx"%}
\r
198 static void Add(const TopoDS_Shape& shape,Bnd_Box& bndBox);
\r
202 * Adaptor2d_Curve2d
\r
204 %{#include "Adaptor2d_Curve2d.hxx"%}
\r
206 class Adaptor2d_Curve2d
\r
208 Adaptor2d_Curve2d()=0;
\r
210 %rename(value) Value;
\r
211 virtual gp_Pnt2d Value(const Standard_Real U) const;
\r
215 * Geom2dAdaptor_Curve
\r
217 %{#include "Geom2dAdaptor_Curve.hxx"%}
\r
218 class Geom2dAdaptor_Curve: public Adaptor2d_Curve2d
\r
220 %rename(load) Load;
\r
222 Geom2dAdaptor_Curve();
\r
223 Geom2dAdaptor_Curve(const Handle_Geom2d_Curve & C);
\r
224 Geom2dAdaptor_Curve(const Handle_Geom2d_Curve & C,const Standard_Real UFirst,const Standard_Real ULast);
\r
225 void Load(const Handle_Geom2d_Curve & C) ;
\r
226 void Load(const Handle_Geom2d_Curve & C,const Standard_Real UFirst,const Standard_Real ULast) ;
\r
232 %{#include "Adaptor3d_Curve.hxx"%}
\r
234 class Adaptor3d_Curve
\r
236 Adaptor3d_Curve()=0;
\r
238 %rename(value) Value;
\r
239 const gp_Pnt Value(const Standard_Real U) const;
\r
242 //extends the Adaptor3d_Curve class to reduce the JNI overhead when
\r
243 //calling a lot of Adaptor3d_Curve.Value
\r
244 %extend Adaptor3d_Curve
\r
247 void arrayValues(int size, double u[])
\r
249 for (int i = 0; i < size; i++)
\r
251 gp_Pnt gp=self->Value(u[3*i]);
\r
260 * GeomAdaptor_Curve
\r
262 %{#include "GeomAdaptor_Curve.hxx"%}
\r
264 class GeomAdaptor_Curve: public Adaptor3d_Curve
\r
266 %rename(load) Load;
\r
268 GeomAdaptor_Curve();
\r
269 GeomAdaptor_Curve(const Handle_Geom_Curve & C);
\r
270 GeomAdaptor_Curve(const Handle_Geom_Curve & C,
\r
271 const Standard_Real UFirst,const Standard_Real ULast);
\r
272 void Load(const Handle_Geom_Curve & C) ;
\r
273 void Load(const Handle_Geom_Curve & C,
\r
274 const Standard_Real UFirst,const Standard_Real ULast) ;
\r
282 %{#include "GProp_GProps.hxx"%}
\r
283 // class GProp_GProps
\r
286 // %rename(mass) Mass;
\r
288 // Standard_Real Mass() const;
\r
293 %rename(mass) Mass;
\r
294 %rename(centreOfMass) CentreOfMass;
\r
295 %rename(matrixOfInertia) MatrixOfInertia;
\r
297 Standard_Real Mass() const;
\r
298 gp_Pnt CentreOfMass() const;
\r
299 gp_Mat MatrixOfInertia() const;
\r
302 %{#include "GProp_PGProps.hxx"%}
\r
303 class GProp_PGProps : public GProp_GProps
\r
306 %{#include "GProp_CelGProps.hxx"%}
\r
307 class GProp_CelGProps: public GProp_GProps
\r
311 %{#include "GProp_SelGProps.hxx"%}
\r
312 class GProp_SelGProps: public GProp_GProps
\r
316 %{#include "GProp_VelGProps.hxx"%}
\r
317 class GProp_VelGProps: public GProp_GProps
\r
322 //%{#include "GProp_CGProps.gxx"%}
\r
323 //class GProp_CGProps: public GProp_GProps
\r
327 //%{#include "GProp_SGProps.gxx"%}
\r
328 //class GProp_SGProps: public GProp_GProps
\r
332 //%{#include "GProp_VGProps.gxx"%}
\r
333 //class GProp_VGProps
\r
341 %{#include "BRepGProp.hxx"%}
\r
345 %rename(linearProperties) LinearProperties;
\r
346 %rename(surfaceProperties) SurfaceProperties;
\r
347 %rename(volumeProperties) VolumeProperties;
\r
348 %rename(volumePropertiesGK) VolumePropertiesGK;
\r
349 static void LinearProperties(const TopoDS_Shape& shape, GProp_GProps& properties);
\r
350 static void VolumeProperties(const TopoDS_Shape& shape, GProp_GProps& properties, const Standard_Boolean onlyClosed = Standard_False) ;
\r
351 static Standard_Real VolumeProperties(const TopoDS_Shape& shape, GProp_GProps& properties, const Standard_Real Eps, const Standard_Boolean onlyClosed = Standard_False) ;
\r
352 static void SurfaceProperties(const TopoDS_Shape& shape, GProp_GProps& properties) ;
\r
353 static Standard_Real SurfaceProperties(const TopoDS_Shape& shape, GProp_GProps& properties, const Standard_Real Eps) ;
\r
354 static Standard_Real VolumePropertiesGK(const TopoDS_Shape& shape, GProp_GProps& properties, const Standard_Real Eps, const Standard_Boolean onlyClosed = Standard_False, const Standard_Boolean isUseSpan = Standard_False, const Standard_Boolean cgFlag = Standard_False, const Standard_Boolean iFlag = Standard_False) ;
\r
360 %rename(VOID) IFSelect_RetVoid;
\r
361 %rename(DONE) IFSelect_RetDone;
\r
362 %rename(ERROR) IFSelect_RetError;
\r
363 %rename(FAIL) IFSelect_RetFail;
\r
364 %rename(STOP) IFSelect_RetStop;
\r
365 enum IFSelect_ReturnStatus {
\r
373 %{#include <ShapeAnalysis_FreeBounds.hxx>%}
\r
374 class ShapeAnalysis_FreeBounds
\r
376 %rename(getClosedWires) GetClosedWires;
\r
377 %rename(getOpenWires) GetOpenWires;
\r
379 ShapeAnalysis_FreeBounds(const TopoDS_Shape& shape,
\r
380 const Standard_Boolean splitclosed = Standard_False,
\r
381 const Standard_Boolean splitopen = Standard_True);
\r
382 const TopoDS_Compound& GetClosedWires() const;
\r
383 const TopoDS_Compound& GetOpenWires() const;
\r
386 %{#include <GCPnts_UniformDeflection.hxx>%}
\r
387 class GCPnts_UniformDeflection
\r
389 %rename(initialize) Initialize;
\r
390 %rename(nbPoints) NbPoints;
\r
391 %rename(parameter) Parameter;
\r
393 GCPnts_UniformDeflection();
\r
394 void Initialize(Adaptor3d_Curve& C,const Standard_Real Deflection,
\r
395 const Standard_Real U1,const Standard_Real U2,
\r
396 const Standard_Boolean WithControl = Standard_True) ;
\r
397 Standard_Integer NbPoints() const;
\r
398 Standard_Real Parameter(const Standard_Integer Index) const;
\r
401 %{#include <BRepMesh_DiscretRoot.hxx>%}
\r
402 class BRepMesh_DiscretRoot
\r
404 %rename(setDeflection) SetDeflection;
\r
405 %rename(setAngle) SetAngle;
\r
406 %rename(deflection) Deflection;
\r
407 %rename(angle) Angle;
\r
408 %rename(perform) Perform;
\r
411 BRepMesh_DiscretRoot();
\r
413 void SetDeflection(const Standard_Real D) ;
\r
414 void SetAngle(const Standard_Real Ang) ;
\r
415 Standard_Real Deflection() const;
\r
416 Standard_Real Angle() const;
\r
417 virtual void Perform();
\r
420 %{#include <BRepMesh_IncrementalMesh.hxx>%}
\r
421 class BRepMesh_IncrementalMesh : public BRepMesh_DiscretRoot
\r
423 %rename(perform) Perform;
\r
424 %rename(update) Update;
\r
425 %rename(isModified) IsModified;
\r
428 BRepMesh_IncrementalMesh();
\r
429 BRepMesh_IncrementalMesh(const TopoDS_Shape& S,const Standard_Real D,
\r
430 const Standard_Boolean Relatif = Standard_False,
\r
431 const Standard_Real Ang = 0.5);
\r
434 void Update(const TopoDS_Shape& S) ;
\r
435 Standard_Boolean IsModified() const;
\r
438 %{#include <GeomAPI_ProjectPointOnSurf.hxx>%}
\r
440 %typemap(javacode) GeomAPI_ProjectPointOnSurf
\r
442 public void lowerDistanceParameters(double[] uv)
\r
444 double[] d2=new double[1];
\r
445 lowerDistanceParameters(uv, d2);
\r
450 class GeomAPI_ProjectPointOnSurf
\r
452 %rename(init) Init;
\r
453 %rename(nbPoints) NbPoints;
\r
454 %rename(lowerDistanceParameters) LowerDistanceParameters;
\r
455 %rename(lowerDistance) LowerDistance;
\r
456 %rename(point) Point;
\r
457 %rename(parameters) Parameters;
\r
458 %rename(nearestPoint) NearestPoint;
\r
460 GeomAPI_ProjectPointOnSurf(const gp_Pnt& P,
\r
461 const Handle_Geom_Surface & Surface);
\r
462 void Init(const gp_Pnt& P,const Handle_Geom_Surface & surface);
\r
463 Standard_Integer NbPoints() const;
\r
464 Quantity_Length LowerDistance() const;
\r
465 const gp_Pnt Point(const Standard_Integer Index) const;
\r
466 void LowerDistanceParameters(Quantity_Parameter& U,Quantity_Parameter& V) const;
\r
467 void Parameters(const Standard_Integer Index,Quantity_Parameter& U,Quantity_Parameter& V) const;
\r
468 gp_Pnt NearestPoint() const;
\r
474 %{#include <BRepAlgo.hxx>%}
\r
477 %rename(isValid) IsValid;
\r
478 %rename(isTopologicallyValid) IsTopologicallyValid;
\r
480 static Standard_Boolean IsValid(const TopoDS_Shape& S);
\r
481 static Standard_Boolean IsTopologicallyValid(const TopoDS_Shape& S);
\r