#include <TopoDS_Shape.hxx>
#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
+#include <TopTools_ListOfShape.hxx>
#include <map>
#include <list>
class SMESH_Gen;
class SMESHDS_Document;
class SMESH_Group;
-class TopTools_ListOfShape;
class SMESH_subMesh;
class SMESH_HypoFilter;
class TopoDS_Solid;
#include <SMDS_Mesh.hxx>
#include <SMDSAbs_ElementType.hxx>
-IMPLEMENT_STANDARD_HANDLE(SMESHGUI_Filter, VTKViewer_Filter)
-IMPLEMENT_STANDARD_RTTIEXT(SMESHGUI_Filter, VTKViewer_Filter)
-
-IMPLEMENT_STANDARD_HANDLE(SMESHGUI_PredicateFilter, SMESHGUI_Filter)
-IMPLEMENT_STANDARD_RTTIEXT(SMESHGUI_PredicateFilter, SMESHGUI_Filter)
-
-IMPLEMENT_STANDARD_HANDLE(SMESHGUI_QuadrangleFilter, SMESHGUI_Filter)
-IMPLEMENT_STANDARD_RTTIEXT(SMESHGUI_QuadrangleFilter, SMESHGUI_Filter)
-
-IMPLEMENT_STANDARD_HANDLE(SMESHGUI_TriangleFilter, SMESHGUI_Filter)
-IMPLEMENT_STANDARD_RTTIEXT(SMESHGUI_TriangleFilter, SMESHGUI_Filter)
-
-IMPLEMENT_STANDARD_HANDLE(SMESHGUI_FacesFilter, SMESHGUI_Filter)
-IMPLEMENT_STANDARD_RTTIEXT(SMESHGUI_FacesFilter, SMESHGUI_Filter)
-
-IMPLEMENT_STANDARD_HANDLE(SMESHGUI_VolumesFilter, SMESHGUI_Filter)
-IMPLEMENT_STANDARD_RTTIEXT(SMESHGUI_VolumesFilter, SMESHGUI_Filter)
-
-IMPLEMENT_STANDARD_HANDLE(SMESHGUI_VolumeShapeFilter, SMESHGUI_Filter)
-IMPLEMENT_STANDARD_RTTIEXT(SMESHGUI_VolumeShapeFilter, SMESHGUI_Filter)
+OCCT_IMPLEMENT_STANDARD_RTTIEXT(SMESHGUI_Filter, VTKViewer_Filter)
+OCCT_IMPLEMENT_STANDARD_RTTIEXT(SMESHGUI_PredicateFilter, SMESHGUI_Filter)
+OCCT_IMPLEMENT_STANDARD_RTTIEXT(SMESHGUI_QuadrangleFilter, SMESHGUI_Filter)
+OCCT_IMPLEMENT_STANDARD_RTTIEXT(SMESHGUI_TriangleFilter, SMESHGUI_Filter)
+OCCT_IMPLEMENT_STANDARD_RTTIEXT(SMESHGUI_FacesFilter, SMESHGUI_Filter)
+OCCT_IMPLEMENT_STANDARD_RTTIEXT(SMESHGUI_VolumesFilter, SMESHGUI_Filter)
+OCCT_IMPLEMENT_STANDARD_RTTIEXT(SMESHGUI_VolumeShapeFilter, SMESHGUI_Filter)
/*
Class : SMESHGUI_PredicateFilter
Standard_EXPORT virtual bool IsObjValid( const int ) const = 0;
public:
- DEFINE_STANDARD_RTTI(SMESHGUI_Filter)
+ OCCT_DEFINE_STANDARD_RTTIEXT(SMESHGUI_Filter,VTKViewer_Filter)
};
/*
SMESH::Predicate_var myPred;
public:
- DEFINE_STANDARD_RTTI(SMESHGUI_PredicateFilter)
+ OCCT_DEFINE_STANDARD_RTTIEXT(SMESHGUI_PredicateFilter,SMESHGUI_Filter)
};
/*
Standard_EXPORT virtual bool IsNodeFilter() const;
public:
- DEFINE_STANDARD_RTTI(SMESHGUI_QuadrangleFilter)
+ OCCT_DEFINE_STANDARD_RTTIEXT(SMESHGUI_QuadrangleFilter,SMESHGUI_Filter)
};
/*
Standard_EXPORT virtual bool IsNodeFilter() const;
public:
- DEFINE_STANDARD_RTTI(SMESHGUI_TriangleFilter)
+ OCCT_DEFINE_STANDARD_RTTIEXT(SMESHGUI_TriangleFilter,SMESHGUI_Filter)
};
/*
Standard_EXPORT virtual bool IsNodeFilter() const;
public:
- DEFINE_STANDARD_RTTI(SMESHGUI_FacesFilter)
+ OCCT_DEFINE_STANDARD_RTTIEXT(SMESHGUI_FacesFilter,SMESHGUI_Filter)
};
/*
Standard_EXPORT virtual bool IsNodeFilter() const;
public:
- DEFINE_STANDARD_RTTI(SMESHGUI_VolumesFilter)
+ OCCT_DEFINE_STANDARD_RTTIEXT(SMESHGUI_VolumesFilter,SMESHGUI_Filter)
};
/*
Standard_EXPORT static int GetId( SMDSAbs_GeometryType geom );
public:
- DEFINE_STANDARD_RTTI(SMESHGUI_VolumeShapeFilter)
+ OCCT_DEFINE_STANDARD_RTTIEXT(SMESHGUI_VolumeShapeFilter,SMESHGUI_Filter)
};
#endif // SMESHGUI_FILTER_H
// SALOME KERNEL includes
#include <SALOMEDSClient_definitions.hxx>
+// GUI includes
+#include <SALOME_InteractiveObject.hxx>
+
// IDL includes
#include <SALOMEconfig.h>
#include CORBA_SERVER_HEADER(GEOM_Gen)
class SALOMEDSClient_SObject;
-class Handle_SALOME_InteractiveObject;
class QString;
namespace SMESH
SMESHGUI_EXPORT GEOM::GEOM_Object_ptr GetSubShape( GEOM::GEOM_Object_ptr, long );
- SMESHGUI_EXPORT bool GetGeomEntries( Handle_SALOME_InteractiveObject& hypIO,
+ SMESHGUI_EXPORT bool GetGeomEntries( Handle(SALOME_InteractiveObject)& hypIO,
QString& subGeom, QString& meshGeom);
}
#include <SMDS_Mesh.hxx>
#include <SVTK_ViewWindow.h>
-#include <TColStd_MapOfInteger.hxx>
#include <TColStd_MapIteratorOfMapOfInteger.hxx>
#include <vtkActor2D.h>
#include <list>
#include <vector>
+#include <TColStd_MapOfInteger.hxx>
+
#include <gp_XYZ.hxx>
class SALOME_Actor;
class SMDS_Mesh;
class SVTK_ViewWindow;
-class TColStd_MapOfInteger;
class vtkActor2D;
class vtkLabeledDataMapper;
class vtkMaskPoints;
#include <SALOME_ListIO.hxx>
// OCCT includes
-#include <TColStd_MapOfInteger.hxx>
#include <TColStd_MapIteratorOfMapOfInteger.hxx>
// IDL includes
// OCCT includes
#include <gp_XYZ.hxx>
+#include <TColStd_MapOfInteger.hxx>
// STL includes
#include <list>
class SMESH_Actor;
class SUIT_SelectionFilter;
class SVTK_Selector;
-class TColStd_MapOfInteger;
namespace SMESH
{
#include <SALOMEconfig.h>
#include CORBA_SERVER_HEADER(SMESH_Mesh)
+// OCCT includes
+#include <TColStd_MapOfInteger.hxx>
+
class SUIT_SelectionFilter;
-class TColStd_MapOfInteger;
class SVTK_ViewWindow;
class SVTK_Selector;
class SMESH_Actor;
#include <vtkUnstructuredGrid.h>
// OCCT includes
-#include <TColStd_IndexedMapOfInteger.hxx>
#include <Standard_ErrorHandler.hxx>
namespace SMESH
#include <SALOME_InteractiveObject.hxx>
#include <VTKViewer_Filter.h>
-class TColStd_IndexedMapOfInteger;
+// OCCT includes
+#include <TColStd_IndexedMapOfInteger.hxx>
class SALOMEDSClient_Study;
{
GC_MakeSegment edge( SMESH_TNodeXYZ( face->GetNode( i )),
SMESH_TNodeXYZ( face->GetNode( (i+1)%nbNodes) ));
- anExtCC.Init( lineCurve, edge);
+ anExtCC.Init( lineCurve, edge.Value() );
if ( anExtCC.NbExtrema() > 0 && anExtCC.LowerDistance() <= tol)
{
Quantity_Parameter pl, pe;
#include <unistd.h>
#endif
-
-IMPLEMENT_STANDARD_HANDLE (_pyObject ,Standard_Transient);
-IMPLEMENT_STANDARD_HANDLE (_pyCommand ,Standard_Transient);
-IMPLEMENT_STANDARD_HANDLE (_pyHypothesisReader,Standard_Transient);
-IMPLEMENT_STANDARD_HANDLE (_pyGen ,_pyObject);
-IMPLEMENT_STANDARD_HANDLE (_pyMesh ,_pyObject);
-IMPLEMENT_STANDARD_HANDLE (_pySubMesh ,_pyObject);
-IMPLEMENT_STANDARD_HANDLE (_pyMeshEditor ,_pyObject);
-IMPLEMENT_STANDARD_HANDLE (_pyHypothesis ,_pyObject);
-IMPLEMENT_STANDARD_HANDLE (_pySelfEraser ,_pyObject);
-IMPLEMENT_STANDARD_HANDLE (_pyGroup ,_pyObject);
-IMPLEMENT_STANDARD_HANDLE (_pyFilter ,_pyObject);
-IMPLEMENT_STANDARD_HANDLE (_pyAlgorithm ,_pyHypothesis);
-IMPLEMENT_STANDARD_HANDLE (_pyComplexParamHypo,_pyHypothesis);
-IMPLEMENT_STANDARD_HANDLE (_pyNumberOfSegmentsHyp,_pyHypothesis);
-
-IMPLEMENT_STANDARD_RTTIEXT(_pyObject ,Standard_Transient);
-IMPLEMENT_STANDARD_RTTIEXT(_pyCommand ,Standard_Transient);
-IMPLEMENT_STANDARD_RTTIEXT(_pyHypothesisReader,Standard_Transient);
-IMPLEMENT_STANDARD_RTTIEXT(_pyGen ,_pyObject);
-IMPLEMENT_STANDARD_RTTIEXT(_pyMesh ,_pyObject);
-IMPLEMENT_STANDARD_RTTIEXT(_pySubMesh ,_pyObject);
-IMPLEMENT_STANDARD_RTTIEXT(_pyMeshEditor ,_pyObject);
-IMPLEMENT_STANDARD_RTTIEXT(_pyHypothesis ,_pyObject);
-IMPLEMENT_STANDARD_RTTIEXT(_pySelfEraser ,_pyObject);
-IMPLEMENT_STANDARD_RTTIEXT(_pyGroup ,_pyObject);
-IMPLEMENT_STANDARD_RTTIEXT(_pyFilter ,_pyObject);
-IMPLEMENT_STANDARD_RTTIEXT(_pyAlgorithm ,_pyHypothesis);
-IMPLEMENT_STANDARD_RTTIEXT(_pyComplexParamHypo,_pyHypothesis);
-IMPLEMENT_STANDARD_RTTIEXT(_pyNumberOfSegmentsHyp,_pyHypothesis);
-IMPLEMENT_STANDARD_RTTIEXT(_pyLayerDistributionHypo,_pyHypothesis);
-IMPLEMENT_STANDARD_RTTIEXT(_pySegmentLengthAroundVertexHyp,_pyHypothesis);
+OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pyObject ,Standard_Transient);
+OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pyCommand ,Standard_Transient);
+OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pyHypothesisReader,Standard_Transient);
+OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pyGen ,_pyObject);
+OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pyMesh ,_pyObject);
+OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pySubMesh ,_pyObject);
+OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pyMeshEditor ,_pyObject);
+OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pyHypothesis ,_pyObject);
+OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pySelfEraser ,_pyObject);
+OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pyGroup ,_pyObject);
+OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pyFilter ,_pyObject);
+OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pyAlgorithm ,_pyHypothesis);
+OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pyComplexParamHypo,_pyHypothesis);
+OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pyNumberOfSegmentsHyp,_pyHypothesis);
+OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pyLayerDistributionHypo,_pyHypothesis);
+OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pySegmentLengthAroundVertexHyp,_pyHypothesis);
using namespace std;
using SMESH::TPythonDump;
}
while ( myObjectNames.IsBound( aNewID ) );
- myObjectNames.Bind( aNewID, myObjectNames.IsBound( theID )
- ? (myObjectNames.Find( theID ) + _pyID( "_" ) + _pyID( index-1 ))
- : _pyID( "A" ) + aNewID );
+ if ( myObjectNames.IsBound( theID ) )
+ myObjectNames.Bind( aNewID, ( myObjectNames.Find( theID ) + _pyID( "_" ) + _pyID( index-1 ) ) );
+ else
+ myObjectNames.Bind( aNewID, ( _pyID( "A" ) + aNewID ) );
return aNewID;
}
return;
const bool isHyp = theObj->IsKind( STANDARD_TYPE( _pyHypothesis ));
- Handle(_pyObject) existing =
- isHyp ? FindHyp( theObj->GetID() ) : FindObject( theObj->GetID() );
+ Handle(_pyObject) existing;
+ if( isHyp )
+ existing = Handle(_pyObject)::DownCast( FindHyp( theObj->GetID() ) );
+ else
+ existing = FindObject( theObj->GetID() );
if ( !existing.IsNull() && existing != theObj )
{
existing->SetRemovedFromStudy( true );
{
map< _pyID, Handle(_pyMesh) >::const_iterator id_obj = myMeshes.find( theObjID );
if ( id_obj != myMeshes.end() )
- return id_obj->second;
+ return Handle(_pyObject)::DownCast( id_obj->second );
}
// {
// map< _pyID, Handle(_pyMeshEditor) >::const_iterator id_obj = myMeshEditors.find( theObjID );
#include <TCollection_AsciiString.hxx>
#include <TColStd_SequenceOfAsciiString.hxx>
#include <TColStd_SequenceOfInteger.hxx>
+#include <Resource_DataMapOfAsciiStringAsciiString.hxx>
#include <list>
#include <map>
#include <vector>
#include <set>
+#include <Basics_OCCTVersion.hxx>
+
#include <SALOMEconfig.h>
#include CORBA_CLIENT_HEADER(SALOMEDS)
*/
// ===========================================================================================
-class Resource_DataMapOfAsciiStringAsciiString;
-
// ===========================================================================================
// =====================
// INTERNAL STUFF
bool AddAccessorMethod( _pyID theObjectID, const char* theAcsMethod );
- DEFINE_STANDARD_RTTI (_pyCommand)
+ OCCT_DEFINE_STANDARD_RTTIEXT(_pyCommand,Standard_Transient)
};
// -------------------------------------------------------------------------------------
virtual void ClearCommands();
virtual void Free() {}
- DEFINE_STANDARD_RTTI (_pyObject)
+ OCCT_DEFINE_STANDARD_RTTIEXT(_pyObject,Standard_Transient)
};
// -------------------------------------------------------------------------------------
std::map< _AString, ExportedMeshData > myFile2ExportedMesh;
Handle( _pyHypothesisReader ) myHypReader;
- DEFINE_STANDARD_RTTI (_pyGen)
+ OCCT_DEFINE_STANDARD_RTTIEXT(_pyGen,_pyObject)
};
// -------------------------------------------------------------------------------------
static void AddMeshAccess( const Handle(_pyCommand)& theCommand )
{ theCommand->SetObject( theCommand->GetObject() + "." _pyMesh_ACCESS_METHOD ); }
- DEFINE_STANDARD_RTTI (_pyMesh)
+ OCCT_DEFINE_STANDARD_RTTIEXT(_pyMesh,_pyObject)
};
#undef _pyMesh_ACCESS_METHOD
virtual void Flush() {}
virtual bool CanClear();
- DEFINE_STANDARD_RTTI (_pyMesh)
+ OCCT_DEFINE_STANDARD_RTTIEXT(_pyMesh,_pyObject)
};
// -------------------------------------------------------------------------------------
//void ComputeSaved ( const Handle(_pyCommand)& theComputeCommand );
- DEFINE_STANDARD_RTTI (_pyHypothesis)
+ OCCT_DEFINE_STANDARD_RTTIEXT(_pyHypothesis,_pyObject)
};
// -------------------------------------------------------------------------------------
virtual const char* AccessorMethod() const { return "GetAlgorithm()"; }
virtual bool IsWrappable(const _pyID& theMesh) { return !myIsWrapped; }
- DEFINE_STANDARD_RTTI (_pyAlgorithm)
+ OCCT_DEFINE_STANDARD_RTTIEXT(_pyAlgorithm,_pyHypothesis)
};
// -------------------------------------------------------------------------------------
virtual void Process( const Handle(_pyCommand)& theCommand);
virtual void Flush();
- DEFINE_STANDARD_RTTI (_pyComplexParamHypo)
+ OCCT_DEFINE_STANDARD_RTTIEXT(_pyComplexParamHypo,_pyHypothesis)
};
DEFINE_STANDARD_HANDLE (_pyComplexParamHypo, _pyHypothesis);
const _pyID& theMesh);
virtual void Free() { my1dHyp.Nullify(); }
- DEFINE_STANDARD_RTTI (_pyLayerDistributionHypo)
+ OCCT_DEFINE_STANDARD_RTTIEXT(_pyLayerDistributionHypo,_pyHypothesis)
};
DEFINE_STANDARD_HANDLE (_pyLayerDistributionHypo, _pyHypothesis);
const _pyID& theMesh);
void Flush();
- DEFINE_STANDARD_RTTI (_pyNumberOfSegmentsHyp)
+ OCCT_DEFINE_STANDARD_RTTIEXT(_pyNumberOfSegmentsHyp,_pyHypothesis)
};
DEFINE_STANDARD_HANDLE (_pyNumberOfSegmentsHyp, _pyHypothesis);
_pySegmentLengthAroundVertexHyp(const Handle(_pyCommand)& theCrCmd): _pyHypothesis(theCrCmd) {}
virtual bool Addition2Creation( const Handle(_pyCommand)& theAdditionCmd,
const _pyID& theMesh);
- DEFINE_STANDARD_RTTI (_pySegmentLengthAroundVertexHyp)
+ OCCT_DEFINE_STANDARD_RTTIEXT(_pySegmentLengthAroundVertexHyp,_pyHypothesis)
};
DEFINE_STANDARD_HANDLE (_pySegmentLengthAroundVertexHyp, _pyHypothesis);
virtual bool CanClear();
static bool IsAliveCmd( const Handle(_pyCommand)& theCmd );
- DEFINE_STANDARD_RTTI (_pySelfEraser)
+ OCCT_DEFINE_STANDARD_RTTIEXT(_pySelfEraser,_pyObject)
};
DEFINE_STANDARD_HANDLE (_pySelfEraser, _pyObject);
void SetCreator( const Handle(_pyObject)& theCreator ) { myCreator = theCreator; }
static bool CanBeArgOfMethod(const _AString& theMethodName);
- DEFINE_STANDARD_RTTI (_pySubMesh)
+ OCCT_DEFINE_STANDARD_RTTIEXT(_pySubMesh,_pyObject)
};
// -------------------------------------------------------------------------------------
/*!
//virtual void Free() { myUsers.clear(); }
const _pyID& GetNewID() const { return myNewID; }
- DEFINE_STANDARD_RTTI (_pyFilter)
+ OCCT_DEFINE_STANDARD_RTTIEXT(_pyFilter,_pyObject)
};
DEFINE_STANDARD_HANDLE (_pyFilter, _pyObject);
virtual bool CanClear();
void RemovedWithContents();
- DEFINE_STANDARD_RTTI (_pyGroup)
+ OCCT_DEFINE_STANDARD_RTTIEXT(_pyGroup,_pySubMesh)
};
// -------------------------------------------------------------------------------------
_pyHypothesisReader();
Handle(_pyHypothesis) GetHypothesis(const _AString& hypType,
const Handle(_pyCommand)& creationCmd) const;
- DEFINE_STANDARD_RTTI (_pyHypothesisReader)
+ OCCT_DEFINE_STANDARD_RTTIEXT(_pyHypothesisReader,Standard_Transient)
};
#endif
#include <SALOMEDS_wrap.hxx>
#include <GEOM_wrap.hxx>
+#include <Basics_OCCTVersion.hxx>
+
#include <BRep_Tool.hxx>
#include <Geom_CylindricalSurface.hxx>
#include <Geom_Plane.hxx>
if ( myFileName == 0 || strlen( myFileName ) == 0 )
return false;
+#if OCC_VERSION_MAJOR < 7
FILE* aOutFile = fopen( myFileName, "wt" );
if ( !aOutFile )
return false;
aWriter.SetIndentation( 2 );
aWriter << myDoc;
fclose( aOutFile );
+#else
+ std::filebuf fb;
+ fb.open( myFileName, std::ios::out );
+
+ Standard_OStream os( &fb );
+
+ LDOM_XmlWriter aWriter;
+ aWriter.SetIndentation( 2 );
+ aWriter.Write( os, myDoc );
+ fb.close();
+#endif
TPythonDump()<<this<<".Save()";
return true;
#include CORBA_SERVER_HEADER(SALOMEDS)
#include <TCollection_AsciiString.hxx>
+#include <Resource_DataMapOfAsciiStringAsciiString.hxx>
#include <sstream>
#include <vector>
class SMESH_Gen_i;
class SMESH_MeshEditor_i;
-class Resource_DataMapOfAsciiStringAsciiString;
// ===========================================================================================
/*!
}
if ( surf->IsKind( STANDARD_TYPE(Geom_BSplineSurface )) ||
surf->IsKind( STANDARD_TYPE(Geom_BezierSurface )))
+#if OCC_VERSION_MAJOR < 7
if ( !noSafeTShapes.insert((const Standard_Transient*) _face.TShape() ).second )
+#else
+ if ( !noSafeTShapes.insert( _face.TShape().get() ).second )
+#endif
isSafe = false;
double f, l;
edgeIsSafe = false;
}
}
+#if OCC_VERSION_MAJOR < 7
if ( !edgeIsSafe && !noSafeTShapes.insert((const Standard_Transient*) e.TShape() ).second )
+#else
+ if ( !edgeIsSafe && !noSafeTShapes.insert( _face.TShape().get() ).second )
+#endif
isSafe = false;
}
return isSafe;
#endif
#include <Standard_Failure.hxx>
+#include <Expr_NamedUnknown.hxx>
#ifdef NO_CAS_CATCH
#include <Standard_ErrorHandler.hxx>
#include "SMDS_MeshElement.hxx"
#include <TopTools_DataMapOfShapeShape.hxx>
+#include <TopTools_IndexedMapOfShape.hxx>
+#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Vertex.hxx>
class SMESH_Hypothesis;
class SMESH_Mesh;
class SMESH_subMesh;
-class TopTools_IndexedDataMapOfShapeListOfShape;
-class TopTools_IndexedMapOfShape;
class TopoDS_Shape;
/*!
#include "SMESH_ProxyMesh.hxx"
+#include <TColgp_Array1OfPnt.hxx>
+#include <TColgp_Array1OfVec.hxx>
+
class SMESH_Mesh;
class SMESH_ElementSearcher;
class SMDS_MeshElement;
class SMDS_MeshNode;
class SMDS_MeshFace;
-class TColgp_Array1OfPnt;
-class TColgp_Array1OfVec;
class gp_Pnt;
class gp_Vec;