Mantis issue 0021108: EDF 1668 SMESH: ExtrusionAlongPathX on a Mesh group.

This commit is contained in:
jfa 2010-12-29 10:27:23 +00:00
parent 0b0fc19f70
commit 301af5256a
6 changed files with 507 additions and 499 deletions

View File

@ -19,9 +19,8 @@
//
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
// File : SMESH_MeshEditor.idl
//
#ifndef _SMESH_MESHEDITOR_IDL_
#define _SMESH_MESHEDITOR_IDL_
@ -30,7 +29,7 @@
module SMESH
{
enum Bnd_Dimension { BND_2DFROM3D, BND_1DFROM3D, BND_1DFROM2D };
/*!
* This interface makes modifications on the Mesh - removing elements and nodes etc.
*/
@ -57,7 +56,7 @@ module SMESH
* \return \c true if nodes are correctly removed or \c false otherwise
*/
boolean RemoveNodes(in long_array IDsOfNodes);
/*!
* \brief Remove all orphan nodes.
* \return number of removed nodes
@ -187,8 +186,8 @@ module SMESH
* \return TRUE in case of success, FALSE otherwise.
*/
boolean TriToQuad (in long_array IDsOfElements,
in NumericalFunctor Criterion,
in double MaxAngle);
in NumericalFunctor Criterion,
in double MaxAngle);
/*!
* \brief Fuse neighbour triangles into quadrangles.
@ -196,8 +195,8 @@ module SMESH
* Behaves like the above method, taking list of elements from \a theObject
*/
boolean TriToQuadObject (in SMESH_IDSource theObject,
in NumericalFunctor Criterion,
in double MaxAngle);
in NumericalFunctor Criterion,
in double MaxAngle);
/*!
* \brief Split quadrangles into triangles.
@ -206,7 +205,7 @@ module SMESH
* \return TRUE in case of success, FALSE otherwise.
*/
boolean QuadToTri (in long_array IDsOfElements,
in NumericalFunctor Criterion);
in NumericalFunctor Criterion);
/*!
* \brief Split quadrangles into triangles.
@ -214,7 +213,7 @@ module SMESH
* Behaves like the above method, taking list of elements from \a theObject
*/
boolean QuadToTriObject (in SMESH_IDSource theObject,
in NumericalFunctor Criterion);
in NumericalFunctor Criterion);
/*!
* \brief Split quadrangles into triangles.
@ -223,7 +222,7 @@ module SMESH
* \return TRUE in case of success, FALSE otherwise.
*/
boolean SplitQuad (in long_array IDsOfElements,
in boolean Diag13);
in boolean Diag13);
/*!
* \brief Split quadrangles into triangles.
@ -231,7 +230,7 @@ module SMESH
* Behaves like the above method, taking list of elements from \a theObject
*/
boolean SplitQuadObject (in SMESH_IDSource theObject,
in boolean Diag13);
in boolean Diag13);
/*!
* Find better splitting of the given quadrangle.
@ -241,7 +240,7 @@ module SMESH
* diagonal is better, 0 if error occurs.
*/
long BestSplit (in long IDOfQuad,
in NumericalFunctor Criterion);
in NumericalFunctor Criterion);
/*!
* \brief Split volumic elements into tetrahedrons
@ -264,10 +263,10 @@ module SMESH
in Smooth_Method Method);
boolean SmoothObject(in SMESH_IDSource theObject,
in long_array IDsOfFixedNodes,
in long MaxNbOfIterations,
in double MaxAspectRatio,
in Smooth_Method Method);
in long_array IDsOfFixedNodes,
in long MaxNbOfIterations,
in double MaxAspectRatio,
in Smooth_Method Method);
boolean SmoothParametric(in long_array IDsOfElements,
in long_array IDsOfFixedNodes,
@ -318,10 +317,10 @@ module SMESH
* \param NbOfSteps - number of elements to generate from one element
*/
void RotationSweepObject(in SMESH_IDSource theObject,
in AxisStruct Axix,
in double AngleInRadians,
in long NbOfSteps,
in double Tolerance);
in AxisStruct Axix,
in double AngleInRadians,
in long NbOfSteps,
in double Tolerance);
/*!
* \brief Same as previous but additionally create groups of elements
* generated from elements belonging to preexisting groups
@ -339,19 +338,19 @@ module SMESH
* \param NbOfSteps - number of elements to generate from one element
*/
void RotationSweepObject1D(in SMESH_IDSource theObject,
in AxisStruct Axix,
in double AngleInRadians,
in long NbOfSteps,
in double Tolerance);
in AxisStruct Axix,
in double AngleInRadians,
in long NbOfSteps,
in double Tolerance);
/*!
* \brief Same as previous but additionally create groups of elements
* generated from elements belonging to preexisting groups
*/
ListOfGroups RotationSweepObject1DMakeGroups(in SMESH_IDSource theObject,
in AxisStruct Axix,
in double AngleInRadians,
in long NbOfSteps,
in double Tolerance);
in AxisStruct Axix,
in double AngleInRadians,
in long NbOfSteps,
in double Tolerance);
/*!
* \brief Genarate dim+1 elements by rotation of the object around axis
* \param theObject - object containing elements to ratate
@ -360,19 +359,19 @@ module SMESH
* \param NbOfSteps - number of elements to generate from one element
*/
void RotationSweepObject2D(in SMESH_IDSource theObject,
in AxisStruct Axix,
in double AngleInRadians,
in long NbOfSteps,
in double Tolerance);
in AxisStruct Axix,
in double AngleInRadians,
in long NbOfSteps,
in double Tolerance);
/*!
* \brief Same as previous but additionally create groups of elements
* generated from elements belonging to preexisting groups
*/
ListOfGroups RotationSweepObject2DMakeGroups(in SMESH_IDSource theObject,
in AxisStruct Axix,
in double AngleInRadians,
in long NbOfSteps,
in double Tolerance);
in AxisStruct Axix,
in double AngleInRadians,
in long NbOfSteps,
in double Tolerance);
/*!
* \brief Genarate dim+1 elements by extrusion of elements along vector
* \param IDsOfElements - elements to sweep
@ -390,7 +389,7 @@ module SMESH
in DirStruct StepVector,
in long NbOfSteps);
/*!
* Generate new elements by extrusion of theElements
* Generate new elements by extrusion of theElements
* by StepVector by NbOfSteps
* param ExtrFlags set flags for performing extrusion
* param SewTolerance - uses for comparing locations of nodes if flag
@ -399,8 +398,8 @@ module SMESH
void AdvancedExtrusion(in long_array IDsOfElements,
in DirStruct StepVector,
in long NbOfSteps,
in long ExtrFlags,
in double SewTolerance);
in long ExtrFlags,
in double SewTolerance);
/*!
* \brief Same as previous but additionally create groups of elements
* generated from elements belonging to preexisting groups
@ -412,22 +411,22 @@ module SMESH
in double SewTolerance);
void ExtrusionSweepObject(in SMESH_IDSource theObject,
in DirStruct StepVector,
in long NbOfSteps);
in DirStruct StepVector,
in long NbOfSteps);
ListOfGroups ExtrusionSweepObjectMakeGroups(in SMESH_IDSource theObject,
in DirStruct StepVector,
in long NbOfSteps);
void ExtrusionSweepObject1D(in SMESH_IDSource theObject,
in DirStruct StepVector,
in long NbOfSteps);
in DirStruct StepVector,
in long NbOfSteps);
ListOfGroups ExtrusionSweepObject1DMakeGroups(in SMESH_IDSource theObject,
in DirStruct StepVector,
in long NbOfSteps);
void ExtrusionSweepObject2D(in SMESH_IDSource theObject,
in DirStruct StepVector,
in long NbOfSteps);
in DirStruct StepVector,
in long NbOfSteps);
ListOfGroups ExtrusionSweepObject2DMakeGroups(in SMESH_IDSource theObject,
in DirStruct StepVector,
in long NbOfSteps);
@ -443,37 +442,37 @@ module SMESH
};
ListOfGroups ExtrusionAlongPathX(in long_array IDsOfElements,
in SMESH_IDSource Path,
in long NodeStart,
in boolean HasAngles,
in double_array Angles,
in boolean LinearVariation,
in boolean HasRefPoint,
in PointStruct RefPoint,
in boolean MakeGroups,
in ElementType ElemType,
out Extrusion_Error Error);
in SMESH_IDSource Path,
in long NodeStart,
in boolean HasAngles,
in double_array Angles,
in boolean LinearVariation,
in boolean HasRefPoint,
in PointStruct RefPoint,
in boolean MakeGroups,
in ElementType ElemType,
out Extrusion_Error Error);
ListOfGroups ExtrusionAlongPathObjX(in SMESH_IDSource theObject,
in SMESH_IDSource Path,
in long NodeStart,
in boolean HasAngles,
in double_array Angles,
in boolean LinearVariation,
in boolean HasRefPoint,
in PointStruct RefPoint,
in boolean MakeGroups,
in ElementType ElemType,
out Extrusion_Error Error);
in SMESH_IDSource Path,
in long NodeStart,
in boolean HasAngles,
in double_array Angles,
in boolean LinearVariation,
in boolean HasRefPoint,
in PointStruct RefPoint,
in boolean MakeGroups,
in ElementType ElemType,
out Extrusion_Error Error);
Extrusion_Error ExtrusionAlongPath(in long_array IDsOfElements,
in SMESH_Mesh PathMesh,
in GEOM::GEOM_Object PathShape,
in long NodeStart,
in boolean HasAngles,
in double_array Angles,
in boolean HasRefPoint,
in PointStruct RefPoint);
in SMESH_Mesh PathMesh,
in GEOM::GEOM_Object PathShape,
in long NodeStart,
in boolean HasAngles,
in double_array Angles,
in boolean HasRefPoint,
in PointStruct RefPoint);
ListOfGroups ExtrusionAlongPathMakeGroups(in long_array IDsOfElements,
in SMESH_Mesh PathMesh,
in GEOM::GEOM_Object PathShape,
@ -485,13 +484,13 @@ module SMESH
out Extrusion_Error Error);
Extrusion_Error ExtrusionAlongPathObject(in SMESH_IDSource theObject,
in SMESH_Mesh PathMesh,
in GEOM::GEOM_Object PathShape,
in long NodeStart,
in boolean HasAngles,
in double_array Angles,
in boolean HasRefPoint,
in PointStruct RefPoint);
in SMESH_Mesh PathMesh,
in GEOM::GEOM_Object PathShape,
in long NodeStart,
in boolean HasAngles,
in double_array Angles,
in boolean HasRefPoint,
in PointStruct RefPoint);
ListOfGroups ExtrusionAlongPathObjectMakeGroups(in SMESH_IDSource theObject,
in SMESH_Mesh PathMesh,
in GEOM::GEOM_Object PathShape,
@ -503,47 +502,47 @@ module SMESH
out Extrusion_Error Error);
Extrusion_Error ExtrusionAlongPathObject1D(in SMESH_IDSource theObject,
in SMESH_Mesh PathMesh,
in GEOM::GEOM_Object PathShape,
in long NodeStart,
in boolean HasAngles,
in double_array Angles,
in boolean HasRefPoint,
in PointStruct RefPoint);
in SMESH_Mesh PathMesh,
in GEOM::GEOM_Object PathShape,
in long NodeStart,
in boolean HasAngles,
in double_array Angles,
in boolean HasRefPoint,
in PointStruct RefPoint);
ListOfGroups ExtrusionAlongPathObject1DMakeGroups(in SMESH_IDSource theObject,
in SMESH_Mesh PathMesh,
in GEOM::GEOM_Object PathShape,
in long NodeStart,
in boolean HasAngles,
in double_array Angles,
in boolean HasRefPoint,
in PointStruct RefPoint,
out Extrusion_Error Error);
in SMESH_Mesh PathMesh,
in GEOM::GEOM_Object PathShape,
in long NodeStart,
in boolean HasAngles,
in double_array Angles,
in boolean HasRefPoint,
in PointStruct RefPoint,
out Extrusion_Error Error);
Extrusion_Error ExtrusionAlongPathObject2D(in SMESH_IDSource theObject,
in SMESH_Mesh PathMesh,
in GEOM::GEOM_Object PathShape,
in long NodeStart,
in boolean HasAngles,
in double_array Angles,
in boolean HasRefPoint,
in PointStruct RefPoint);
in SMESH_Mesh PathMesh,
in GEOM::GEOM_Object PathShape,
in long NodeStart,
in boolean HasAngles,
in double_array Angles,
in boolean HasRefPoint,
in PointStruct RefPoint);
ListOfGroups ExtrusionAlongPathObject2DMakeGroups(in SMESH_IDSource theObject,
in SMESH_Mesh PathMesh,
in GEOM::GEOM_Object PathShape,
in long NodeStart,
in boolean HasAngles,
in double_array Angles,
in boolean HasRefPoint,
in PointStruct RefPoint,
out Extrusion_Error Error);
in SMESH_Mesh PathMesh,
in GEOM::GEOM_Object PathShape,
in long NodeStart,
in boolean HasAngles,
in double_array Angles,
in boolean HasRefPoint,
in PointStruct RefPoint,
out Extrusion_Error Error);
/*!
* Compute rotation angles for ExtrusionAlongPath as linear variation
* of given angles along path steps
* param PathMesh mesh containing a 1D sub-mesh on the edge, along
* param PathMesh mesh containing a 1D sub-mesh on the edge, along
* which proceeds the extrusion
* param PathShape is shape(edge); as the mesh can be complex, the edge
* param PathShape is shape(edge); as the mesh can be complex, the edge
* is used to define the sub-mesh for the path
*/
double_array LinearAnglesVariation(in SMESH_Mesh PathMesh,
@ -566,9 +565,9 @@ module SMESH
in string MeshName);
void MirrorObject (in SMESH_IDSource theObject,
in AxisStruct Mirror,
in MirrorType Type,
in boolean Copy);
in AxisStruct Mirror,
in MirrorType Type,
in boolean Copy);
ListOfGroups MirrorObjectMakeGroups (in SMESH_IDSource theObject,
in AxisStruct Mirror,
in MirrorType Type);
@ -589,8 +588,8 @@ module SMESH
in string MeshName);
void TranslateObject (in SMESH_IDSource theObject,
in DirStruct Vector,
in boolean Copy);
in DirStruct Vector,
in boolean Copy);
ListOfGroups TranslateObjectMakeGroups (in SMESH_IDSource theObject,
in DirStruct Vector);
SMESH_Mesh TranslateObjectMakeMesh (in SMESH_IDSource theObject,
@ -625,9 +624,9 @@ module SMESH
in string MeshName);
void RotateObject (in SMESH_IDSource theObject,
in AxisStruct Axis,
in double AngleInRadians,
in boolean Copy);
in AxisStruct Axis,
in double AngleInRadians,
in boolean Copy);
ListOfGroups RotateObjectMakeGroups (in SMESH_IDSource theObject,
in AxisStruct Axis,
in double AngleInRadians);
@ -641,8 +640,8 @@ module SMESH
out array_of_long_array GroupsOfNodes);
void FindCoincidentNodesOnPart (in SMESH_IDSource SubMeshOrGroup,
in double Tolerance,
out array_of_long_array GroupsOfNodes);
in double Tolerance,
out array_of_long_array GroupsOfNodes);
void FindCoincidentNodesOnPartBut (in SMESH_IDSource SubMeshOrGroup,
in double Tolerance,
@ -657,7 +656,7 @@ module SMESH
* \return List of groups of equal elements.
*/
void FindEqualElements (in SMESH_IDSource MeshOrSubMeshOrGroup,
out array_of_long_array GroupsOfElementsID);
out array_of_long_array GroupsOfElementsID);
/*!
* \brief Merge elements in each given group.
@ -669,7 +668,7 @@ module SMESH
* \brief Merge equal elements in the whole mesh.
*/
void MergeEqualElements();
/*!
* If the given ID is a valid node ID (nodeID > 0), just move this node, else
* move the node closest to the point to point's location and return ID of the node
@ -714,8 +713,8 @@ module SMESH
in long FirstNodeID2,
in long SecondNodeID2,
in long LastNodeID2,
in boolean CreatePolygons,
in boolean CreatePolyedrs);
in boolean CreatePolygons,
in boolean CreatePolyedrs);
Sew_Error SewConformFreeBorders (in long FirstNodeID1,
in long SecondNodeID1,
@ -728,8 +727,8 @@ module SMESH
in long LastNodeIDOnFreeBorder,
in long FirstNodeIDOnSide,
in long LastNodeIDOnSide,
in boolean CreatePolygons,
in boolean CreatePolyedrs);
in boolean CreatePolygons,
in boolean CreatePolyedrs);
Sew_Error SewSideElements (in long_array IDsOfSide1Elements,
in long_array IDsOfSide2Elements,
@ -746,7 +745,7 @@ module SMESH
boolean ChangeElemNodes(in long ide, in long_array newIDs);
/*!
* Return data of mesh edition preview which is computed provided
* Return data of mesh edition preview which is computed provided
* that the editor was obtained trough SMESH_Mesh::GetMeshEditPreviewer()
*/
MeshPreviewStruct GetPreviewData();
@ -768,13 +767,13 @@ module SMESH
/*!
* \brief Creates a hole in a mesh by doubling the nodes of some particular elements
* \param theNodes - identifiers of nodes to be doubled
* \param theModifiedElems - identifiers of elements to be updated by the new (doubled)
* nodes. If list of element identifiers is empty then nodes are doubled but
* \param theModifiedElems - identifiers of elements to be updated by the new (doubled)
* nodes. If list of element identifiers is empty then nodes are doubled but
* they not assigned to elements
* \return TRUE if operation has been completed successfully, FALSE otherwise
* \sa DoubleNode(), DoubleNodeGroup(), DoubleNodeGroups()
*/
boolean DoubleNodes( in long_array theNodes, in long_array theModifiedElems );
boolean DoubleNodes( in long_array theNodes, in long_array theModifiedElems );
/*!
* \brief Creates a hole in a mesh by doubling the nodes of some particular elements
@ -784,7 +783,7 @@ module SMESH
* \return TRUE if operation has been completed successfully, FALSE otherwise
* \sa DoubleNodes(), DoubleNodeGroup(), DoubleNodeGroups()
*/
boolean DoubleNode( in long theNodeId, in long_array theModifiedElems );
boolean DoubleNode( in long theNodeId, in long_array theModifiedElems );
/*!
* \brief Creates a hole in a mesh by doubling the nodes of some particular elements
@ -794,20 +793,20 @@ module SMESH
* \return TRUE if operation has been completed successfully, FALSE otherwise
* \sa DoubleNode(), DoubleNodes(), DoubleNodeGroups(), DoubleNodeGroupNew()
*/
boolean DoubleNodeGroup( in SMESH_GroupBase theNodes,
boolean DoubleNodeGroup( in SMESH_GroupBase theNodes,
in SMESH_GroupBase theModifiedElems );
/*!
* \brief Creates a hole in a mesh by doubling the nodes of some particular elements.
* Works as DoubleNodeGroup() described above, but returns a new group with
* Works as DoubleNodeGroup() described above, but returns a new group with
* newly created nodes.
* \param theNodes - group of nodes to be doubled.
* \param theModifiedElems - group of elements to be updated.
* \return a new group with newly created nodes
* \sa DoubleNodeGroup()
*/
SMESH_Group DoubleNodeGroupNew( in SMESH_GroupBase theNodes,
in SMESH_GroupBase theModifiedElems );
SMESH_Group DoubleNodeGroupNew( in SMESH_GroupBase theNodes,
in SMESH_GroupBase theModifiedElems );
/*!
\brief Creates a hole in a mesh by doubling the nodes of some particular elements
@ -817,22 +816,22 @@ module SMESH
\return TRUE if operation has been completed successfully, FALSE otherwise
\sa DoubleNode(), DoubleNodeGroup(), DoubleNodes()
*/
boolean DoubleNodeGroups( in ListOfGroups theNodes,
boolean DoubleNodeGroups( in ListOfGroups theNodes,
in ListOfGroups theModifiedElems );
/*!
* \brief Creates a hole in a mesh by doubling the nodes of some particular elements
* \param theElems - the list of elements (edges or faces) to be replicated
* The nodes for duplication could be found from these elements
* \param theNodesNot - list of nodes to NOT replicate
* \param theAffectedElems - the list of elements (cells and edges) to which the
* \param theAffectedElems - the list of elements (cells and edges) to which the
* replicated nodes should be associated to.
* \return TRUE if operation has been completed successfully, FALSE otherwise
* \sa DoubleNodeGroup(), DoubleNodeGroups()
*/
boolean DoubleNodeElem( in long_array theElems,
in long_array theNodesNot,
in long_array theAffectedElems );
in long_array theAffectedElems );
/*!
* \brief Creates a hole in a mesh by doubling the nodes of some particular elements
@ -859,13 +858,13 @@ module SMESH
* \return TRUE if operation has been completed successfully, FALSE otherwise
* \sa DoubleNodes(), DoubleNodeGroups(), DoubleNodeElemGroupNew()
*/
boolean DoubleNodeElemGroup( in SMESH_GroupBase theElems,
boolean DoubleNodeElemGroup( in SMESH_GroupBase theElems,
in SMESH_GroupBase theNodesNot,
in SMESH_GroupBase theAffectedElems );
/*!
* \brief Creates a hole in a mesh by doubling the nodes of some particular elements.
* Works as DoubleNodeElemGroup() described above, but returns a new group with
* Works as DoubleNodeElemGroup() described above, but returns a new group with
* newly created elements.
* \param theElems - group of of elements (edges or faces) to be replicated
* \param theNodesNot - group of nodes not to replicated
@ -874,10 +873,10 @@ module SMESH
* \return a new group with newly created elements
* \sa DoubleNodeElemGroup()
*/
SMESH_Group DoubleNodeElemGroupNew( in SMESH_GroupBase theElems,
in SMESH_GroupBase theNodesNot,
in SMESH_GroupBase theAffectedElems );
SMESH_Group DoubleNodeElemGroupNew( in SMESH_GroupBase theElems,
in SMESH_GroupBase theNodesNot,
in SMESH_GroupBase theAffectedElems );
/*!
* \brief Creates a hole in a mesh by doubling the nodes of some particular elements
* This method provided for convenience works as DoubleNodes() described above.
@ -889,7 +888,7 @@ module SMESH
* \return TRUE if operation has been completed successfully, FALSE otherwise
* \sa DoubleNodesInRegion(), DoubleNodeGroupsInRegion()
*/
boolean DoubleNodeElemGroupInRegion( in SMESH_GroupBase theElems,
boolean DoubleNodeElemGroupInRegion( in SMESH_GroupBase theElems,
in SMESH_GroupBase theNodesNot,
in GEOM::GEOM_Object theShape );
@ -951,13 +950,13 @@ module SMESH
* \param meshName - a name of new mesh to store created boundary elements in,
* "" means not to create the new mesh
* \param toCopyElements - if true, the checked elements will be copied into the new mesh
* \param toCopyExistingBondary - if true, not only new but also pre-existing
* \param toCopyExistingBondary - if true, not only new but also pre-existing
* boundary elements will be copied into the new mesh
* \param group - returns the create group, if any
* \retval SMESH::SMESH_Mesh - the mesh where elements were added to
*/
SMESH::SMESH_Mesh MakeBoundaryMesh(in SMESH_IDSource elements,
in Bnd_Dimension dimension,
in Bnd_Dimension dimension,
in string groupName,
in string meshName,
in boolean toCopyElements,

View File

@ -19,13 +19,11 @@
//
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
// File : SMESH_DumpPython.cxx
// Created : Thu Mar 24 17:17:59 2005
// Author : Julia DOROVSKIKH
// Module : SMESH
// File : SMESH_Gen_i_DumpPython.cxx
// Created : Thu Mar 24 17:17:59 2005
// Author : Julia DOROVSKIKH
// Module : SMESH
// $Header : $
//
#include "SMESH_PythonDump.hxx"
#include "SMESH_Gen_i.hxx"
#include "SMESH_Filter_i.hxx"
@ -73,42 +71,42 @@ namespace SMESH
}
}
TPythonDump&
TPythonDump&
TPythonDump::
operator<<(long int theArg){
myStream<<theArg;
return *this;
}
TPythonDump&
TPythonDump&
TPythonDump::
operator<<(int theArg){
myStream<<theArg;
return *this;
}
TPythonDump&
TPythonDump&
TPythonDump::
operator<<(double theArg){
myStream<<theArg;
return *this;
}
TPythonDump&
TPythonDump&
TPythonDump::
operator<<(float theArg){
myStream<<theArg;
return *this;
}
TPythonDump&
TPythonDump&
TPythonDump::
operator<<(const void* theArg){
myStream<<theArg;
return *this;
}
TPythonDump&
TPythonDump&
TPythonDump::
operator<<(const char* theArg){
if ( theArg )
@ -116,7 +114,7 @@ namespace SMESH
return *this;
}
TPythonDump&
TPythonDump&
TPythonDump::
operator<<(const SMESH::ElementType& theArg)
{
@ -163,21 +161,21 @@ namespace SMESH
theStream << " ]";
}
TPythonDump&
TPythonDump&
TPythonDump::operator<<(const SMESH::long_array& theArg)
{
DumpArray( theArg, *this );
return *this;
}
TPythonDump&
TPythonDump&
TPythonDump::operator<<(const SMESH::double_array& theArg)
{
DumpArray( theArg, *this );
return *this;
}
TPythonDump&
TPythonDump&
TPythonDump::
operator<<(SALOMEDS::SObject_ptr aSObject)
{
@ -188,7 +186,7 @@ namespace SMESH
return *this;
}
TPythonDump&
TPythonDump&
TPythonDump::
operator<<(CORBA::Object_ptr theArg)
{
@ -209,7 +207,7 @@ namespace SMESH
return *this;
}
TPythonDump&
TPythonDump&
TPythonDump::
operator<<(SMESH::SMESH_Hypothesis_ptr theArg)
{
@ -222,7 +220,7 @@ namespace SMESH
return *this;
}
TPythonDump&
TPythonDump&
TPythonDump::
operator<<(SMESH::SMESH_IDSource_ptr theArg)
{
@ -238,7 +236,7 @@ namespace SMESH
return *this << mesh << ".GetIDSource(" << anElementsId << ", " << type << ")";
}
TPythonDump&
TPythonDump&
TPythonDump::
operator<<(SMESH::FilterLibrary_i* theArg)
{
@ -246,7 +244,7 @@ namespace SMESH
return *this;
}
TPythonDump&
TPythonDump&
TPythonDump::
operator<<(SMESH::FilterManager_i* theArg)
{
@ -254,7 +252,7 @@ namespace SMESH
return *this;
}
TPythonDump&
TPythonDump&
TPythonDump::
operator<<(SMESH::Filter_i* theArg)
{
@ -262,7 +260,7 @@ namespace SMESH
return *this;
}
TPythonDump&
TPythonDump&
TPythonDump::
operator<<(SMESH::Functor_i* theArg)
{
@ -316,7 +314,7 @@ namespace SMESH
return *this;
}
TPythonDump&
TPythonDump&
TPythonDump::
operator<<(SMESH::Measurements_i* theArg)
{
@ -378,6 +376,11 @@ namespace SMESH
DumpArray( theList, *this );
return *this;
}
TPythonDump& TPythonDump::operator<<(const SMESH::ListOfGroups * theList)
{
DumpArray( *theList, *this );
return *this;
}
TPythonDump& TPythonDump::operator<<(const SMESH::ListOfIDSources& theList)
{
DumpArray( theList, *this );
@ -390,7 +393,7 @@ namespace SMESH
//================================================================================
/*!
* \brief Return marker of long string literal beginning
* \param type - a name of functionality producing the string literal
* \param type - a name of functionality producing the string literal
* \retval TCollection_AsciiString - the marker string to be written into
* a raw python script
*/
@ -426,7 +429,7 @@ namespace SMESH
* \param theLongString - the retrieved literal
* \param theStringType - a name of functionality produced the literal
* \retval bool - true if a string literal found
*
*
* The literal is removed from theText; theFrom points position right after
* the removed literal
*/
@ -481,7 +484,7 @@ namespace SMESH
//=======================================================================
//function : DumpPython
//purpose :
//purpose :
//=======================================================================
Engines::TMPFile* SMESH_Gen_i::DumpPython (CORBA::Object_ptr theStudy,
CORBA::Boolean isPublished,
@ -527,17 +530,17 @@ Engines::TMPFile* SMESH_Gen_i::DumpPython (CORBA::Object_ptr theStudy,
aScript += DumpPython_impl(aStudy, aMap, aMapNames,
isPublished, isValidScript, aSavedTrace);
int aLen = aScript.Length();
int aLen = aScript.Length();
unsigned char* aBuffer = new unsigned char[aLen+1];
strcpy((char*)aBuffer, aScript.ToCString());
CORBA::Octet* anOctetBuf = (CORBA::Octet*)aBuffer;
Engines::TMPFile_var aStreamFile = new Engines::TMPFile(aLen+1, aLen+1, anOctetBuf, 1);
Engines::TMPFile_var aStreamFile = new Engines::TMPFile(aLen+1, aLen+1, anOctetBuf, 1);
bool hasNotPublishedObjects = aScript.Location( NotPublishedObjectName(), 1, aLen);
isValidScript = isValidScript && !hasNotPublishedObjects;
return aStreamFile._retn();
return aStreamFile._retn();
}
//=============================================================================
@ -568,7 +571,7 @@ void SMESH_Gen_i::RemoveLastFromPythonScript (int theStudyID)
//=======================================================================
//function : SavePython
//purpose :
//purpose :
//=======================================================================
void SMESH_Gen_i::SavePython (SALOMEDS::Study_ptr theStudy)
{
@ -621,10 +624,10 @@ Handle(TColStd_HSequenceOfInteger) FindEntries (TCollection_AsciiString& theStri
int c = (int)arr[i];
j = i+1;
if ( isdigit( c )) { //Is digit?
isFound = Standard_False;
while((j < aLen) && ( isdigit(c) || c == ':' )) { //Check if it is an entry
c = (int)arr[j++];
c = (int)arr[j++];
if(c == ':') isFound = Standard_True;
}
@ -685,10 +688,10 @@ namespace {
*/
//=============================================================================
TCollection_AsciiString SMESH_Gen_i::DumpPython_impl
(SALOMEDS::Study_ptr theStudy,
(SALOMEDS::Study_ptr theStudy,
Resource_DataMapOfAsciiStringAsciiString& theObjectNames,
Resource_DataMapOfAsciiStringAsciiString& theNames,
bool isPublished,
bool isPublished,
bool& aValidScript,
const TCollection_AsciiString& theSavedTrace)
{

View File

@ -19,12 +19,11 @@
//
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
// File : SMESH_Gen_i.hxx
// Author : Paul RASCLE, EDF
// Module : SMESH
//
#ifndef _SMESH_GEN_I_HXX_
#define _SMESH_GEN_I_HXX_
@ -65,8 +64,8 @@ public:
// constructor
StudyContext() {}
// destructor
~StudyContext()
{
~StudyContext()
{
mapIdToIOR.clear();
mapIdToId.clear();
}
@ -114,7 +113,7 @@ public:
}
return 0;
}
private:
// get next free object identifier
int getNextId()
@ -134,7 +133,7 @@ private:
// ==========================================================
class SMESH_I_EXPORT SMESH_Gen_i:
public virtual POA_SMESH::SMESH_Gen,
public virtual Engines_Component_i
public virtual Engines_Component_i
{
public:
// Get last created instance of the class
@ -160,14 +159,14 @@ public:
GEOM::GEOM_Object_ptr ShapeToGeomObject (const TopoDS_Shape& theShape );
// Get TopoDS_Shape correspoding to GEOM_Object
TopoDS_Shape GeomObjectToShape(GEOM::GEOM_Object_ptr theGeomObject);
// Default constructor
SMESH_Gen_i();
// Standard constructor
SMESH_Gen_i( CORBA::ORB_ptr orb,
PortableServer::POA_ptr poa,
PortableServer::ObjectId* contId,
const char* instanceName,
PortableServer::ObjectId* contId,
const char* instanceName,
const char* interfaceName );
// Destructor
virtual ~SMESH_Gen_i();
@ -196,7 +195,7 @@ public:
SMESH::SMESH_Hypothesis_ptr CreateHypothesis (const char* theHypType,
const char* theLibName)
throw ( SALOME::SALOME_Exception );
// Return hypothesis of given type holding parameter values of the existing mesh
SMESH::SMESH_Hypothesis_ptr GetHypothesisParameterValues (const char* theHypType,
const char* theLibName,
@ -204,7 +203,7 @@ public:
GEOM::GEOM_Object_ptr theGeom,
CORBA::Boolean byMesh)
throw ( SALOME::SALOME_Exception );
/*!
* Sets number of segments per diagonal of boundary box of geometry by which
* default segment length of appropriate 1D hypotheses is defined
@ -266,7 +265,7 @@ public:
CORBA::Boolean IsReadyToCompute( SMESH::SMESH_Mesh_ptr theMesh,
GEOM::GEOM_Object_ptr theShapeObject )
throw ( SALOME::SALOME_Exception );
/*!
* Calculate Mesh as preview till indicated dimension on shape
* First, verify list of hypothesis associated with the subShape.
@ -279,7 +278,7 @@ public:
throw ( SALOME::SALOME_Exception );
// Returns errors of hypotheses definintion
SMESH::algo_error_array* GetAlgoState( SMESH::SMESH_Mesh_ptr theMesh,
SMESH::algo_error_array* GetAlgoState( SMESH::SMESH_Mesh_ptr theMesh,
GEOM::GEOM_Object_ptr theSubObject )
throw ( SALOME::SALOME_Exception );
@ -305,25 +304,25 @@ public:
throw ( SALOME::SALOME_Exception );
// Concatenate the given meshes into one mesh
SMESH::SMESH_Mesh_ptr ConcatenateCommon(const SMESH::mesh_array& theMeshesArray,
CORBA::Boolean theUniteIdenticalGroups,
CORBA::Boolean theMergeNodesAndElements,
SMESH::SMESH_Mesh_ptr ConcatenateCommon(const SMESH::mesh_array& theMeshesArray,
CORBA::Boolean theUniteIdenticalGroups,
CORBA::Boolean theMergeNodesAndElements,
CORBA::Double theMergeTolerance,
CORBA::Boolean theCommonGroups)
throw ( SALOME::SALOME_Exception );
// Concatenate the given meshes into one mesh
SMESH::SMESH_Mesh_ptr Concatenate(const SMESH::mesh_array& theMeshesArray,
CORBA::Boolean theUniteIdenticalGroups,
CORBA::Boolean theMergeNodesAndElements,
SMESH::SMESH_Mesh_ptr Concatenate(const SMESH::mesh_array& theMeshesArray,
CORBA::Boolean theUniteIdenticalGroups,
CORBA::Boolean theMergeNodesAndElements,
CORBA::Double theMergeTolerance)
throw ( SALOME::SALOME_Exception );
// Concatenate the given meshes into one mesh
// Create the groups of all elements from initial meshes
SMESH::SMESH_Mesh_ptr ConcatenateWithGroups(const SMESH::mesh_array& theMeshesArray,
CORBA::Boolean theUniteIdenticalGroups,
CORBA::Boolean theMergeNodesAndElements,
SMESH::SMESH_Mesh_ptr ConcatenateWithGroups(const SMESH::mesh_array& theMeshesArray,
CORBA::Boolean theUniteIdenticalGroups,
CORBA::Boolean theMergeNodesAndElements,
CORBA::Double theMergeTolerance)
throw ( SALOME::SALOME_Exception );
@ -368,10 +367,10 @@ public:
// Clears study-connected data when it is closed
void Close( SALOMEDS::SComponent_ptr theComponent );
// Get component data type
char* ComponentDataType();
// Transform data from transient form to persistent
char* IORToLocalPersistentID( SALOMEDS::SObject_ptr theSObject,
const char* IORString,
@ -389,7 +388,7 @@ public:
SALOMEDS::SObject_ptr PublishInStudy( SALOMEDS::Study_ptr theStudy,
SALOMEDS::SObject_ptr theSObject,
CORBA::Object_ptr theObject,
const char* theName )
const char* theName )
throw ( SALOME::SALOME_Exception );
// Copy-paste methods - returns true if object can be copied to the clipboard
@ -410,8 +409,8 @@ public:
// Dump python
// ============
virtual Engines::TMPFile* DumpPython(CORBA::Object_ptr theStudy,
CORBA::Boolean isPublished,
virtual Engines::TMPFile* DumpPython(CORBA::Object_ptr theStudy,
CORBA::Boolean isPublished,
CORBA::Boolean& isValidScript);
void AddToPythonScript (int theStudyID, const TCollection_AsciiString& theString);
@ -420,10 +419,10 @@ public:
void SavePython (SALOMEDS::Study_ptr theStudy);
TCollection_AsciiString DumpPython_impl (SALOMEDS::Study_ptr theStudy,
TCollection_AsciiString DumpPython_impl (SALOMEDS::Study_ptr theStudy,
Resource_DataMapOfAsciiStringAsciiString& theObjectNames,
Resource_DataMapOfAsciiStringAsciiString& theNames,
bool isPublished,
bool isPublished,
bool& aValidScript,
const TCollection_AsciiString& theSavedTrace);
@ -439,7 +438,7 @@ public:
// Get shape reader
GEOM_Client* GetShapeReader();
// Tags definition
// Tags definition
static long GetHypothesisRootTag();
static long GetAlgorithmsRootTag();
static long GetRefOnShapeTag();
@ -503,7 +502,7 @@ public:
CORBA::Long GetObjectId(CORBA::Object_ptr theObject);
// Return an object that previously had an oldID
template<class TInterface>
template<class TInterface>
typename TInterface::_var_type GetObjectByOldId( const int oldID )
{
if ( StudyContext* myStudyContext = GetCurrentStudyContext() ) {
@ -525,20 +524,20 @@ public:
void UpdateParameters(CORBA::Object_ptr theObject, const char* theParameters);
char* GetParameters(CORBA::Object_ptr theObject);
char* ParseParameters(const char* theParameters);
private:
// Create hypothesis of given type
SMESH::SMESH_Hypothesis_ptr createHypothesis( const char* theHypName,
const char* theLibName)
throw ( SALOME::SALOME_Exception );
// Create empty mesh on shape
SMESH::SMESH_Mesh_ptr createMesh()
throw ( SALOME::SALOME_Exception );
static void loadGeomData( SALOMEDS::SComponent_ptr theCompRoot );
private:
static GEOM::GEOM_Gen_var myGeomGen;
static CORBA::ORB_var myOrb; // ORB reference

File diff suppressed because it is too large Load Diff

View File

@ -18,7 +18,6 @@
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
#ifndef _SMESH_PYTHONDUMP_HXX_
#define _SMESH_PYTHONDUMP_HXX_
@ -88,71 +87,71 @@ namespace SMESH
public:
TPythonDump();
virtual ~TPythonDump();
TPythonDump&
TPythonDump&
operator<<(long int theArg);
TPythonDump&
TPythonDump&
operator<<(int theArg);
TPythonDump&
TPythonDump&
operator<<(double theArg);
TPythonDump&
TPythonDump&
operator<<(float theArg);
TPythonDump&
TPythonDump&
operator<<(const void* theArg);
TPythonDump&
TPythonDump&
operator<<(const char* theArg);
TPythonDump&
TPythonDump&
operator<<(const SMESH::ElementType& theArg);
TPythonDump&
operator<<(const SMESH::GeometryType& theArg);
TPythonDump&
TPythonDump&
operator<<(const SMESH::long_array& theArg);
TPythonDump&
TPythonDump&
operator<<(const SMESH::double_array& theArg);
TPythonDump&
TPythonDump&
operator<<(SMESH::SMESH_Hypothesis_ptr theArg);
TPythonDump&
TPythonDump&
operator<<(SMESH::SMESH_IDSource_ptr theArg);
TPythonDump&
TPythonDump&
operator<<(SALOMEDS::SObject_ptr theArg);
TPythonDump&
TPythonDump&
operator<<(CORBA::Object_ptr theArg);
TPythonDump&
TPythonDump&
operator<<(SMESH::FilterLibrary_i* theArg);
TPythonDump&
TPythonDump&
operator<<(SMESH::FilterManager_i* theArg);
TPythonDump&
TPythonDump&
operator<<(SMESH::Filter_i* theArg);
TPythonDump&
TPythonDump&
operator<<(SMESH::Functor_i* theArg);
TPythonDump&
TPythonDump&
operator<<(SMESH::Measurements_i* theArg);
TPythonDump&
TPythonDump&
operator<<(SMESH_Gen_i* theArg);
TPythonDump&
TPythonDump&
operator<<(SMESH_MeshEditor_i* theArg);
TPythonDump&
TPythonDump&
operator<<(SMESH::MED_VERSION theArg);
TPythonDump&
@ -167,6 +166,9 @@ namespace SMESH
TPythonDump&
operator<<(const SMESH::ListOfGroups& theList);
TPythonDump&
operator<<(const SMESH::ListOfGroups * theList);
TPythonDump&
operator<<(const SMESH::ListOfIDSources& theList);
@ -175,7 +177,7 @@ namespace SMESH
/*!
* \brief Return marker of long string literal beginning
* \param type - a name of functionality producing the string literal
* \param type - a name of functionality producing the string literal
* \retval TCollection_AsciiString - the marker string to be written into
* a raw python script
*/
@ -193,7 +195,7 @@ namespace SMESH
* \param theLongString - the retrieved literal
* \param theStringType - a name of functionality produced the literal
* \retval bool - true if a string literal found
*
*
* The literal is removed from theText; theFrom points position right after
* the removed literal
*/

View File

@ -3139,7 +3139,8 @@ class Mesh:
return []
## Generates new elements by rotation of the elements of object around the axis
# @param theObject object which elements should be sweeped
# @param theObject object which elements should be sweeped.
# It can be a mesh, a sub mesh or a group.
# @param Axis the axis of rotation, AxisStruct or line(geom object)
# @param AngleInRadians the angle of Rotation
# @param NbOfSteps number of steps
@ -3174,7 +3175,8 @@ class Mesh:
return []
## Generates new elements by rotation of the elements of object around the axis
# @param theObject object which elements should be sweeped
# @param theObject object which elements should be sweeped.
# It can be a mesh, a sub mesh or a group.
# @param Axis the axis of rotation, AxisStruct or line(geom object)
# @param AngleInRadians the angle of Rotation
# @param NbOfSteps number of steps
@ -3209,7 +3211,8 @@ class Mesh:
return []
## Generates new elements by rotation of the elements of object around the axis
# @param theObject object which elements should be sweeped
# @param theObject object which elements should be sweeped.
# It can be a mesh, a sub mesh or a group.
# @param Axis the axis of rotation, AxisStruct or line(geom object)
# @param AngleInRadians the angle of Rotation
# @param NbOfSteps number of steps
@ -3286,7 +3289,8 @@ class Mesh:
return []
## Generates new elements by extrusion of the elements which belong to the object
# @param theObject the object which elements should be processed
# @param theObject the object which elements should be processed.
# It can be a mesh, a sub mesh or a group.
# @param StepVector vector, defining the direction and value of extrusion
# @param NbOfSteps the number of steps
# @param MakeGroups forces the generation of new groups from existing ones
@ -3307,7 +3311,8 @@ class Mesh:
return []
## Generates new elements by extrusion of the elements which belong to the object
# @param theObject object which elements should be processed
# @param theObject object which elements should be processed.
# It can be a mesh, a sub mesh or a group.
# @param StepVector vector, defining the direction and value of extrusion
# @param NbOfSteps the number of steps
# @param MakeGroups to generate new groups from existing ones
@ -3328,7 +3333,8 @@ class Mesh:
return []
## Generates new elements by extrusion of the elements which belong to the object
# @param theObject object which elements should be processed
# @param theObject object which elements should be processed.
# It can be a mesh, a sub mesh or a group.
# @param StepVector vector, defining the direction and value of extrusion
# @param NbOfSteps the number of steps
# @param MakeGroups forces the generation of new groups from existing ones
@ -3352,7 +3358,7 @@ class Mesh:
## Generates new elements by extrusion of the given elements
# The path of extrusion must be a meshed edge.
# @param Base mesh or list of ids of elements for extrusion
# @param Base mesh or group, or submesh, or list of ids of elements for extrusion
# @param Path - 1D mesh or 1D sub-mesh, along which proceeds the extrusion
# @param NodeStart the start node from Path. Defines the direction of extrusion
# @param HasAngles allows the shape to be rotated around the path
@ -3379,8 +3385,7 @@ class Mesh:
Parameters = AnglesParameters + var_separator + RefPointParameters
self.mesh.SetParameters(Parameters)
if (isinstance(Path, Mesh)):
Path = Path.GetMesh()
if (isinstance(Path, Mesh)): Path = Path.GetMesh()
if isinstance(Base, list):
IDsOfElements = []
@ -3443,7 +3448,8 @@ class Mesh:
## Generates new elements by extrusion of the elements which belong to the object
# The path of extrusion must be a meshed edge.
# @param theObject the object which elements should be processed
# @param theObject the object which elements should be processed.
# It can be a mesh, a sub mesh or a group.
# @param PathMesh mesh containing a 1D sub-mesh on the edge, along which the extrusion proceeds
# @param PathShape shape(edge) defines the sub-mesh for the path
# @param NodeStart the first or the last node on the edge. Defines the direction of extrusion
@ -3485,7 +3491,8 @@ class Mesh:
## Generates new elements by extrusion of the elements which belong to the object
# The path of extrusion must be a meshed edge.
# @param theObject the object which elements should be processed
# @param theObject the object which elements should be processed.
# It can be a mesh, a sub mesh or a group.
# @param PathMesh mesh containing a 1D sub-mesh on the edge, along which the extrusion proceeds
# @param PathShape shape(edge) defines the sub-mesh for the path
# @param NodeStart the first or the last node on the edge. Defines the direction of extrusion
@ -3527,7 +3534,8 @@ class Mesh:
## Generates new elements by extrusion of the elements which belong to the object
# The path of extrusion must be a meshed edge.
# @param theObject the object which elements should be processed
# @param theObject the object which elements should be processed.
# It can be a mesh, a sub mesh or a group.
# @param PathMesh mesh containing a 1D sub-mesh on the edge, along which the extrusion proceeds
# @param PathShape shape(edge) defines the sub-mesh for the path
# @param NodeStart the first or the last node on the edge. Defines the direction of extrusion