// 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.salome-platform.org/ or email : webmaster.salome@opencascade.com // // // // File : SMESH_Gen.idl // Author : Paul RASCLE, EDF // $Header$ #ifndef _SMESH_GEN_IDL_ #define _SMESH_GEN_IDL_ #include "SALOME_Exception.idl" #include "SALOME_Component.idl" #include "SALOMEDS.idl" #include "GEOM_Gen.idl" #include "SMESH_Mesh.idl" #include "SMESH_Hypothesis.idl" module SMESH { typedef sequence object_array; typedef sequence mesh_array; interface FilterManager; interface SMESH_Pattern; enum AlgoStateErrorName { MISSING_ALGO, MISSING_HYPO, NOT_CONFORM_MESH }; struct AlgoStateError { AlgoStateErrorName name; string algoName; long algoDim; boolean isGlobalAlgo; }; typedef sequence algo_error_array; interface SMESH_Gen : Engines::Component, SALOMEDS::Driver { FilterManager CreateFilterManager(); SMESH_Pattern GetPattern(); /*! Set the current mode */ void SetEmbeddedMode( in boolean theMode ); /*! Get the current mode */ boolean IsEmbeddedMode(); /*! Set the current study */ void SetCurrentStudy( in SALOMEDS::Study theStudy ); /*! Get the current study */ SALOMEDS::Study GetCurrentStudy(); /*! * Create a hypothesis that can be shared by differents parts of the mesh. * An hypothesis is either: * - a method used to generate or modify a part of the mesh (algorithm). * - a parameter or a law used by an algorithm. * Algorithms are 1D, 2D or 3D. */ SMESH_Hypothesis CreateHypothesis( in string theHypName, in string theLibName ) raises ( SALOME::SALOME_Exception ); /*! * Return a hypothesis holding parameter values corresponding to the mesh * existing on the given geometry. * The returned hypothesis may be the one existing in a study and used * to compute the mesh, or a temporary one created just to pass parameter * values */ SMESH_Hypothesis GetHypothesisParameterValues( in string theHypName, in string theLibName, in SMESH_Mesh theMesh, in GEOM::GEOM_Object theGeom) raises ( SALOME::SALOME_Exception ); /*! * Create a Mesh object, given a geometry shape. * Mesh is created empty (no points, no elements). * Shape is explored via GEOM_Client to create local copies. * of TopoDS_Shapes and bind CORBA references of shape & subshapes * with TopoDS_Shapes */ SMESH_Mesh CreateMesh( in GEOM::GEOM_Object theObject ) raises ( SALOME::SALOME_Exception ); /*! * Create a empty mesh object */ SMESH_Mesh CreateEmptyMesh() raises ( SALOME::SALOME_Exception ); /*! * Create Mesh object importing data from given UNV file * (UNV supported version is I-DEAS 10) */ SMESH_Mesh CreateMeshesFromUNV( in string theFileName ) raises ( SALOME::SALOME_Exception ); /*! * Create Mesh object(s) importing data from given MED file */ mesh_array CreateMeshesFromMED( in string theFileName, out SMESH::DriverMED_ReadStatus theStatus ) raises ( SALOME::SALOME_Exception ); /*! * Create Mesh object importing data from given STL file */ SMESH_Mesh CreateMeshesFromSTL( in string theFileName ) raises ( SALOME::SALOME_Exception ); /*! * Create a Mesh object, without a geometry shape reference */ // SMESH_Mesh NewEmpty() // raises ( SALOME::SALOME_Exception ); /*! * Mesh a subShape. * First, verify list of hypothesis associated with the subShape, * return NOK if hypothesis are not sufficient */ boolean Compute( in SMESH_Mesh theMesh, in GEOM::GEOM_Object theSubObject ) raises ( SALOME::SALOME_Exception ); /*! * Return true if hypotheses are defined well */ boolean IsReadyToCompute( in SMESH_Mesh theMesh, in GEOM::GEOM_Object theSubObject ) raises ( SALOME::SALOME_Exception ); /*! * Return errors of hypotheses definintion * algo_error_array is empty if everything is OK */ algo_error_array GetAlgoState( in SMESH_Mesh theMesh, in GEOM::GEOM_Object theSubObject ) raises ( SALOME::SALOME_Exception ); /*! * */ long_array GetSubShapesId( in GEOM::GEOM_Object theMainObject, in object_array theListOfSubObjects ) raises ( SALOME::SALOME_Exception ); /*! * Return geometrical object the given element is built on. * The returned geometrical object, if not nil, is either found in the * study or is published by this method with the given name */ GEOM::GEOM_Object GetGeometryByMeshElement( in SMESH_Mesh theMesh, in long theElementID, in string theGeomName) raises ( SALOME::SALOME_Exception ); }; }; #endif