mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2024-12-26 17:30:35 +05:00
598 lines
24 KiB
C++
598 lines
24 KiB
C++
|
// GEOM GEOM : implementaion of GEOM_Gen.idl and GEOM_Shape.idl
|
||
|
//
|
||
|
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||
|
//
|
||
|
// This library is free software; you can redistribute it and/or
|
||
|
// modify it under the terms of the GNU Lesser General Public
|
||
|
// License as published by the Free Software Foundation; either
|
||
|
// version 2.1 of the License.
|
||
|
//
|
||
|
// This library is distributed in the hope that it will be useful,
|
||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||
|
// Lesser General Public License for more details.
|
||
|
//
|
||
|
// You should have received a copy of the GNU Lesser General Public
|
||
|
// License along with this library; if not, write to the Free Software
|
||
|
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||
|
//
|
||
|
// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
|
||
|
//
|
||
|
//
|
||
|
//
|
||
|
// File : GEOM_GEN_i.h file
|
||
|
// Author : Lucien PIGNOLONI
|
||
|
// Module : GEOM
|
||
|
// $Header$
|
||
|
|
||
|
#ifndef __GEOM_GEN_I_H__
|
||
|
#define __GEOM_GEN_I_H__
|
||
|
|
||
|
// standard C++ headers
|
||
|
#include <TDocStd_Document.hxx>
|
||
|
#include "GEOMDS_DataMapOfIntegerTransient.hxx"
|
||
|
#include "GEOMDS_Application.hxx"
|
||
|
#include <TopTools_MapOfShape.hxx>
|
||
|
#include <TopTools_SequenceOfShape.hxx>
|
||
|
#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
|
||
|
#include <TopAbs_ShapeEnum.hxx>
|
||
|
#include <TopoDS_Wire.hxx>
|
||
|
#include <TopoDS_Face.hxx>
|
||
|
|
||
|
// IDL headers
|
||
|
#include <SALOMEconfig.h>
|
||
|
#include CORBA_SERVER_HEADER(GEOM_Gen)
|
||
|
#include CORBA_SERVER_HEADER(GEOM_Shape)
|
||
|
#include CORBA_SERVER_HEADER(SALOMEDS)
|
||
|
|
||
|
#include "SALOME_Component_i.hxx"
|
||
|
#include "GEOM_Shape_i.hh"
|
||
|
|
||
|
#include "SALOME_NamingService.hxx"
|
||
|
#include <iostream.h>
|
||
|
|
||
|
#include <Standard_ErrorHandler.hxx> // CAREFUL ! position of this file is critic : see Lucien PIGNOLONI / OCC
|
||
|
|
||
|
|
||
|
//=====================================================================
|
||
|
// GEOM_Gen_i : class definition
|
||
|
//=====================================================================
|
||
|
class GEOM_Gen_i: public POA_GEOM::GEOM_Gen,
|
||
|
public Engines_Component_i
|
||
|
{
|
||
|
private:
|
||
|
|
||
|
SALOME_NamingService * name_service;
|
||
|
char * _name;
|
||
|
Handle(GEOMDS_Application) myOCAFApp; /* geom/OCAF Application */
|
||
|
Handle(TDocStd_Document) myCurrentOCAFDoc; /* Current geom/OCAF Document */
|
||
|
GEOMDS_DataMapOfIntegerTransient myStudyIDToDoc; /* Map to bind a Study to a Document */
|
||
|
|
||
|
int myStudyID;
|
||
|
|
||
|
GEOM::GEOM_Shape_ptr CreateObject(TopoDS_Shape& tds) ;
|
||
|
|
||
|
GEOM::GEOM_Shape_ptr CreateSubObject(const TopoDS_Shape& SubShape,
|
||
|
const GEOM::GEOM_Shape_ptr MainShape,
|
||
|
const GEOM::GEOM_Shape::ListOfSubShapeID& ListOfID);
|
||
|
// Create and insert(!) SubShape of MainShape
|
||
|
|
||
|
GEOM::GEOM_Shape_ptr GEOM_Gen_i::SubShapesOne( GEOM::GEOM_Shape_ptr shape,
|
||
|
const TopAbs_ShapeEnum ShapeType,
|
||
|
const GEOM::GEOM_Shape::ListOfSubShapeID& ListOfID,
|
||
|
const Standard_Boolean sorted=Standard_False)
|
||
|
throw (SALOME::SALOME_Exception);
|
||
|
// return all listed subshapes as one shape
|
||
|
|
||
|
GEOM::GEOM_Gen::ListOfGeomShapes* SubShapesAll(GEOM::GEOM_Shape_ptr shape,
|
||
|
const TopAbs_ShapeEnum type,
|
||
|
const Standard_Boolean sorted=Standard_False)
|
||
|
throw (SALOME::SALOME_Exception);
|
||
|
// return all subshapes by type
|
||
|
|
||
|
TopoDS_Face FindSameFace(const TopoDS_Shape& aShape,
|
||
|
const TopoDS_Face& F,
|
||
|
double tol3d);
|
||
|
TopoDS_Edge FindSameEdge(const TopoDS_Face& newFace,
|
||
|
TopoDS_Edge& Eold,
|
||
|
double tol3d);
|
||
|
|
||
|
public:
|
||
|
//-----------------------------------------------------------------------//
|
||
|
// Constructor / Destructor //
|
||
|
//-----------------------------------------------------------------------//
|
||
|
// constructor to be called for servant creation.
|
||
|
GEOM_Gen_i();
|
||
|
GEOM_Gen_i(CORBA::ORB_ptr orb,
|
||
|
PortableServer::POA_ptr poa,
|
||
|
PortableServer::ObjectId * contId,
|
||
|
const char *instanceName,
|
||
|
const char *interfaceName);
|
||
|
|
||
|
// destructor, doing nothing (for now)
|
||
|
virtual ~GEOM_Gen_i();
|
||
|
|
||
|
// generic method to be put in a super class
|
||
|
void register_name(char * name);
|
||
|
|
||
|
//-----------------------------------------------------------------------//
|
||
|
// Studies Management //
|
||
|
//-----------------------------------------------------------------------//
|
||
|
void GetCurrentStudy (CORBA::Long StudyID);
|
||
|
|
||
|
CORBA::Short NbLabels();
|
||
|
|
||
|
// inherited methods from SALOMEDS::Driver
|
||
|
SALOMEDS::TMPFile* Save(SALOMEDS::SComponent_ptr theComponent,
|
||
|
const char* theURL,
|
||
|
bool isMultiFile);
|
||
|
|
||
|
SALOMEDS::TMPFile* SaveASCII(SALOMEDS::SComponent_ptr theComponent,
|
||
|
const char* theURL,
|
||
|
bool isMultiFile);
|
||
|
|
||
|
CORBA::Boolean Load(SALOMEDS::SComponent_ptr theComponent,
|
||
|
const SALOMEDS::TMPFile& theStream,
|
||
|
const char* theURL,
|
||
|
bool isMultiFile);
|
||
|
|
||
|
CORBA::Boolean LoadASCII(SALOMEDS::SComponent_ptr theComponent,
|
||
|
const SALOMEDS::TMPFile& theStream,
|
||
|
const char* theURL,
|
||
|
bool isMultiFile);
|
||
|
|
||
|
void Close(SALOMEDS::SComponent_ptr theComponent);
|
||
|
char* ComponentDataType();
|
||
|
|
||
|
|
||
|
char* IORToLocalPersistentID(SALOMEDS::SObject_ptr theSObject,
|
||
|
const char* IORString,
|
||
|
CORBA::Boolean isMultiFile,
|
||
|
CORBA::Boolean isASCII);
|
||
|
char* LocalPersistentIDToIOR(SALOMEDS::SObject_ptr theSObject,
|
||
|
const char* aLocalPersistentID,
|
||
|
CORBA::Boolean isMultiFile,
|
||
|
CORBA::Boolean isASCII);
|
||
|
|
||
|
bool CanPublishInStudy(CORBA::Object_ptr theIOR);
|
||
|
SALOMEDS::SObject_ptr PublishInStudy(SALOMEDS::Study_ptr theStudy,
|
||
|
SALOMEDS::SObject_ptr theSObject,
|
||
|
CORBA::Object_ptr theObject,
|
||
|
const char* theName) throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
CORBA::Boolean CanCopy(SALOMEDS::SObject_ptr theObject);
|
||
|
SALOMEDS::TMPFile* CopyFrom(SALOMEDS::SObject_ptr theObject, CORBA::Long& theObjectID);
|
||
|
CORBA::Boolean CanPaste(const char* theComponentName, CORBA::Long theObjectID);
|
||
|
SALOMEDS::SObject_ptr PasteInto(const SALOMEDS::TMPFile& theStream,
|
||
|
CORBA::Long theObjectID,
|
||
|
SALOMEDS::SObject_ptr theObject);
|
||
|
|
||
|
//-----------------------------------------------------------------------//
|
||
|
// Shapes Management //
|
||
|
//-----------------------------------------------------------------------//
|
||
|
const char* InsertInLabel(TopoDS_Shape S,
|
||
|
const char *nameIor,
|
||
|
Handle(TDocStd_Document) OCAFDoc) ;
|
||
|
|
||
|
const char* InsertInLabelDependentShape(TopoDS_Shape S,
|
||
|
const char *nameIor,
|
||
|
GEOM::GEOM_Shape_ptr mainshape_ptr,
|
||
|
Handle(TDocStd_Document) OCAFDoc) ;
|
||
|
|
||
|
void InsertInLabelOneArgument(TopoDS_Shape main_topo,
|
||
|
GEOM::GEOM_Shape_ptr shape_ptr,
|
||
|
TopoDS_Shape result_topo,
|
||
|
GEOM::GEOM_Shape_ptr result,
|
||
|
Handle(TDocStd_Document) OCAFDoc) ;
|
||
|
|
||
|
void InsertInLabelMoreArguments(TopoDS_Shape main_topo,
|
||
|
GEOM::GEOM_Shape_ptr result,
|
||
|
const GEOM::GEOM_Gen::ListOfIOR& ListShapes,
|
||
|
Handle(TDocStd_Document) OCAFDoc) ;
|
||
|
|
||
|
// Methods used by SuppressFaces
|
||
|
int SuppressFacesGlue( const TopoDS_Shape& S,
|
||
|
const TopTools_MapOfShape& mapFaces,
|
||
|
TopoDS_Shape& aCompoundOfShells ) throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
// various services
|
||
|
int GetIndexTopology( const TopoDS_Shape& subshape,
|
||
|
const TopoDS_Shape& mainShape ) ;
|
||
|
|
||
|
bool GetShapeFromIndex( const TopoDS_Shape& aShape,
|
||
|
const TopAbs_ShapeEnum aType,
|
||
|
const int index,
|
||
|
TopoDS_Shape& tds) ;
|
||
|
|
||
|
GEOM::GEOM_Shape::ListOfSubShapeID* IndexOfFacesOfSubShell( const TopoDS_Shape& S,
|
||
|
const TopoDS_Shape subShell )
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
bool ListOfIDIntoMapOfShapes( const TopoDS_Shape& S,
|
||
|
const GEOM::GEOM_Shape::ListOfSubShapeID& L,
|
||
|
const int subShapeType,
|
||
|
TopTools_MapOfShape& aMap ) ;
|
||
|
|
||
|
bool ListOfIDIntoSequenceOfShapes( const TopoDS_Shape& S,
|
||
|
const GEOM::GEOM_Shape::ListOfSubShapeID& L,
|
||
|
const int subShapeType,
|
||
|
TopTools_SequenceOfShape& aSequenceOfShapes ) ;
|
||
|
|
||
|
// Returns a TopoDS_Shape from a GEOM::GEOM_Shape_ptr
|
||
|
TopoDS_Shape GetTopoShape(GEOM::GEOM_Shape_ptr shape_ptr) ;
|
||
|
|
||
|
// Define a sequence of shapes from 'listShapes' and return its length
|
||
|
int SequenceOfShapeFromListOfGeomShape( const GEOM::GEOM_Gen::ListOfGeomShapes& listShapes,
|
||
|
TopTools_SequenceOfShape& SS ) ;
|
||
|
|
||
|
// Get a string representing a shape ref IOR
|
||
|
const char* GetStringFromIOR(GEOM::GEOM_Shape_var shapeIOR);
|
||
|
|
||
|
// Return the shape ref represented by a string of IOR
|
||
|
GEOM::GEOM_Shape_ptr GetIORFromString(const char* stringIOR);
|
||
|
|
||
|
GEOM::GEOM_Gen::ListOfIOR* GetReferencedObjects(GEOM::GEOM_Shape_ptr shape);
|
||
|
GEOM::GEOM_Gen::ListOfIOR* GetObjects(GEOM::GEOM_Shape_ptr shape);
|
||
|
|
||
|
|
||
|
//-----------------------------------------------------------------------//
|
||
|
// Internal structure of shapes //
|
||
|
//-----------------------------------------------------------------------//
|
||
|
// Explode SubShape
|
||
|
GEOM::GEOM_Shape_ptr SubShape(GEOM::GEOM_Shape_ptr shape,
|
||
|
CORBA::Short ShapeType,
|
||
|
const GEOM::GEOM_Shape::ListOfSubShapeID& ListOfID)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
// Explode SubShape in predictable order
|
||
|
GEOM::GEOM_Shape_ptr SubShapeSorted(GEOM::GEOM_Shape_ptr shape,
|
||
|
CORBA::Short ShapeType,
|
||
|
const GEOM::GEOM_Shape::ListOfSubShapeID& ListOfID)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
// Explode SubShape
|
||
|
GEOM::GEOM_Gen::ListOfGeomShapes* SubShapeAll(GEOM::GEOM_Shape_ptr shape,
|
||
|
CORBA::Short ShapeType)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
// Explode SubShape in predictable order for TUI or GUI
|
||
|
GEOM::GEOM_Gen::ListOfGeomShapes* SubShapeAllSorted(GEOM::GEOM_Shape_ptr shape,
|
||
|
CORBA::Short ShapeType)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
// Suppress faces in a shape
|
||
|
GEOM::GEOM_Gen::ListOfGeomShapes* SuppressFaces( GEOM::GEOM_Shape_ptr shape,
|
||
|
const GEOM::GEOM_Shape::ListOfSubShapeID& ListOfID )
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
// Suppress one or more holes in a face or shell independant topology
|
||
|
GEOM::GEOM_Shape_ptr SuppressHolesInFaceOrShell( GEOM::GEOM_Shape_ptr shapeFaceShell,
|
||
|
const GEOM::GEOM_Shape::ListOfSubShapeID& ListOfIdWires)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
// Suppress a single hole in a topology (face) shell or solid with/without hole traversing
|
||
|
GEOM::GEOM_Shape_ptr SuppressHole( GEOM::GEOM_Shape_ptr shape,
|
||
|
const GEOM::GEOM_Shape::ListOfSubShapeID& ListIdFace,
|
||
|
const GEOM::GEOM_Shape::ListOfSubShapeID& ListIdWire,
|
||
|
const GEOM::GEOM_Shape::ListOfSubShapeID& ListIdEndFace )
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
bool RebuildFaceRemovingHoles( const TopoDS_Face& aFace,
|
||
|
const TopTools_MapOfShape& mapHoles,
|
||
|
TopoDS_Shape& resultFace ) ;
|
||
|
|
||
|
void SuppressHoleSubRoutine( const TopoDS_Shape& mainShape,
|
||
|
const TopoDS_Face& aFace,
|
||
|
const TopTools_SequenceOfShape& SSedgesOfWire,
|
||
|
const TopTools_IndexedDataMapOfShapeListOfShape& aMapEdgesFaces,
|
||
|
const TopTools_MapOfShape& MSfaces,
|
||
|
TopTools_MapOfShape& MSfacesSuppress,
|
||
|
const Standard_Boolean withEndFace,
|
||
|
const TopoDS_Face& endFace,
|
||
|
TopTools_MapOfShape& MSwireEndEdges )
|
||
|
throw (SALOME::SALOME_Exception ) ;
|
||
|
|
||
|
bool BuildShapeHoleNotTraversing( const TopoDS_Shape& aShape,
|
||
|
const TopoDS_Face& aFace,
|
||
|
const TopoDS_Wire& aWire,
|
||
|
const TopTools_MapOfShape& MFSuppress,
|
||
|
TopoDS_Shape& resultTds )
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
bool BuildShapeHoleTraversing( const TopoDS_Shape& aShape,
|
||
|
const TopoDS_Face& aFace,
|
||
|
const TopoDS_Wire& aWire,
|
||
|
const TopTools_MapOfShape& MFSuppress,
|
||
|
const TopoDS_Face& endFace,
|
||
|
const TopoDS_Wire& endWire,
|
||
|
TopoDS_Shape& resultTds )
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
bool FindCompareWireHoleOnFace( const TopoDS_Face& F,
|
||
|
const TopTools_MapOfShape& MSwireEdges,
|
||
|
TopoDS_Wire& aFoundWire ) ;
|
||
|
|
||
|
bool IsShapeInSequence( const TopTools_SequenceOfShape& SS, const TopoDS_Shape& aShape ) ;
|
||
|
|
||
|
void FreeEdgesFromMapOfFace(const TopTools_MapOfShape& MSfaces, TopTools_MapOfShape& MS ) ;
|
||
|
|
||
|
void MapRemoveSequence( const TopTools_MapOfShape& MS,
|
||
|
const TopTools_SequenceOfShape& SSRemove,
|
||
|
TopTools_SequenceOfShape& ST) ;
|
||
|
|
||
|
bool BuildShellWithFaceCompound( const TopoDS_Compound Comp,
|
||
|
TopoDS_Shell& resultShell ) ;
|
||
|
|
||
|
//-----------------------------------------------------------------------//
|
||
|
// Basic structures //
|
||
|
//-----------------------------------------------------------------------//
|
||
|
GEOM::PointStruct MakePointStruct(CORBA::Double x,
|
||
|
CORBA::Double y,
|
||
|
CORBA::Double z) ;
|
||
|
GEOM::DirStruct MakeDirection(const GEOM::PointStruct& p) ;
|
||
|
|
||
|
GEOM::AxisStruct MakeAxisStruct(CORBA::Double x,
|
||
|
CORBA::Double y,
|
||
|
CORBA::Double z,
|
||
|
CORBA::Double vx,
|
||
|
CORBA::Double vy,
|
||
|
CORBA::Double vz) ;
|
||
|
|
||
|
//----------------------------------------------------------------------//
|
||
|
// Boolean Operations //
|
||
|
//----------------------------------------------------------------------//
|
||
|
GEOM::GEOM_Shape_ptr MakeBoolean(GEOM::GEOM_Shape_ptr shape1,
|
||
|
GEOM::GEOM_Shape_ptr shape2,
|
||
|
CORBA::Long operation)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
GEOM::GEOM_Shape_ptr MakeFuse(GEOM::GEOM_Shape_ptr shape1,
|
||
|
GEOM::GEOM_Shape_ptr shape2)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
//----------------------------------------------------------------------//
|
||
|
// Advanced Operations //
|
||
|
//----------------------------------------------------------------------//
|
||
|
GEOM::GEOM_Shape_ptr Partition(const GEOM::GEOM_Gen::ListOfIOR& ListShapes,
|
||
|
const GEOM::GEOM_Gen::ListOfIOR& ListTools,
|
||
|
const GEOM::GEOM_Gen::ListOfIOR& ListKeepInside,
|
||
|
const GEOM::GEOM_Gen::ListOfIOR& ListRemoveInside,
|
||
|
const CORBA::Short Limit)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
// Filling a surface with section curves
|
||
|
GEOM::GEOM_Shape_ptr MakeFilling(GEOM::GEOM_Shape_ptr shape,
|
||
|
CORBA::Short mindeg,
|
||
|
CORBA::Short maxdeg,
|
||
|
CORBA::Double tol3d,
|
||
|
CORBA::Double tol2d,
|
||
|
CORBA::Short nbiter)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
// Sewing of shapes
|
||
|
GEOM::GEOM_Shape_ptr MakeSewing(const GEOM::GEOM_Gen::ListOfIOR& ListShapes,
|
||
|
CORBA::Double precision)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
GEOM::GEOM_Shape_ptr MakeSewingShape( GEOM::GEOM_Shape_ptr aShape,
|
||
|
CORBA::Double precision )
|
||
|
throw (SALOME::SALOME_Exception);
|
||
|
|
||
|
GEOM::GEOM_Shape_ptr MakeGlueFaces(GEOM::GEOM_Shape_ptr myShape,
|
||
|
double tol3d)
|
||
|
throw (SALOME::SALOME_Exception);
|
||
|
|
||
|
// Change the orientation of a (new) shape
|
||
|
GEOM::GEOM_Shape_ptr OrientationChange(GEOM::GEOM_Shape_ptr shape)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
GEOM::GEOM_Shape_ptr MakePlacedBox(CORBA::Double x1, CORBA::Double y1, CORBA::Double z1,
|
||
|
CORBA::Double delta1, CORBA::Double delta2, CORBA::Double delta3)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
GEOM::GEOM_Shape_ptr MakePanel(GEOM::GEOM_Shape_ptr shape,
|
||
|
CORBA::Short directiontype,
|
||
|
CORBA::Double delta)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
//---------------------------------------------------------------------//
|
||
|
// Transformations Operations //
|
||
|
//---------------------------------------------------------------------//
|
||
|
// Copy
|
||
|
GEOM::GEOM_Shape_ptr MakeCopy( GEOM::GEOM_Shape_ptr shape)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
// Translation
|
||
|
GEOM::GEOM_Shape_ptr MakeTranslation( GEOM::GEOM_Shape_ptr shape,
|
||
|
CORBA::Double x,
|
||
|
CORBA::Double y,
|
||
|
CORBA::Double z)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
// Rotation
|
||
|
GEOM::GEOM_Shape_ptr MakeRotation( GEOM::GEOM_Shape_ptr shape,
|
||
|
const GEOM::AxisStruct& axis,
|
||
|
CORBA::Double angle)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
// Create a shape using a scale factor
|
||
|
GEOM::GEOM_Shape_ptr MakeScaleTransform(GEOM::GEOM_Shape_ptr shape,
|
||
|
const GEOM::PointStruct& theCenterOfScale,
|
||
|
CORBA::Double factor)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
// Mirror of a shape by a plane
|
||
|
GEOM::GEOM_Shape_ptr MakeMirrorByPlane(GEOM::GEOM_Shape_ptr shape,
|
||
|
GEOM::GEOM_Shape_ptr shapePlane)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
// Shape by revolution of another around an axis
|
||
|
GEOM::GEOM_Shape_ptr MakeRevolution(GEOM::GEOM_Shape_ptr shape,
|
||
|
const GEOM::AxisStruct& axis,
|
||
|
CORBA::Double angle)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
// Create a prism with a base shape along a vector P1 to P2
|
||
|
GEOM::GEOM_Shape_ptr MakePrism(GEOM::GEOM_Shape_ptr baseShape,
|
||
|
const GEOM::PointStruct& P1,
|
||
|
const GEOM::PointStruct& P2)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
// Create a shape by sweeping a baseShape along a pathShape
|
||
|
GEOM::GEOM_Shape_ptr MakePipe(GEOM::GEOM_Shape_ptr pathShape,
|
||
|
GEOM::GEOM_Shape_ptr baseShape)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
//---------------------------------------------------------------------//
|
||
|
// Patterns Operations //
|
||
|
//---------------------------------------------------------------------//
|
||
|
|
||
|
// Multi Translation 1D
|
||
|
GEOM::GEOM_Shape_ptr MakeMultiTranslation1D( GEOM::GEOM_Shape_ptr shape,
|
||
|
const GEOM::DirStruct& dir,
|
||
|
CORBA::Double step,
|
||
|
CORBA::Short nbtimes)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
// Multi Translation 2D
|
||
|
GEOM::GEOM_Shape_ptr MakeMultiTranslation2D( GEOM::GEOM_Shape_ptr shape,
|
||
|
const GEOM::DirStruct& dir1,
|
||
|
CORBA::Double step1,
|
||
|
CORBA::Short nbtimes1,
|
||
|
const GEOM::DirStruct& dir2,
|
||
|
CORBA::Double step2,
|
||
|
CORBA::Short nbtimes2)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
// Multi Rotation 1D
|
||
|
GEOM::GEOM_Shape_ptr MakeMultiRotation1D( GEOM::GEOM_Shape_ptr shape,
|
||
|
const GEOM::DirStruct& dir,
|
||
|
const GEOM::PointStruct& loc,
|
||
|
CORBA::Short nbtimes)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
// Multi Rotation 2D
|
||
|
GEOM::GEOM_Shape_ptr MakeMultiRotation2D( GEOM::GEOM_Shape_ptr shape,
|
||
|
const GEOM::DirStruct& dir,
|
||
|
const GEOM::PointStruct& loc,
|
||
|
CORBA::Double ang,
|
||
|
CORBA::Short nbtimes1,
|
||
|
CORBA::Double step,
|
||
|
CORBA::Short nbtimes2)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
//--------------------------------------------------------------------//
|
||
|
// Primitives Construction //
|
||
|
//--------------------------------------------------------------------//
|
||
|
GEOM::GEOM_Shape_ptr MakeBox(CORBA::Double x1,
|
||
|
CORBA::Double y1,
|
||
|
CORBA::Double z1,
|
||
|
CORBA::Double x2,
|
||
|
CORBA::Double y2,
|
||
|
CORBA::Double z2)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
GEOM::GEOM_Shape_ptr MakeSphere(CORBA::Double x1,
|
||
|
CORBA::Double y1,
|
||
|
CORBA::Double z1,
|
||
|
CORBA::Double radius)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
GEOM::GEOM_Shape_ptr MakeCylinder(const GEOM::PointStruct& pstruct,
|
||
|
const GEOM::DirStruct& dstruct,
|
||
|
CORBA::Double radius,
|
||
|
CORBA::Double height)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
GEOM::GEOM_Shape_ptr MakeTorus(const GEOM::PointStruct& pstruct,
|
||
|
const GEOM::DirStruct& dstruct,
|
||
|
CORBA::Double major_radius,
|
||
|
CORBA::Double minor_radius)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
GEOM::GEOM_Shape_ptr MakeCone(const GEOM::PointStruct& pstruct,
|
||
|
const GEOM::DirStruct& dstruct,
|
||
|
CORBA::Double radius1,
|
||
|
CORBA::Double radius2,
|
||
|
CORBA::Double height)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
//-------------------------------------------------------------------//
|
||
|
// Import/Export //
|
||
|
//-------------------------------------------------------------------//
|
||
|
GEOM::GEOM_Shape_ptr ImportIGES(const char* filename) throw (SALOME::SALOME_Exception) ;
|
||
|
GEOM::GEOM_Shape_ptr ImportBREP(const char* filename) throw (SALOME::SALOME_Exception) ;
|
||
|
GEOM::GEOM_Shape_ptr ImportSTEP(const char* filename) throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
void ExportIGES(const char* filename,GEOM::GEOM_Shape_ptr theShape) throw (SALOME::SALOME_Exception) ;
|
||
|
void ExportBREP(const char* filename,GEOM::GEOM_Shape_ptr theShape) throw (SALOME::SALOME_Exception) ;
|
||
|
void ExportSTEP(const char* filename,GEOM::GEOM_Shape_ptr theShape) throw (SALOME::SALOME_Exception) ;
|
||
|
//-------------------------------------------------------------------//
|
||
|
// Fillet and Chamfer construction //
|
||
|
//-------------------------------------------------------------------//
|
||
|
GEOM::GEOM_Shape_ptr MakeFillet (GEOM::GEOM_Shape_ptr shape,
|
||
|
CORBA::Double radius,
|
||
|
CORBA::Short ShapeType,
|
||
|
const GEOM::GEOM_Shape::ListOfSubShapeID& ListOfID)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
GEOM::GEOM_Shape_ptr MakeChamfer(GEOM::GEOM_Shape_ptr shape,
|
||
|
CORBA::Double d1,
|
||
|
CORBA::Double d2,
|
||
|
CORBA::Short ShapeType,
|
||
|
const GEOM::GEOM_Shape::ListOfSubShapeID& ListOfID)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
//-------------------------------------------------------------------//
|
||
|
// Mesures Construction //
|
||
|
//-------------------------------------------------------------------//
|
||
|
GEOM::GEOM_Shape_ptr MakeCDG(GEOM::GEOM_Shape_ptr shape)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
//-------------------------------------------------------------------//
|
||
|
// Check Shape //
|
||
|
//-------------------------------------------------------------------//
|
||
|
CORBA::Boolean CheckShape(GEOM::GEOM_Shape_ptr shape)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
//-------------------------------------------------------------------//
|
||
|
// Primitives Construction //
|
||
|
//-------------------------------------------------------------------//
|
||
|
GEOM::GEOM_Shape_ptr MakeVertex(CORBA::Double x,
|
||
|
CORBA::Double y,
|
||
|
CORBA::Double z)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
GEOM::GEOM_Shape_ptr MakeVector(const GEOM::PointStruct& pstruct1,
|
||
|
const GEOM::PointStruct& pstruct2)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
GEOM::GEOM_Shape_ptr MakeLine (const GEOM::PointStruct& pstruct,
|
||
|
const GEOM::DirStruct& dstruc)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
GEOM::GEOM_Shape_ptr MakePlane (const GEOM::PointStruct& pstruct,
|
||
|
const GEOM::DirStruct& dstruc,
|
||
|
CORBA::Double trimsize)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
GEOM::GEOM_Shape_ptr MakeCircle(const GEOM::PointStruct& pstruct,
|
||
|
const GEOM::DirStruct& dstruct,
|
||
|
CORBA::Double radius)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
GEOM::GEOM_Shape_ptr MakeArc (const GEOM::PointStruct& pInit,
|
||
|
const GEOM::PointStruct& pCircle,
|
||
|
const GEOM::PointStruct& pEnd)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
GEOM::GEOM_Shape_ptr MakeCompound (const GEOM::GEOM_Gen::ListOfIOR& ListShapes)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
GEOM::GEOM_Shape_ptr MakeWire (const GEOM::GEOM_Gen::ListOfIOR& ListShapes)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
GEOM::GEOM_Shape_ptr MakeEdge (const GEOM::PointStruct& pstruct1,
|
||
|
const GEOM::PointStruct& pstruct2)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
GEOM::GEOM_Shape_ptr MakeFace (GEOM::GEOM_Shape_ptr wire, CORBA::Boolean wantplanarface)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
|
||
|
//-------------------------------------------------------------------//
|
||
|
// Speciic method Archimede //
|
||
|
//-------------------------------------------------------------------//
|
||
|
GEOM::GEOM_Shape_ptr Archimede(GEOM::GEOM_Shape_ptr aShape,
|
||
|
CORBA::Double aWeight,
|
||
|
CORBA::Double aWaterDensity,
|
||
|
CORBA::Double aMeshingDeflection)
|
||
|
throw (SALOME::SALOME_Exception) ;
|
||
|
|
||
|
};
|
||
|
|
||
|
#endif
|