Salome HOME
Join modifications from branch BR_DEBUG_3_2_0b1 BR_SPLITTER T3_2_0b2 T3_2_1_pre V3_2_0 V3_2_0b2 V3_2_1
authorjfa <jfa@opencascade.com>
Thu, 1 Jun 2006 11:21:18 +0000 (11:21 +0000)
committerjfa <jfa@opencascade.com>
Thu, 1 Jun 2006 11:21:18 +0000 (11:21 +0000)
39 files changed:
doc/MEDMEM/FIELDcreate.cxx
doc/MEDMEM/FIELDcreate.py
doc/MEDMEM/FIELDgeneral.cxx
doc/MEDMEM/FIELDgeneral.py
doc/MEDMEM/MEDMEM_Content.tex.in [new file with mode: 0644]
doc/MEDMEM/MEDMEM_InvokingDriverAtObjectCreationTime.cxx
doc/MEDMEM/MEDMEM_InvokingDriverAtObjectCreationTime.py
doc/MEDMEM/MEDMEM_InvokingDriverByAttachingItToAnObject.cxx
doc/MEDMEM/MEDMEM_InvokingDriverByAttachingItToAnObject.py
doc/MEDMEM/MEDMEM_InvokingDriverFromStandardObjectMethod.cxx
doc/MEDMEM/MEDMEM_InvokingDriverFromStandardObjectMethod.py
doc/MEDMEM/MEDMEM_MedAddingAnExistingObject.cxx
doc/MEDMEM/MEDMEM_UML.dia [deleted file]
doc/MEDMEM/MEDMEM_UML.png.in [new file with mode: 0644]
doc/MEDMEM/MEDMEM_UML_light.png.in [new file with mode: 0644]
doc/MEDMEM/MEDMEM_UsersGuide.tex.in
doc/MEDMEM/MESHINGexample.cxx
doc/MEDMEM/MESHINGexample.py [new file with mode: 0644]
doc/MEDMEM/MESHconnectivities.cxx
doc/MEDMEM/MESHconnectivities.py
doc/MEDMEM/MESHcoordinates.cxx
doc/MEDMEM/MESHcoordinates.py
doc/MEDMEM/MESHgeneral.cxx
doc/MEDMEM/MESHgeneral.py
doc/MEDMEM/Makefile.in
doc/Makefile.in
doc/html/INPUT/doxyfile [deleted file]
doc/html/INPUT/doxyfile.in [new file with mode: 0755]
doc/html/Makefile.in
doc/salome/MED_index_v3.1.0.html [deleted file]
doc/salome/Makefile.in
doc/salome/tui/MED/doxyfile [deleted file]
doc/salome/tui/MED/doxyfile.in [new file with mode: 0755]
doc/salome/tui/MED/sources/footer.html [new file with mode: 0755]
doc/salome/tui/MED/sources/myheader.html
doc/salome/tui/MED/sources/static/doxygen.css
doc/salome/tui/MED/sources/static/tree.js [deleted file]
doc/salome/tui/MED/sources/static/tree.js.in [new file with mode: 0755]
doc/salome/tui/Makefile.in

index ca07064670825cdb6813d21d125aa6f1288c6d0c..d7535213dd4da66525e6154ad28ebc9a728f6507 100644 (file)
@@ -1,21 +1,5 @@
 // Copyright (C) 2005  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/
 //
 using namespace std;
 #include "MEDMEM_Mesh.hxx"
index 478d6dc5681ba648342563ecaca8d85cf26300b0..908aac18062a3b726121f98876cf0d7af034761f 100644 (file)
@@ -1,3 +1,6 @@
+# Copyright (C) 2005  OPEN CASCADE, CEA, EDF R&D, LEG
+#           PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT
+# 
 ######################################################################
 #                                                                    #
 # This Python script should be executed when the shared library is   #
index 82771051a9829cec5285f5dd90083290086fef59..6a546ee3b7c5fe7f238a51180864d152cfb84fe6 100644 (file)
@@ -1,21 +1,5 @@
 // Copyright (C) 2005  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/
 //
 using namespace std;
 #include "MEDMEM_Mesh.hxx"
index 34f6873ab0493892816394d271ef9d5673991bc8..5daf18bda710941581ad2108d429ba5d849fa34a 100644 (file)
@@ -1,3 +1,6 @@
+# Copyright (C) 2005  OPEN CASCADE, CEA, EDF R&D, LEG
+#           PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT
+# 
 ######################################################################
 #                                                                    #
 # This Python script should be executed when the shared library is   #
diff --git a/doc/MEDMEM/MEDMEM_Content.tex.in b/doc/MEDMEM/MEDMEM_Content.tex.in
new file mode 100644 (file)
index 0000000..109e8bc
--- /dev/null
@@ -0,0 +1,959 @@
+%  ___________________________________________________________________________
+% |                                                                           |
+% |                             DEBUT DU TEXTE                                |
+% |___________________________________________________________________________|
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\chapter{Introduction}
+\section{Rationale for Med Memory}
+The Med data exchange model (DEM in proper english) is the format used in the
+Salome platform for communicating data between different components. It
+manipulates objects that describe the meshes underlying scientific
+computations and the value fields lying on these meshes. This data exchange
+can be achieved either through files using the Med-file formalism or directly
+through memory with the Med Memory (\verb+MEDMEM+) library.
+
+The Med libraries are oganized in multiple layers:
+\begin{itemize}
+\item The MED file layer : C and Fortran API to implement mesh and field
+persistency.
+\item The MED Memory level C++ API to create and manipulate mesh and field
+objects in memory.
+\item Python API generated using SWIG which wraps the complete C++ API of the
+MED Memory
+\item CORBA API to simplify distributed computation inside SALOME (Server
+Side).
+\item MED Client classes to simplify and optimize interaction of distant
+objects within the local solver.
+\end{itemize}
+
+Thanks to Med Memory, any component can access a distant 
+mesh or field object. Two codes running on 
+different machines can thus exchange meshes and fields.
+These meshes and fields can easily be read/written in a Med file
+format, enabling access to the whole Salome suite of tools
+(CAD, meshing, Visualization, other components).
+
+\section{Outline}
+
+In this document, we describe the API of the Med Memory library (available in
+C++ and in Python). This document is intended for developers who are in charge
+of integrating existing applications in the Salome platform.
+
+As will be seen in section \ref{sec:objects}, the API consists
+of very few classes:
+\begin{itemize}
+\item a general MED container,
+\item meshes,
+\item supports and derived classes,
+\item fields
+\item drivers for reading and writing in MED, GIBI and VTK files.
+\end{itemize}
+
+All these are detailed in the following sections. The C++ 
+formalism will be used for the description in these sections.
+ Python syntax is very similar and is given in appendix \ref{sec:python}.
+
+\section{Naming conventions}
+The naming conventions are rather straightforward, but the user used to the
+Med-File semantics may find that there are a few noticeable differences (see
+the following section).
+\begin{description}
+\item[cell] entity of dimension equal to the mesh dimension ($1$, $2$ or $3$).
+\item[component] in a field, represents a value that is available for each
+element of the support (for instance : $T$, $v_x$, $\sigma_{xy}$)).
+\item[connectivity (descending)] connectivity table expressing connectivity of
+dimension $d$ elements in terms of list of dimension $d-1$ elements.
+\item[connectivity (nodal)] connectivity table expressing connectivity of
+dimension $d$ elements in terms of list of nodes.
+\item[coordinates] in a mesh, coordinates can be described by strings giving
+the names of the coordinates, the units of the coordinates, and the type of
+coordinates ('CARTESIAN', 'SPHERICAL' or 'CYLINDRICAL').
+\item[description] string of characters used to describ an object without
+giving any access to a query method.
+\item[dimension] Med Memory discriminates the mesh dimension from the space
+dimension (a surface shape in $3D$ will have $2$ as a mesh dimension).
+\item[driver] object attached to a mesh or a field to read (resp. write) data
+from (resp. to) a Med-file.
+\item[edge] entity of dimension $1$ in a $2D$ mesh.
+\item[element]  elementary component of a mesh ($0D$, $1D$, $2D$ or $3D$).
+\item[entity] category giving information on the dimension of elementary
+components of meshes : node, edge, face (only in $3D$) or cell.
+\item[face] for $3D$ meshes, faces are the $2D$ entities.
+\item[family] support which is composed of a set of groups, which do not
+intersect each other, and which gives access to those groups.
+\item[field] array of integer, integer array, real or real array lying on a
+support (the dimension of the array of values for each element of the support
+is called the number of components). A field is uniquely defined by its name,
+its support, its iteration number and its order number. $-1$ is the default
+value of those two numbers.
+\item[group] support with additional access to parent families.
+\item[iteration number] information attached to a field that expresses the
+number of the time step in the computation ($-1$ is its default value).
+\item[name] information attached to a mesh, support or field to name it and access to it.
+\item[node] entity of dimension $0$.
+\item[order number] information attached to a field that expresses the number
+of an internal iteration inside a time step in the computation ($-1$ is its
+default value).
+\item[support] list of elements of the same entity.
+\item[type] category of an entity (triangle, segment, quadrangle, tetrahedron,
+hexahedron, etc...).
+\end{description}
+
+\section{Limitations and advantages regarding Med-File}
+The Med Memory may only read meshes defined by their nodale connectivities.
+Following this assumption, in Med File framework all elements defined
+in the mesh should be stored as a {\bf MED\_MAILLE}.
+
+The Med Memory is able to read meshes defined by their nodale connectivities,
+and where somme geometric faces are stored as a {\bf MED\_FACE} or a
+{\bf MED\_ARETE} Med files. Which is not really Med File compliant.
+
+{\bf MED\_MAILLE}, {\bf MED\_FACE} and {\bf MED\_ARETE} should be taken in the
+Med File sense. In future version, meshes defined by their descending
+connectivities could be treated.
+
+The field notion in Med File and Med Memory is quite different. In Med memory
+a field is of course its name, but as well its iteration number, its order
+number and finally its corresponding sot of values. But in Med File a field is
+only flagged by its name.
+
+\chapter{Med Memory API}\label{sec:objects}
+
+\section{Conventions}
+
+\begin{itemize}
+\item In this document, one refers to the main user documentation
+\cite{RefManualMedMemory} where the variable \verb+$MED_ROOT_DIR+ (resp.
+\verb+$MED_SRC_DIR+) is the Med Memory directory installation (resp. sources
+directory).
+
+\item All numberings start at one (take care of array index !).
+
+\item When one gets a C (resp. C++) type array (resp. container) using a \texttt{get...} method, one should
+not replace some value of it. Access is in read only. Other use may
+product an impredicable result. To modify a such array (resp. container) use a \texttt{set...}
+method.
+
+\item There are many couple of methods that have similar syntaxes (one singular and one 
+plural). The plural method returns an array and the singular one returns one 
+particular value in this array (see \method{double getCoordinate(int i)} and 
+\method{double* getCoordinates()} for example).
+
+\item Difference between local and global number in mesh element connectivity list~: when one talks about an 
+element number, one could see $i^{th}$ quadrangle ($i^{th}$ in quadrangles 
+array~: local numbering) or $j^{th}$ element ($j^{th}$ in all elements array~: 
+global numbering). These two numbering are equivalent only if one has only one 
+geometric type ;
+
+\end{itemize}
+
+\section{Namespaces}
+Med Memory uses two namespaces : \verb+MEDMEM+ which is the general 
+namespace where the main classes are defined and \verb+MED_EN+
+which defines enums that can be used by an English-speaking 
+programer.
+
+\section{Classes}
+At a basic usage level, the API consists in few classes which are located in
+the \verb+MEDMEM+ C++ namespace (consult figure \ref{fig:uml_light} which gives
+an UML diagram view of the main Med Memory classes~:
+\begin{description}
+\item[MED] the global container;
+\item[MESH] the class containing 2D or 3D mesh objects;
+\item[SUPPORT] the class containing mainly a list of mesh elements;
+\item[FIELD] the class template containing list of values lying on a
+particular support.
+\end{description}
+\begin{center}
+\begin{figure}
+\includegraphics[width=15cm]{MEDMEM_UML_light.png}
+\caption{UML diagram of basic Med Memory API classes.}\label{fig:uml_light}
+\end{figure}
+\end{center}
+The API of those classes is quite sufficient for most of the component
+integrations in the Salome platform. The use of the Med Memory libraries may
+make easier the code coupling in the Salome framework. With these classes, it
+is possible to~:
+\begin{itemize}
+\item read/write meshes and fields from MED-files;
+\item create fields containing scalar or vectorial values on list of elements
+of the mesh;
+\item communicate these fields between different components;
+\item read/write such fields.
+\end{itemize}
+Note that on the figure \ref{fig:uml_light} as well as \ref{fig:uml} that the
+MED container controls the life cycle of all the objects it contains~: its
+destructor will destroy all the objects it aggregates. On the other hand, the
+life cycle of mesh, support and field objects are independent. Destroying a
+support (resp. a mesh) will have no effect on the fields (resp. on the support)
+which refer to it. But the user has to maintain the link~: a mesh agregates a
+support which agregates a field. If the user has to delete Med Memory objects,
+the field has to be deleted first, then the support and finally the mesh.
+
+A more advanced usage of the Med Memory is possible through other classes.
+Figure \ref{fig:uml} gives a complete view of the Med Memory API. It includes :
+\begin{description}
+\item[GROUP] a class inherited from the SUPPORT class used to create supports
+linked to mesh groups. It stores restricted list of elements used to set
+boundary conditions, initial values.
+\item[FAMILY] which is used to manipulate a certain kind of support and does
+not intersect each other;
+\item[MESHING] which builds meshes from scratch, it can be used to transform
+meshes from a specific format to the MED format or to integrate a mesher
+within Salome platform (note that class does not add element or node to a
+mesh);
+\item[Driver classes] which enable the user to get a fine control of the I/O
+operations.
+\end{description}
+\begin{center}
+\begin{figure}
+\includegraphics[width=15cm]{MEDMEM_UML.png}
+\caption{UML diagram of Med Memory API classes.}\label{fig:uml}
+\end{figure}
+\end{center}
+\section{Enums}
+A few enums are defined in the \verb+MED_EN+ namespace :
+\begin{itemize}
+\item The \verb+medGeometryElement+ enum which defines geometry types. The
+available types are linear and quadratic elements (consult
+\cite{RefManualMedMemory}). The entries of the enum are quite
+self-explanatory~:
+\begin{itemize}
+\item \verb+MED_NONE+
+\item \verb+MED_POINT1+
+\item \verb+MED_SEG2+
+\item \verb+MED_SEG3+
+\item \verb+MED_TRIA3+
+\item \verb+MED_QUAD4+
+\item \verb+MED_TRIA6+
+\item \verb+MED_QUAD8+
+\item \verb+MED_TETRA4+
+\item \verb+MED_PYRA5+
+\item \verb+MED_PENTA6+
+\item \verb+MED_HEXA8+
+\item \verb+MED_TETRA10+
+\item \verb+MED_PYRA13+
+\item \verb+MED_PENTA15+
+\item \verb+MED_HEXA20+
+\item \verb+MED_POLYGON+
+\item \verb+MED_POLYHEDRA+
+\item \verb+MED_ALL_ELEMENTS+
+\end{itemize}
+\item
+an enum which contains the different mesh entities, \verb+medEntityMesh+, the
+entries of which being :
+\begin{itemize}
+\item \verb+MED_CELL+
+\item \verb+MED_FACE+
+\item \verb+MED_EDGE+
+\item \verb+MED_NODE+
+\item \verb+MED_ALL_ENTITIES+
+\end{itemize}
+\item an enum which describes the way node coordinates or field values are
+stored,
+\begin{itemize}
+\item \verb+MED_FULL_INTERLACE+ for arrays such that $x_1,y_1,z_1,x_2,y_2,z_2,\ldots,x_n,y_n,z_n$;
+\item \verb+MED_NO_INTERLACE+ for arrays such that $x_1,x_2,\ldots,x_n,y_1,y_2,\ldots,y_n,z_1,z_2,\ldots,z_n$;
+\item \verb+MED_UNDEFINED_INTERLACE+, the undefined interlacing mode.
+\end{itemize}
+\item
+an enum which describes the type of connectivity
+\begin{itemize}
+\item \verb+MED_NODAL+ for nodal connectivity;
+\item \verb+MED_DESCENDING+ for descending connectivity.
+\end{itemize}
+\end{itemize}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\chapter{How to use MED object}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\section{General Information}
+
+A typical use of this object is to mount in memory what is in a MED file (or
+any type of driver in red or read/write mode) and it will manage its memory on
+its own. Then from this object one can get some information such as~:
+
+\begin{itemize}
+\item the number of meshes stored in this object using the
+{\method{getNumberOfMeshes}}.
+\item the number of fields stored in this object using the
+{\method{getNumberOfFields}}.
+\item a list of mesh names using the {\method{getMeshNames}}.
+\item a list of field names using the {\method{getFieldNames}}.
+\item a list of MESH object using the {\method{getMesh}}
+\item a list of FIELD object using the {\method{getField}}
+\item a list of SUPPORT object on all type of entities (node, cell,
+ face in 3d or edge on 2d) using the {\method{getSupport}}.
+\end{itemize}
+
+The destructor of this object will destruct itself all FIELD, SUPPORT and MESH
+objects; via its get method you will have a pointer on this object and you
+should never delete it.
+
+One can add as well some MESH or FIELD object via the {\method{addMesh}} and
+the {\method{addField}} respectively.
+
+To write a complete MED object in an available writing format, on may use
+{\method{addDriver}} and then {\method{write}}.
+
+For an example using these methods, one may see the Python scripts in the
+directory \verb+$MED_ROOT_DIR/bin/salome/+,\verb+testMedObj.py+, or C++
+example program in the directory \verb+$MED_SRC_DIR/src/MEDMEM+,
+\verb+duplicateMED.cxx+.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\chapter{How to use MESH object}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+\section{General Information}
+
+We could get some general information about a MESH object such as~: 
+
+\begin{itemize}
+\item name (\method{getName}) 
+\item a description (\method{getDescription}) 
+\item the space dimension (\method{getSpaceDimension}) 
+\item the mesh dimension (\method{getMeshDimension}) 
+\end{itemize}
+
+Here is a small C++ example program which the Python version may be found in
+\ref{MESHgeneral.py}.
+
+\fileCxx{MESHgeneral.cxx}
+
+\section{Information about nodes}
+
+\begin{enumerate}
+\item I want to get the number of nodes~: Really simple, use \method{getNumberOfNodes}. 
+\item I want to get the coordinates components names~: use \method{getCoordinatesNames}
+which returns a string array (one string for each space dimension) 
+\item I want to get the coordinates components units~: use \method{getCoordinatesUnits}
+which returns a string array (one string for each space dimension) 
+\item I want to get the coordinates system~: use \method{getCoordinatesSystem}
+which returns a string (\verb+"CARTESIAN"+, \verb+"CYLINDRICAL"+ or \verb+"SPHERICAL"+). 
+\item I want to get the nodes coordinates~: use \method{getCoordinates}
+which return a pointer to the coordinates array where values are interlace
+or no. 
+
+\textbf{Warning~:}
+
+\begin{itemize}
+\item When we get coordinates in \verb+MED_NO_INTERLACE+ mode, we get an
+array where values are ordered like (\verb+X1,X2,X..., Y1,Y..., Z1,Z...+). 
+\item When we get coordinates in \verb+MED_FULL_INTERLACE+ mode, we get
+an array where values are ordered like (\verb+X1,Y1,Z1, X2,Y2,Z2, ...+). 
+\end{itemize}
+\item I want to get one particular value of coordinate~: use \method{getCoordinate}
+which returns the value of \( i^{th} \) node and \( j^{th} \) axis.
+\end{enumerate}
+
+Here is a small C++ example program which the Python version may be found in
+\ref{MESHcoordinates.py}.
+
+\fileCxx{MESHcoordinates.cxx}
+
+\section{Information about cells}
+
+\begin{enumerate}
+\item I want to get the number of geometric type for a mesh entity~: use
+\method{getNumberOfTypes}
+
+
+\textbf{C++ Example~:}
+
+\verb+int NumberOfCellsTypes = myMesh.getNumberOfTypes(MED_CELL);+
+
+%%%%%%%%%%%%%%%%%
+\item I want to get all geometric type for a mesh entity~: use 
+\method{getTypes} to get an array of \verb+medGeometryElement+ 
+(to use directly in others methods).
+
+\textbf{C++ Example~:}
+
+\verb+const medGeometryElement * Types = myMesh.getTypes(MED_CELL);+
+
+(array is of size \verb+NumberOfCellsTypes+)
+
+\item I want to get the number of cells~: use \method{getNumberOfElements}
+which return this information. You must give the mesh entity (\verb+MED_CELL+,
+\verb+MED_FACE+, \verb+MED_EDGE+ or \verb+MED_NODE+) and a geometric
+type of this entity.
+
+
+\textbf{C++ Example~:}
+
+\verb+int NumberOfTriangle = myMesh.getNumberOfElements(MED_FACE,MED_TRIA3);+
+
+\verb+int NumberOfFace = myMesh.getNumberOfElements(MED_FACE,MED_ALL_ELEMENT);+
+
+\item I want to get the geometric type of one element~: use \method{getElementType}
+which return a \verb+medGeometryElement+.
+
+
+\textbf{C++ Example~:}
+
+\verb+medGeometryElement myType = myMesh.getElementType(MED_FACE,10);+
+
+Return the \verb+medGeometryElement+ of \( 10^{th} \) face.
+
+\item I want to get a connectivity~: use \method{getConnectivity} which
+return an array with connectivity values.
+
+
+\label{getConnectivity}
+
+\textbf{C++ Example~:}
+
+\begin{verbatim}
+int NumberOfTetrahedron = myMesh.getNumberOfElements(MED_CELL,MED_TETRA4);
+const int * TetrahedronConnectivity =
+         myMesh.getConnectivity(MED_FULL_ENTERLACE,
+                                MED_NODAL,
+                                MED_CELL,
+                                MED_TETRA4);
+\end{verbatim}
+\verb+TetrahedronConnectivity+ contain nodal connectivity
+of tetrahedron in mesh. It is arranged in full enterlace mode and
+its size is \verb+NumberOfTetrahedron x 4+.
+
+If you want to get connectivity of all elements (with \verb+Type=MED_ALL_ELEMENTS+),
+you must use the index array (return by \method{getConnectivityIndex})
+to get connectivity for each elements (see example \myref{MESHconnectivities.cxx}).
+
+\item I want to get an element number from a connectivity~: use \method{getElementNumber}
+which return the global number of a given connectivity.
+
+
+\textbf{C++ Example~:}
+\begin{verbatim}
+int * myElementConnectivity = {2,10,12,14};
+int myNumber = myMesh.getElementNumber(MED_NODAL,MED_CELL,
+                                             myElementConnectivity);
+\end{verbatim}
+
+%%%%%%%%%%%  WITH POLY METHODS %%%%%%%%%%%%
+
+\item The listed above methods do not take into account information about
+  \verb+polygonal+ and \verb+polyhedral+ cells contained in a MESH object. To get
+  full information about cell types, use the same methods with
+  \verb+WithPoly+ postfix:
+\begin{itemize}
+\item use \method{getNumberOfTypesWithPoly} to get the number of
+  geometric types for a mesh entity;
+\item use \method{getTypesWithPoly} to get all geometric types for a mesh entity;
+\item use \method{getNumberOfElementsWithPoly} to get the number of cells;
+\item use \method{getElementTypeWithPoly} to get the geometric type of
+  one element.
+\end{itemize}
+There are separate methods to get number of polygons and polyhedrons:
+\method{getNumberOfPolygons} and \method{getNumberOfPolyhedron}
+
+To get connectivity of polygonal elements, use \method{getPolygonsConnectivity} along with
+\method{getPolygonsConnectivityIndex} (see example \myref{MESHconnectivities.cxx}).
+
+To get nodal connectivity of polyhedral elements, it is necessary use together
+3 methods: \method{getPolyhedronConnectivity}, \method{getPolyhedronFacesIndex}
+and \method{getPolyhedronIndex} (see example \myref{MESHconnectivities.cxx}).
+
+\end{enumerate}
+
+Here is a small C++ example program which the Python version may be found in
+\ref{MESHconnectivities.py}.
+
+\fileCxx{MESHconnectivities.cxx}
+
+\section{Information about FAMILY and GROUP}
+
+If one wants to get from a MESH object
+
+
+
+
+To write a complete MESH object in an available writing format, on may use
+{\method{addDriver}} and then {\method{write}}.
+
+For an example using these methods, one may see the Python scripts in the
+directory \verb+$MED_ROOT_DIR/bin/salome/+,\verb+med_test1.py+, or C++ example
+program in the directory \verb+$MED_SRC_DIR/src/MEDMEM+, \verb+med_test.cxx+.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\chapter{How to use SUPPORT object}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\section{Create a SUPPORT object}
+
+\label{CreateSupport}
+
+To create a SUPPORT object, you must give : 
+
+\begin{itemize}
+\item a reference to a MESH object 
+\item its name 
+\item on which mesh entity it apply to 
+\end{itemize}
+\textbf{C++ example~:}
+
+\verb+SUPPORT mySupport(myMesh,"support on all faces",MED_FACE) ;+
+By default, this support is defined on all elements of the given entity.
+
+If you want a restricted SUPPORT, you must add manualy information
+about what do you want~: 
+
+\begin{itemize}
+\item is not on all elements~: \verb+mySupport.setAll(false);+
+\item on how many geometric type~:\\
+ \verb+mySupport.setNumberOfGeometricType(myNumberOfGeometricType);+
+\item on which geometric type~:\\
+ \verb+mySupport.setGeometricType(myGeometricType);+
+\item Temporary : the Gauss point number for each geometric type~:\\
+ \verb+mySupport.setNumberOfGaussPoint(myNumberOfGaussPoint);+
+\item the number of elements for each geometric type~:\\
+ \verb+mySupport.setNumberOfEntities(myNumberOfEntities);+
+\item the total number of elements~:\\
+ \verb+mySupport.setTotalNumberOfEntities(myTotalNumberOfEntities);+
+\item the array which contains elements for each geometric type~:\\
+ \verb+mySupport.setNumber(myNumber);+
+\end{itemize}
+You could also use \method{setpartial} which set all you need.
+
+
+\section{Use a SUPPORT object}
+
+You could get all basic information (as you set them in \myref{CreateSupport})~: 
+
+\begin{itemize}
+\item \verb+getName()+
+\item \verb+getDescription()+
+\item \verb+getMesh()+
+\item \verb+getEntity()+
+\item \verb+isOnAllElements()+
+\item \verb+getNumberOfTypes()+
+\item \verb+getTypes()+
+%\item \verb+getNumberOfGaussPoint()+
+%\item \verb+getNumberOfGaussPoint(myGeometricType)+
+\item \verb+getGeometricTypeNumber()+
+\item \verb+getNumberOfElements(myGeometricType)+
+\item \verb+getNumber(myGeometricType)+
+\item \verb+getNumberIndex()+
+\end{itemize}
+For details about this methods, see the reference manual \cite{RefManualMedFile}.
+
+The use of \method{getNumber} and \method{getNumberIndex} are the
+same as \method{getConnectivity} and \method{getConnectivityIndex}
+(see item \myref{getConnectivity}
+
+There is another particular method to blend another SUPPORT object
+into it.
+
+For example in C++ : 
+\begin{verbatim}
+SUPPORT mySupport ;
+SUPPORT myOtherSupport ;
+...
+mySupport.blending(myOtherSupport) ;
+\end{verbatim}
+
+\verb+mySupport+ contain now all elements defined originally in it,
+more those defined in \verb+myOtherSupport+.
+
+
+\section{Case of FAMILY object}
+
+A FAMILY is a SUPPORT with some additionnal methods that concern some optional attribut (we could have none) and group (we could also have none) :
+\begin{itemize}
+\item \method{getIdentifier} return the family identifier (an integer)
+
+\item \method{getNumberOfAttributes} return the number of attributes of this family
+\item \method{getAttributesIdentifiers} and \method{getAttributeIdentifier} return an integer array or an integer that represent attribut identifier.
+\item \method{getAttributesValues} and \method{getAttributeValue} return an integer array or an integer that represent attribut value.
+\item \method{getAttributesDescriptions} and \method{getAttributeDescription} return a string array or a string that represent attribut description.
+
+\item \method{getNumberOfGroups} return the number of groups which it belog to.
+\item \method{getGroupsNames} and \method{getGroupName} return a string array or a string that represent the group name which it belog to.
+
+\end{itemize}
+
+\section{Case of GROUP object}
+
+A GROUP is a SUPPORT with some additionnal methods to find FAMILY that make up it :
+\begin{itemize}
+\item \method{getNumberOfFamilies} return the number of FAMILY that make up the GROUP ;
+\item \method{getFamilies} and \method{getFamily} return a FAMILY  array or a FAMILY that  make up the GROUP.
+\end{itemize}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\chapter{How to use Field}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\section{Introduction}
+
+A field is characterized by its name (\method{getName}) and an optional description (\method{getDescription}).
+
+It is also characterized by this calculating moment : 
+\begin{itemize}
+\item an iteration number (time step number)
+\item an order number (use if there are internal iteration in a time step)
+\item the time that correspond to this iteration number.
+\end{itemize}
+
+By default, there are no iteration and order number defined (value 
+MED\_NOPDT and MED\_NONOR).
+
+A field contain values which apply on some nodes or elements (cell, face or edge).
+
+We find these informations from a SUPPORT object (see \method{getSupport}).
+
+Each field have a number of components (\method getNumberOfComponents) and all these components have a name (\method{getComponentsNames} and \method{getComponentName}), a description (\method{getComponentsDescriptions} and \method{getComponentDescription}) and an unit (\method{getMEDComponentsUnits} and \method{getMEDComponentUnit}). 
+
+To get values of a FIELD, you could use \method{getValue}, \method{getValueI} 
+and \method{getValueIJ}~: 
+
+\begin{itemize}
+\item First return a reference to all values in the given mode (full or no 
+interlace).
+\item Second return a reference to $i^{th}$ element values or component values (in accordance with the given mode).
+\item Third return the $j^{th}$ component of $i^{th}$ element.
+\end{itemize}
+
+Here is a small C++ example program which the Python version may be found in
+\ref{FIELDgeneral.py}.
+
+\fileCxx{FIELDgeneral.cxx}
+
+\section{Create a Field}
+
+It is simple to create a field object. You must know its SUPPORT and the number of components.
+
+\textbf{Example :} 
+\verb+FILED<double> myField(mySupport,NumberOfComponents) ;+
+
+You must now set a name (\method{setName}) and optionaly a description 
+(\method{setDescription}).
+
+By default there are no iteration and order number (negative values) and 
+time is null. You could change this by using \method{setIterationNumber},
+\method{setOrderNumber} and \method{setTime}.
+
+You \textbf{SHOULD} also set unit of your components with \method{setMEDComponentUnit}
+
+To set value, use \method{setValueIJ} to put new value of field.
+
+Here is a small C++ example program which the Python version may be found in
+\ref{FIELDcreate.py}.
+
+\fileCxx{FIELDcreate.cxx}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\chapter{How to use MESHING object}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+This class is a derivated class of MESH class to build a MESH object from 
+scratch (use of set methods).
+
+All verifications are under user responsability : If arrays values or arrays 
+dimensions are wrongs, results are impredicable.
+
+All arrays in arguments in set methods are duplicated in MESHING object.
+
+\section{Build a MESHING}
+
+\label{BuildMeshing}
+
+\subsection{Coordinates}
+
+First we must defined points coordinates of the mesh. We use 
+\method{setCoordinates}.
+
+\textbf{C++ Example~:}
+\begin{verbatim}
+MESHING myMeshing ;
+const int SpaceDimension=2;
+const int NumberOfNodes=6;
+int * Coordinates = new int[SpaceDimension*NumberOfNodes] ;
+string System="CARTESIAN";
+medModeSwitch MED_FULL_INTERLACE ;
+myMeshing.setCoordinates(SpaceDimension,NumberOfNodes,Coordinates,System,Mode);
+\end{verbatim}
+
+Then you could set the coordinates names and units (with 
+\method{setCoordinatesNames} and \method{setCoordinatesUnits}).
+
+\subsection{Connectivities}
+
+When coordinates are defined, we could defined connectivities.
+
+First we must defined connectivity of MED\_CELL elements. 
+After, we could defined constituent connectivity if necesary 
+(MED\_FACE and/or MED\_EDGE).
+
+For each connectivities, you could use some methods in the following order :
+\begin{itemize}
+\item \method{setNumberOfTypes} to set the number of differents geometrics 
+types (3 for example). This method allocates all arrays which size is this 
+number ;
+\item \method{setTypes} to set the differents geometrics types 
+({MED\_TETRA4,MED\_PYRA5,MED\_HEXA8} for example). Types should be given 
+in increasing order of number of nodes for this type ;
+\item \method{setNumberOfElements} to set the number of elements for 
+each geometric type. This method allocates connectivities array ;
+\item \method{setConnectivity} to set the connectivity in MED\_FULL\_INTERLACE
+mode for each geometric type (use \method{setPolygonsConnectivity} and
+\method{setPolyhedraConnectivity} for poly elements);
+\end{itemize}
+
+\textbf{C++ Example~:}
+\begin{verbatim}
+MESHING myMeshing ;
+myMeshing.setCoordinates(SpaceDimension,NumberOfNodes,Coordinates,System,Mode);
+
+myMeshing.setNumberOfTypes(2,MED_CELL);
+myMeshing.setTypes({MED_TRIA3,MED_QUAD4},MED_CELL);
+myMeshing.setNumberOfElements({3,2},MED_CELL); // 3 MED_TRIA3 and 2 MED_QUAD4
+myMeshing.setConnectivity({1,2,3,6,8,9,4,5,6},MED_CELL,MED_TRIA3);
+myMeshing.setConnectivity({1,3,4,5,4,5,7,8},MED_CELL,MED_QUAD4);
+\end{verbatim}
+
+
+\section{Defined a GROUP object}
+
+To add a group in a MESHING object, use \method{addGroup}.
+
+This method duplicate the GROUP object in the MESH object.
+
+To build this GROUP object, use SUPPORT methods \ref{CreateSupport} to set all attributes.
+
+\subsection{WARNING}
+
+For instance, translation from GROUP objects to FAMILY objects are not completed !
+
+You MUST set GROUP objects as if they are FAMILY objects.
+
+This feature will be fully implemented in next release of med memory. 
+
+Here is a small C++ example program which the Python version may be found in
+\ref{MESHINGexample.py}.
+
+\fileCxx{MESHINGexample.cxx}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\chapter{Using drivers}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+The generic driver mecanism gives users the possibility to write/read
+the content of an object according to a specified file format. The
+semantic remains the same whatever the object is (MESH, FIELD, MED).
+By the way it allows using several file formats for writting an object.
+
+
+\section{Invoking a driver}
+
+
+\subsection{Invoking a driver at creation object time}
+
+This is the simplest way of invoking a driver. The driver parameters
+are given to the constructor of the object.  Except for the MED object,
+this way of invoking a driver assume you know exactly the name of
+the MESH/FIELD you want read from a file <fileName> of type <driverType>.
+
+ex 1.1 : For a FIELD object, invoking FIELD<double> myField(MED\_DRIVER,fileName,fieldName)
+create a FIELD object and a driver which loads the mesh <fieldName>
+from the MED file <fileName> (Not implemented yet !).
+
+ex 1.2 : To remove the default driver previously created myField->rmDriver();
+
+ex 2 : For a MESH object, invoking MESH myMesh(MED\_DRIVER,fileName,meshName)
+create a MESH object and a driver which loads the mesh <meshName>
+from the MED file <fileName>.
+
+ex 3 : For a MED object, invoking MED myMed(MED\_DRIVER,fileName)
+create a MED object to explore the MED file <fileName>.
+
+rem 1 : ex1 is equivalent to \ref{sec:invoking_a_driver_from_the_std_drv_method}
+ex1.
+
+rem 2 : Since the driver has read the object, the associated file
+is closed. You can reread the object with the default driver by calling
+the read() method : myObject.read().
+
+Here is a small C++ example program which the Python version may be found in
+\ref{MEDMEM_InvokingDriverAtObjectCreationTime.py}.
+
+\fileCxx{MEDMEM_InvokingDriverAtObjectCreationTime.cxx}
+
+\subsection{Invoking a driver from the standard driver method of an object\label{sec:invoking_a_driver_from_the_std_drv_method}}
+
+This way of invoking a driver give the possiblility to add several
+drivers to an exiting object.
+
+ex1 : First we create a FIELD without any driver FIELD<double>~{*}~myField1~=~new~FIELD<double>;
+then we add a driver with int myDriver1 = myField1->addDriver(driverType1,
+fileName1, fieldName1); for reading <fieldName1> from file <fileName1>
+with myField1->read(myDriver1);
+
+ex2 : We add a new driver of type <driverType2> int myDriver2 = myField1->addDriver(driverType2,
+fileName2,fieldName2); in order to write myField1 in file <fileName2>
+with <fieldName2> name using command myField1->write(myDriver2);
+
+rem 1 : Files are openned then closed each time you call read() or
+write() methods.
+
+rem 2 : If you use more than a driver you need to keep the driver
+handlers (myDriverI ).
+
+Here is a small C++ example program which the Python version may be found in
+\ref{MEDMEM_InvokingDriverFromStandardObjectMethod.py}.
+
+\fileCxx{MEDMEM_InvokingDriverFromStandardObjectMethod.cxx}
+
+\subsection{Invoking a driver and attaching it to an existing object}
+
+The methods exposed in the two previous sections always create drivers
+in read/write access mode. Another way of creating a driver is to
+create a driver with a specific access mode.
+
+ex1 : First we create a FIELD without any driver FIELD<double>~{*}~myField1~=~new
+FIELD<double>(); then we create a read-only driver MED\_FIELD\_RDONLY\_DRIVER<double>~myRdOnlyDriver(fileName1,myField1);
+and attached it to myField1. Finally you must set the fieldName1 you
+want to acess in fileName1 with myRdOnlyDriver->setFieldName(fieldName1);
+in order to read the field with myRdOnlyDriver->open(); myRdOnlyDriver->read();
+
+Don't forget to close the file with myRdOnlyDriver->close().
+
+ToDo : By now when you create such specific drivers, the object doesn't
+know anything about it. 
+
+Here is a small C++ example program which the Python version may be found in
+\ref{MEDMEM_InvokingDriverByAttachingItToAnObject.py}.
+
+\fileCxx{MEDMEM_InvokingDriverByAttachingItToAnObject.cxx}
+
+\section{Using the MED driver}
+
+The MED object provides the ability of :
+
+\begin{enumerate}
+\item \noindent Obtainning a reference on the whole structure contained
+in a file.
+\item Obtainning the list of all the Meshes/Fields names contained in a
+file.
+\item Obtainning a Mesh/Field reference using a name.
+\item Writting a whole set of independent objects with a simple command. 
+\end{enumerate}
+
+\subsection{Exploring files}
+
+In this first use case the user wants to explore the meshes \& fields
+containned within a file <filename> of type given by the <drivertype>
+parameter.
+
+ex 1 : Calling MED {*} myMed = new MED(driverType1, fileName1); create
+a MED object which open fileName1, read all MESHes/FIELDs relations
+then close the file. 
+
+This is equivalent to MED~{*}~myMed~=~new~MED(); myDriver~=~myMed->addDriver(driverType1,fileName1);
+myMed->readFileStruct(myDriver); 
+
+ex 2 : To get the list of meshNames from a MED object, first ask the
+object how many meshes it had by calling int numberOfMeshes~=~myMed->getNumberOfMeshes();
+then get the list with myMeshNames~=~new string{[}getMeshNames{]};
+myMed->getMeshNames(myMeshNames). 
+
+Note you can also use the deque<string> getMeshNames() method. 
+
+ex 3 : To get a list of fieldNames from a MED object, first ask the
+object how many fields it had by calling int numberOfFields~=~myMed->getNumberOfFields();
+then get the list with myFieldNames~=~new string{[}getFieldNames{]};
+myMed->getFieldNames(myFieldNames).
+
+ex 4 :To get a particular MESH use MESH {*} myMesh1 = myMED->getMesh(myMeshNames{[}0{]}) 
+
+ex 5 :To get a particular FIELD you first need to know what (time
+step, iteration number) list is used by calling deque<DT\_IT\_>~myField1DtIt~=~myMed->getFieldIteration(FieldName{[}0{]})
+; then you can ask for getting a specific FIELD with FIELD~{*}~myField1~=~myMED->getField(myFieldNames{[}0{]},myField1DtIt{[}0{]}.dt,myField1DtIt{[}0{]}.it).
+
+ex2 : To write the whole content of a MED object first add a driver
+myDriver2~=~myMed.addDriver(driverType2,~fileName2); then ask for
+writing the object myMed->write(myDriver2); (not implemented yet !) 
+
+You can remove the driver with myMed->rmDriver(myDriver2);
+
+rem 1 : It is possible to use multiple drivers to read a set of FIELDs
+/ MESHes from various file formats and writing the whole set through
+a specific write.(not implemented yet !) 
+
+
+\subsubsection{Adding existing MESHes/FIELDs objects}
+
+Not yet implemented.
+
+\section{Using the VTK driver}
+
+This driver allow to save all MESH and FIELD objects in an ASCII file in 
+VTK format \cite{vtk}.
+
+You could use this driver only from a MED object, because VTK file format 
+impose to write objects in particular order.
+
+\textbf{C++ Example~:}
+\begin{verbatim}
+MED myMed(MED_DRIVER,"file.med");
+myMed.read();
+int id = myMed.addDriver(VTK_DRIVER,"file.vtk");
+myMed.write(id) ;
+\end{verbatim}
+
+\section{Using the GIBI driver}
+
+This driver allow to load a mesh from a GIBI file (ASCII file with the extension '.sauve'), puting the mesh into a MESH object of MED. It's a read only driver and is applicable only to a MESH object.
+
+\textbf{C++ Example~:}
+\begin{verbatim}
+MESH * myMesh= new MESH() ;    
+GIBI_MESH_RDONLY_DRIVER myGibiMeshDriver("file.sauve", myMesh) ;
+myGibiMeshDriver.open() ;
+myGibiMeshDriver.read() ;
+myGibiMeshDriver.close() ;
+\end{verbatim}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\chapter{Appendix: Python example scripts.}\label{sec:python}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\section{Full Python example for \ref{MESHgeneral.cxx}~:}
+\label{MESHgeneral.py}
+\verbatiminput{@srcdir@/MESHgeneral.py}
+
+\section{Full Python example for \ref{MESHcoordinates.cxx}~:}
+\label{MESHcoordinates.py}
+\verbatiminput{@srcdir@/MESHcoordinates.py}
+
+\section{Full Python example for \ref{MESHconnectivities.cxx}~:}
+\label{MESHconnectivities.py}
+\verbatiminput{@srcdir@/MESHconnectivities.py}
+
+\section{Full Python example for \ref{FIELDgeneral.cxx}~:}
+\label{FIELDgeneral.py}
+\verbatiminput{@srcdir@/FIELDgeneral.py}
+
+\section{Full Python example for \ref{FIELDcreate.cxx}~:}
+\label{FIELDcreate.py}
+\verbatiminput{@srcdir@/FIELDcreate.py}
+
+\section{Full Python example for \ref{MESHINGexample.cxx}~:}
+\label{MESHINGexample.py}
+\verbatiminput{@srcdir@/MESHINGexample.py}
+
+\section{Full Python example for \ref{MEDMEM_InvokingDriverAtObjectCreationTime.cxx}~:}
+\label{MEDMEM_InvokingDriverAtObjectCreationTime.py}
+\verbatiminput{@srcdir@/MEDMEM_InvokingDriverAtObjectCreationTime.py}
+
+\section{Full Python example for \ref{MEDMEM_InvokingDriverFromStandardObjectMethod.cxx}~:}
+\label{MEDMEM_InvokingDriverFromStandardObjectMethod.py}
+\verbatiminput{@srcdir@/MEDMEM_InvokingDriverFromStandardObjectMethod.py}
+
+\section{Full Python example for \ref{MEDMEM_InvokingDriverByAttachingItToAnObject.cxx}~:}
+\label{MEDMEM_InvokingDriverByAttachingItToAnObject.py}
+\verbatiminput{@srcdir@/MEDMEM_InvokingDriverByAttachingItToAnObject.py}
index 61ec44500a802a1808a76487ae865ac898299b34..91c8ee465059aa52dd306da0812fd93767992e75 100644 (file)
@@ -1,22 +1,6 @@
 // Copyright (C) 2005  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/
-//
 #include "MEDMEM_Exception.hxx"
 #include "MEDMEM_define.hxx"
 
index c13612fb84021624c2bdd8be41c87e61fb92df67..06573aea1726e7950dc5d8a8905b76bb494ea4b3 100644 (file)
@@ -1,3 +1,6 @@
+# Copyright (C) 2005  OPEN CASCADE, CEA, EDF R&D, LEG
+#           PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT
+#
 ######################################################################
 #                                                                    #
 # This Python script should be executed when the shared library is   #
index d02b07c7467a1dc5096991e34cdcded7f6ce0410..657a7e8ae632e8b07018d5af0b47dbec857e18a5 100644 (file)
@@ -1,22 +1,6 @@
 // Copyright (C) 2005  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/
-//
 #include "MEDMEM_Exception.hxx"
 #include "MEDMEM_define.hxx"
 
index beb217667e7d5b5363348cf4418c9d47f96a4624..78aa1eeeeb1e3d550a8f3d9df4540ab41701c922 100644 (file)
@@ -1,3 +1,6 @@
+# Copyright (C) 2005  OPEN CASCADE, CEA, EDF R&D, LEG
+#           PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT
+# 
 ######################################################################
 #                                                                    #
 # This Python script should be executed when the shared library is   #
index 0465c695b48e7553ad101acfae92f3b05c88cdb8..ba8afff0096bf561a811a1691f46d334acc2ae5d 100644 (file)
@@ -1,22 +1,6 @@
 // Copyright (C) 2005  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/
-//
 #include "MEDMEM_Exception.hxx"
 #include "MEDMEM_define.hxx"
 
index 3ddef5fad1fc80fc64936348149beedc4495b7ea..1b1804df11ec99aa2f830f87c8c6c0d34138dfc8 100644 (file)
@@ -1,3 +1,6 @@
+# Copyright (C) 2005  OPEN CASCADE, CEA, EDF R&D, LEG
+#           PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT
+# 
 ######################################################################
 #                                                                    #
 # This Python script should be executed when the shared library is   #
index fad6b8b399efb8b7d56c685929f793d29c18e8bf..b36fef10b97abc614c5823a365edb05113af6efd 100644 (file)
@@ -1,22 +1,6 @@
 // Copyright (C) 2005  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/
-//
 #include "MEDMEM_Exception.hxx"
 #include "MEDMEM_define.hxx"
 
diff --git a/doc/MEDMEM/MEDMEM_UML.dia b/doc/MEDMEM/MEDMEM_UML.dia
deleted file mode 100644 (file)
index 13d5984..0000000
Binary files a/doc/MEDMEM/MEDMEM_UML.dia and /dev/null differ
diff --git a/doc/MEDMEM/MEDMEM_UML.png.in b/doc/MEDMEM/MEDMEM_UML.png.in
new file mode 100644 (file)
index 0000000..28418d1
Binary files /dev/null and b/doc/MEDMEM/MEDMEM_UML.png.in differ
diff --git a/doc/MEDMEM/MEDMEM_UML_light.png.in b/doc/MEDMEM/MEDMEM_UML_light.png.in
new file mode 100644 (file)
index 0000000..8eff5fa
Binary files /dev/null and b/doc/MEDMEM/MEDMEM_UML_light.png.in differ
index ab5b149b3253348e089e2dedbace0e88e8915aa3..a0ea7cd2a910027831b374df6d2ab6e2a3aae44f 100644 (file)
@@ -71,8 +71,8 @@
 % |                              LE DOCUMENT                                  |
 % |___________________________________________________________________________|
 %
-\title{User's Guide Of Med Memory}
-\author{Patrick Goldbronn \and Eric Fayolle \and Nadir Bouhamou \and Jerome Roy \and Nicolas Crouzet}
+\title{User's Guide Of Med Memory V 3.2}
+\author{Patrick Goldbronn \and Eric Fayolle \and Nadir Bouhamou \and Jerome Roy \and Nicolas Crouzet \and Vincent Bergeaud}
 
 %  ___________________________________________________________________________
 % |                                                                           |
 %\newpage
 \cleardoublepage
 \tableofcontents
+
 %  ___________________________________________________________________________
 % |                                                                           |
-% |                             DEBUT DU TEXTE                                |
+% |                            DOCUMENT PRINCIPAL                             |
 % |___________________________________________________________________________|
+%
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\chapter{Introduction}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\section{Convention}
-
-\begin{itemize}
-
-\item Difference between local and global number~: when we talk about an 
-element number, we could see $i^{th}$ quadrangle ($i^{th}$ in quadrangles 
-array~: local numbering) or $j^{th}$ element ($j^{th}$ in all elements array~: 
-global numbering). This two numbering are equivalent only if we have one 
-geometric type ;
-
-\item All numbering begin at one (take care of array index !) ; 
-\item When you get a C type array with a \texttt{get...} method, you must
-not replace some value of it. Access is in read only. Other use may
-product an impredicable result. To modify a such array use method
-\texttt{set...} ;
-\item Difference between local and global number~: when we talk about an
-element number, we could see \( i^{th} \) quadrangle (\( i^{th} \)
-in quadrangles array~: local numbering) or \( j^{th} \) element
-(\( j^{th} \) in all elements array~: global numbering). This two
-numbering are equivalent only if we have one geometric type.
-\item They are many methods that have two syntax (one singular and one 
-plural). Plurals methods returns array and singulars methods returns one 
-particular value in this array (see \method{getCoordinate} and 
-\method{getCoordinates}).
-
-\end{itemize}
-
-\section{UML diagram}
-
-\includegraphics[width=16cm]{MEDMEM_UML.eps}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\chapter{How to use MED object}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\section{General Information}
-
-A typical use of this object is to mount in memory what is in a MED file (or
-any type of driver in red or read/write mode) and it will manage its memory on
-its own. Then from this object one can get some information such as~:
-
-\begin{itemize}
-\item the number of meshes stored in this object using the
-{\method{getNumberOfMeshes}}.
-\item the number of fields stored in this object using the
-{\method{getNumberOfFields}}.
-\item a list of mesh names using the {\method{getMeshNames}}.
-\item a list of field names using the {\method{getFieldNames}}.
-\item a list of MESH object using the {\method{getMesh}}
-\item a list of FIELD object using the {\method{getField}}
-\item a list of SUPPORT object on all type of entities (node, cell,
- face in 3d or edge on 2d) using the {\method{getSupport}}.
-\end{itemize}
-
-The destuctor of this object will destruct itself all FIELD, SUPPORT and MESH
-objects; via its get method you will have a pointeur on this object and you
-should never delete it.
-
-One can add as well some MESH or FIELD object via the {\method{addMesh}} and
-the {\method{addField}} respectively.
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\chapter{How to use MESH object}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-\section{General Information}
-
-We could get some general information about a MESH object such as~: 
-
-\begin{itemize}
-\item name (\method{getName}) 
-\item a description (\method{getDescription}) 
-\item the space dimension (\method{getSpaceDimension}) 
-\item the mesh dimension (\method{getMeshDimension}) 
-\end{itemize}
-\fileCxx{MESHgeneral.cxx}
-
-\filePython{MESHgeneral.py}
-
-\section{Information about nodes}
-
-\begin{enumerate}
-\item I want to get the number of nodes~: Realy simple, use \method{getNumberOfNodes}. 
-\item I want to get the coordinates components names~: use \method{getCoordinatesNames}
-which return a string array (one string for each space dimension) 
-\item I want to get the coordinates components units~: use \method{getCoordinatesUnits}
-which return a string array (one string for each space dimension) 
-\item I want to get the coordinates system~: use \method{getCoordinatesSystem}
-which return a string (\verb+"CARTESIAN"+, \verb+"CYLINDRICAL"+ or \verb+"SPHERICAL"+). 
-\item I want to get the nodes coordinates~: use \method{getCoordinates}
-which return a pointer to the coordinates array where values are interlace
-or no. \textbf{Warning~:}
-
-\begin{itemize}
-\item When we get coordinates in \verb+MED_NO_INTERLACE+ mode, we get an
-array where values are ordered like (\verb+X1,X2,X..., Y1,Y..., Z1,Z...+). 
-\item When we get coordinates in \verb+MED_FULL_INTERLACE+ mode, we get
-an array where values are ordered like (\verb+X1,Y1,Z1, X2,Y2,Z2, ...+). 
-\end{itemize}
-\item I want to get one particular value of coordinate~: use \method{getCoordinate}
-which return the value of \( i^{th} \) node and \( j^{th} \) axis.
-\end{enumerate}
-\fileCxx{MESHcoordinates.cxx}
-
-\filePython{MESHcoordinates.py}
-
-\section{Information about cells}
-
-\begin{enumerate}
-\item I want to get the number of geometric type for a mesh entity~: use
-\method{getNumberOfTypes}
-
-
-\textbf{C++ Example~:}
-
-\verb+int NumberOfCellsTypes = myMesh.getNumberOfTypes(MED_CELL);+
-
-%%%%%%%%%%%%%%%%%
-\item I want to get all geometric type for a mesh entity~: use 
-\method{getTypes} to get an array of \verb+medGeometryElement+ 
-(to use directly in others methods) or \method{getCellsTypes} to get 
-an array of \verb+CELLMODEL+ (to ask mode information~: see \myref{CellModel}) .
-
-\textbf{C++ Example~:}
-
-\verb+const medGeometryElement * Types = myMesh.getTypes(MED_CELL);+
-
-\verb+const CELLMODEL * CellsTypes = myMesh.getCellsTypes(MED_CELL);+
-
-(each arrays are size \verb+NumberOfCellsTypes+)
-
-\item I want to get the number of cells~: use \method{getNumberOfElements}
-which return this information. You must give the mesh entity (\verb+MED_CELL+,
-\verb+MED_FACE+, \verb+MED_EDGE+ or \verb+MED_NODE+) and a geometric
-type of this entity.
-
-
-\textbf{C++ Example~:}
-
-\verb+int NumberOfTriangle = myMesh.getNumberOfElements(MED_FACE,MED_TRIA3);+
-
-\verb+int NumberOfFace = myMesh.getNumberOfElements(MED_FACE,MED_ALL_ELEMENT);+
-
-\item I want to get the geometric type of one element~: use \method{getElementType}
-which return a \verb+medGeometryElement+.
-
-
-\textbf{C++ Example~:}
-
-\verb+medGeometryElement myType = myMesh.getElementType(MED_FACE,10);+
-
-Return the \verb+medGeometryElement+ of \( 10^{th} \) face.
-
-\item I want to get a connectivity~: use \method{getConnectivity} which
-return an array with connectivity values.
-
-
-\label{getConnectivity}
-
-\textbf{C++ Example~:}
-
-\begin{verbatim}
-int NumberOfTetrahedron = myMesh.getNumberOfElements(MED_CELL,MED_TETRA4);
-const int * TetrahedronConnectivity =
-         myMesh.getConnectivity(MED_FULL_ENTERLACE,
-                                MED_NODAL,
-                                MED_CELL,
-                                MED_TETRA4);
-\end{verbatim}
-\verb+TetrahedronConnectivity+ contain nodal connectivity
-of tetrahedron in mesh. It is arranged in full enterlace mode and
-its size is \verb+NumberOfTetrahedron x 4+.
-
-If you want to get connectivity of all elements (with \verb+Type=MED_ALL_ELEMENTS+),
-you must use the index array (return by \method{getConnectivityIndex})
-to get connectivity for each elements (see example \myref{MESHconnectivities.cxx}).
-
-\item I want to get an element number from a connectivity~: use \method{getElementNumber}
-which return the global number of a given connectivity.
-
-
-\textbf{C++ Example~:}
-\begin{verbatim}
-int * myElementConnectivity = {2,10,12,14};
-int myNumber = myMesh.getElementNumber(MED_NODAL,MED_CELL,
-                                             myElementConnectivity);
-\end{verbatim}
-
-%%%%%%%%%%%  WITH POLY METHODS %%%%%%%%%%%%
-
-\item The listed above methods do not take into account information about
-  \verb+polygonal+ and \verb+polyhedral+ cells contained in a MESH object. To get
-  full information about cell types, use the same methods with
-  \verb+WithPoly+ postfix:
-\begin{itemize}
-\item use \method{getNumberOfTypesWithPoly} to get the number of
-  geometric types for a mesh entity;
-\item use \method{getTypesWithPoly} to get all geometric types for a mesh entity;
-\item use \method{getNumberOfElementsWithPoly} to get the number of cells;
-\item use \method{getElementTypeWithPoly} to get the geometric type of
-  one element.
-\end{itemize}
-There are separate methods to get number of polygons and polyhedrons:
-\method{getNumberOfPolygons} and \method{getNumberOfPolyhedron}
-
-To get connectivity of polygonal elements, use \method{getPolygonsConnectivity} along with
-\method{getPolygonsConnectivityIndex} (see example \myref{MESHconnectivities.cxx}).
-
-To get nodal connectivity of polyhedral elements, it is necessary use together
-3 methods: \method{getPolyhedronConnectivity}, \method{getPolyhedronFacesIndex}
-and \method{getPolyhedronIndex} (see example \myref{MESHconnectivities.cxx}).
-
-\end{enumerate}
-\fileCxx{MESHconnectivities.cxx}
-
-\filePython{MESHconnectivities.py}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\chapter{How to use MESHING object}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-This class is a derivated class of MESH class to build a MESH object from 
-scratch (use of set methods).
-
-All verifications are under user responsability : If arrays values or arrays 
-dimensions are wrongs, results are impredicable.
-
-All arrays in arguments in set methods are duplicated in MESHING object.
-
-\section{Build a MESHING}
-
-\label{BuildMeshing}
-
-\subsection{Coordinates}
-
-First we must defined points coordinates of the mesh. We use 
-\method{setCoordinates}.
-
-\textbf{C++ Example~:}
-\begin{verbatim}
-MESHING myMeshing ;
-const int SpaceDimension=2;
-const int NumberOfNodes=6;
-int * Coordinates = new int[SpaceDimension*NumberOfNodes] ;
-string System="CARTESIAN";
-medModeSwitch MED_FULL_INTERLACE ;
-myMeshing.setCoordinates(SpaceDimension,NumberOfNodes,Coordinates,System,Mode);
-\end{verbatim}
-
-Then you could set the coordinates names and units (with 
-\method{setCoordinatesNames} and \method{setCoordinatesUnits}).
-
-\subsection{Connectivities}
-
-When coordinates are defined, we could defined connectivities.
-
-First we must defined connectivity of MED\_CELL elements. 
-After, we could defined constituent connectivity if necesary 
-(MED\_FACE and/or MED\_EDGE).
-
-For each connectivities, you could use some methods in the following order :
-\begin{itemize}
-\item \method{setNumberOfTypes} to set the number of differents geometrics 
-types (3 for example). This method allocates all arrays which size is this 
-number ;
-\item \method{setTypes} to set the differents geometrics types 
-({MED\_TETRA4,MED\_PYRA5,MED\_HEXA8} for example). Types should be given 
-in increasing order of number of nodes for this type ;
-\item \method{setNumberOfElements} to set the number of elements for 
-each geometric type. This method allocates connectivities array ;
-\item \method{setConnectivity} to set the connectivity in MED\_FULL\_INTERLACE
-mode for each geometric type (use \method{setPolygonsConnectivity} and
-\method{setPolyhedraConnectivity} for poly elements);
-\end{itemize}
-
-\textbf{C++ Example~:}
-\begin{verbatim}
-MESHING myMeshing ;
-myMeshing.setCoordinates(SpaceDimension,NumberOfNodes,Coordinates,System,Mode);
-
-myMeshing.setNumberOfTypes(2,MED_CELL);
-myMeshing.setTypes({MED_TRIA3,MED_QUAD4},MED_CELL);
-myMeshing.setNumberOfElements({3,2},MED_CELL); // 3 MED_TRIA3 and 2 MED_QUAD4
-myMeshing.setConnectivity({1,2,3,6,8,9,4,5,6},MED_CELL,MED_TRIA3);
-myMeshing.setConnectivity({1,3,4,5,4,5,7,8},MED_CELL,MED_QUAD4);
-\end{verbatim}
-
-
-\section{Defined a GROUP object}
-
-To add a group in a MESHING object, use \method{addGroup}.
-
-This method duplicate the GROUP object in the MESH object.
-
-To build this GROUP object, use SUPPORT methods \ref{CreateSupport} to set all attributes.
-
-\subsection{WARNING}
-
-For instance, translation from GROUP objects to FAMILY objects are not completed !
-
-You MUST set GROUP objects as if they are FAMILY objects.
-
-This feature will be fully implemented in next release of med memory. 
-
-\section{Example}
-
-\fileCxx{MESHINGexample.cxx}
-
-%\filePython{MESHINGexample.py}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\chapter{How to use SUPPORT object}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\section{Create a SUPPORT object}
-
-\label{CreateSupport}
-
-To create a SUPPORT object, you must give : 
-
-\begin{itemize}
-\item a reference to a MESH object 
-\item its name 
-\item on which mesh entity it apply to 
-\end{itemize}
-\textbf{C++ example~:}
-
-\verb+SUPPORT mySupport(myMesh,"support on all faces",MED_FACE) ;+
-By default, this support is defined on all elements of the given entity.
-
-If you want a restricted SUPPORT, you must add manualy information
-about what do you want~: 
-
-\begin{itemize}
-\item is not on all elements~: \verb+mySupport.setAll(false);+
-\item on how many geometric type~:\\
- \verb+mySupport.setNumberOfGeometricType(myNumberOfGeometricType);+
-\item on which geometric type~:\\
- \verb+mySupport.setGeometricType(myGeometricType);+
-\item Temporary : the Gauss point number for each geometric type~:\\
- \verb+mySupport.setNumberOfGaussPoint(myNumberOfGaussPoint);+
-\item the number of elements for each geometric type~:\\
- \verb+mySupport.setNumberOfEntities(myNumberOfEntities);+
-\item the total number of elements~:\\
- \verb+mySupport.setTotalNumberOfEntities(myTotalNumberOfEntities);+
-\item the array which contains elements for each geometric type~:\\
- \verb+mySupport.setNumber(myNumber);+
-\end{itemize}
-You could also use \method{setpartial} which set all you need.
-
-
-\section{Use a SUPPORT object}
-
-You could get all basic information (as you set them in \myref{CreateSupport})~: 
-
-\begin{itemize}
-\item \verb+getName()+
-\item \verb+getDescription()+
-\item \verb+getMesh()+
-\item \verb+getEntity()+
-\item \verb+isOnAllElements()+
-\item \verb+getNumberOfTypes()+
-\item \verb+getTypes()+
-%\item \verb+getNumberOfGaussPoint()+
-%\item \verb+getNumberOfGaussPoint(myGeometricType)+
-\item \verb+getGeometricTypeNumber()+
-\item \verb+getNumberOfElements(myGeometricType)+
-\item \verb+getNumber(myGeometricType)+
-\item \verb+getNumberIndex()+
-\end{itemize}
-For details about this methods, see the reference manual \cite{RefManual}.
-
-The use of \method{getNumber} and \method{getNumberIndex} are the
-same as \method{getConnectivity} and \method{getConnectivityIndex}
-(see item \myref{getConnectivity}
-
-There is another particular method to blend another SUPPORT object
-into it.
-
-For example in C++ : 
-\begin{verbatim}
-SUPPORT mySupport ;
-SUPPORT myOtherSupport ;
-...
-mySupport.blending(myOtherSupport) ;
-\end{verbatim}
-
-\verb+mySupport+ contain now all elements defined originally in it,
-more those defined in \verb+myOtherSupport+.
-
-
-\section{Case of FAMILY object}
-
-A FAMILY is a SUPPORT with some additionnal methods that concern some optional attribut (we could have none) and group (we could also have none) :
-\begin{itemize}
-\item \method{getIdentifier} return the family identifier (an integer)
-
-\item \method{getNumberOfAttributes} return the number of attributes of this family
-\item \method{getAttributesIdentifiers} and \method{getAttributeIdentifier} return an integer array or an integer that represent attribut identifier.
-\item \method{getAttributesValues} and \method{getAttributeValue} return an integer array or an integer that represent attribut value.
-\item \method{getAttributesDescriptions} and \method{getAttributeDescription} return a string array or a string that represent attribut description.
-
-\item \method{getNumberOfGroups} return the number of groups which it belog to.
-\item \method{getGroupsNames} and \method{getGroupName} return a string array or a string that represent the group name which it belog to.
-
-\end{itemize}
-
-\section{Case of GROUP object}
-
-A GROUP is a SUPPORT with some additionnal methods to find FAMILY that make up it :
-\begin{itemize}
-\item \method{getNumberOfFamilies} return the number of FAMILY that make up the GROUP ;
-\item \method{getFamilies} and \method{getFamily} return a FAMILY  array or a FAMILY that  make up the GROUP.
-\end{itemize}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\chapter{How to use Field}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\section{Introduction}
-
-A field is characterized by its name (\method{getName}) and an optional description (\method{getDescription}).
-
-It is also characterized by this calculating moment : 
-\begin{itemize}
-\item an iteration number (time step number)
-\item an order number (use if there are internal iteration in a time step)
-\item the time that correspond to this iteration number.
-\end{itemize}
-
-By default, there are no iteration and order number defined (value 
-MED\_NOPDT and MED\_NONOR).
-
-A field contain values which apply on some nodes or elements (cell, face or edge).
-
-We find these informations from a SUPPORT object (see \method{getSupport}).
-
-Each field have a number of components (\method getNumberOfComponents) and all these components have a name (\method{getComponentsNames} and \method{getComponentName}), a description (\method{getComponentsDescriptions} and \method{getComponentDescription}) and an unit (\method{getMEDComponentsUnits} and \method{getMEDComponentUnit}). 
-
-For unit you could use later UNIT (\myref{Unit}) objet to make a more general control on it. But the use of this class must be specified.
-
-To get values of a FIELD, you could use \method{getValue}, \method{getValueI} 
-and \method{getValueIJ}~: 
-
-\begin{itemize}
-\item First return a reference to all values in the given mode (full or no 
-interlace).
-\item Second return a reference to $i^{th}$ element values or component values (in accordance with the given mode).
-\item Third return the $j^{th}$ component of $i^{th}$ element.
-\end{itemize}
-
-\fileCxx{FIELDgeneral.cxx}
-
-\filePython{FIELDgeneral.py}
-
-\section{Create a Field}
-
-It is simple to create a field object. You must know its SUPPORT and the number of components.
-
-\textbf{Example :} 
-\verb+FILED<double> myField(mySupport,NumberOfComponents) ;+
-
-You must now set a name (\method{setName}) and optionaly a description 
-(\method{setDescription}).
-
-By default there are no iteration and order number (negative values) and 
-time is null. You could change this by using \method{setIterationNumber},
-\method{setOrderNumber} and \method{setTime}.
-
-You \textbf{SHOULD} also set unit of your components with \method{setMEDComponentUnit}
-
-To set value, use \method{setValueIJ} to put new value of field.
-
-\fileCxx{FIELDcreate.cxx}
-
-\filePython{FIELDcreate.py}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\chapter{Other Classes}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-\section{class CELLMODEL}
-\label{CellModel}
-
-To do
-
-\section{class UNIT}
-\label{Unit}
-
-To do
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\chapter{Using drivers}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-The generic driver mecanism gives users the possibility to write/read
-the content of an object according to a specified file format. The
-semantic remains the same whatever the object is (MESH, FIELD, MED).
-By the way it allows using several file formats for writting an object.
-
-
-\section{Invoking a driver}
-
-
-\subsection{Invoking a driver at creation object time}
-
-This is the simplest way of invoking a driver. The driver parameters
-are given to the constructor of the object.  Except for the MED object,
-this way of invoking a driver assume you know exactly the name of
-the MESH/FIELD you want read from a file <fileName> of type <driverType>.
-
-ex 1.1 : For a FIELD object, invoking FIELD<double> myField(MED\_DRIVER,fileName,fieldName)
-create a FIELD object and a driver which loads the mesh <fieldName>
-from the MED file <fileName> (Not implemented yet !).
-
-ex 1.2 : To remove the default driver previously created myField->rmDriver();
-
-ex 2 : For a MESH object, invoking MESH myMesh(MED\_DRIVER,fileName,meshName)
-create a MESH object and a driver which loads the mesh <meshName>
-from the MED file <fileName>.
-
-ex 3 : For a MED object, invoking MED myMed(MED\_DRIVER,fileName)
-create a MED object to explore the MED file <fileName>.
-
-rem 1 : ex1 is equivalent to \ref{sec:invoking_a_driver_from_the_std_drv_method}
-ex1.
-
-rem 2 : Since the driver has read the object, the associated file
-is closed. You can reread the object with the default driver by calling
-the read() method : myObject.read().
-
-\fileCxx{MEDMEM_InvokingDriverAtObjectCreationTime.cxx}
-
-\filePython{MEDMEM_InvokingDriverAtObjectCreationTime.py}
-
-\subsection{Invoking a driver from the standard driver method of an object\label{sec:invoking_a_driver_from_the_std_drv_method}}
-
-This way of invoking a driver give the possiblility to add several
-drivers to an exiting object.
-
-ex1 : First we create a FIELD without any driver FIELD<double>~{*}~myField1~=~new~FIELD<double>;
-then we add a driver with int myDriver1 = myField1->addDriver(driverType1,
-fileName1, fieldName1); for reading <fieldName1> from file <fileName1>
-with myField1->read(myDriver1);
-
-ex2 : We add a new driver of type <driverType2> int myDriver2 = myField1->addDriver(driverType2,
-fileName2,fieldName2); in order to write myField1 in file <fileName2>
-with <fieldName2> name using command myField1->write(myDriver2);
-
-rem 1 : Files are openned then closed each time you call read() or
-write() methods.
-
-rem 2 : If you use more than a driver you need to keep the driver
-handlers (myDriverI ).
-
-\fileCxx{MEDMEM_InvokingDriverFromStandardObjectMethod.cxx}
-
-\filePython{MEDMEM_InvokingDriverFromStandardObjectMethod.py}
-
-\subsection{Invoking a driver and attaching it to an existing object}
-
-The methods exposed in the two previous sections always create drivers
-in read/write access mode. Another way of creating a driver is to
-create a driver with a specific access mode.
-
-ex1 : First we create a FIELD without any driver FIELD<double>~{*}~myField1~=~new
-FIELD<double>(); then we create a read-only driver MED\_FIELD\_RDONLY\_DRIVER<double>~myRdOnlyDriver(fileName1,myField1);
-and attached it to myField1. Finally you must set the fieldName1 you
-want to acess in fileName1 with myRdOnlyDriver->setFieldName(fieldName1);
-in order to read the field with myRdOnlyDriver->open(); myRdOnlyDriver->read();
-
-Don't forget to close the file with myRdOnlyDriver->close().
-
-ToDo : By now when you create such specific drivers, the object doesn't
-know anything about it. 
-
-\fileCxx{MEDMEM_InvokingDriverByAttachingItToAnObject.cxx}
-
-\filePython{MEDMEM_InvokingDriverByAttachingItToAnObject.py}
-
-\section{Using the MED driver}
-
-The MED object provides the ability of :
-
-\begin{enumerate}
-\item \noindent Obtainning a reference on the whole structure contained
-in a file.
-\item Obtainning the list of all the Meshes/Fields names contained in a
-file.
-\item Obtainning a Mesh/Field reference using a name.
-\item Writting a whole set of independent objects with a simple command. 
-\end{enumerate}
-
-\subsection{Exploring files}
-
-In this first use case the user wants to explore the meshes \& fields
-containned within a file <filename> of type given by the <drivertype>
-parameter.
-
-ex 1 : Calling MED {*} myMed = new MED(driverType1, fileName1); create
-a MED object which open fileName1, read all MESHes/FIELDs relations
-then close the file. 
-
-This is equivalent to MED~{*}~myMed~=~new~MED(); myDriver~=~myMed->addDriver(driverType1,fileName1);
-myMed->readFileStruct(myDriver); 
-
-ex 2 : To get the list of meshNames from a MED object, first ask the
-object how many meshes it had by calling int numberOfMeshes~=~myMed->getNumberOfMeshes();
-then get the list with myMeshNames~=~new string{[}getMeshNames{]};
-myMed->getMeshNames(myMeshNames). 
-
-Note you can also use the deque<string> getMeshNames() method. 
-
-ex 3 : To get a list of fieldNames from a MED object, first ask the
-object how many fields it had by calling int numberOfFields~=~myMed->getNumberOfFields();
-then get the list with myFieldNames~=~new string{[}getFieldNames{]};
-myMed->getFieldNames(myFieldNames).
-
-ex 4 :To get a particular MESH use MESH {*} myMesh1 = myMED->getMesh(myMeshNames{[}0{]}) 
-
-ex 5 :To get a particular FIELD you first need to know what (time
-step, iteration number) list is used by calling deque<DT\_IT\_>~myField1DtIt~=~myMed->getFieldIteration(FieldName{[}0{]})
-; then you can ask for getting a specific FIELD with FIELD~{*}~myField1~=~myMED->getField(myFieldNames{[}0{]},myField1DtIt{[}0{]}.dt,myField1DtIt{[}0{]}.it).
-
-ex2 : To write the whole content of a MED object first add a driver
-myDriver2~=~myMed.addDriver(driverType2,~fileName2); then ask for
-writing the object myMed->write(myDriver2); (not implemented yet !) 
-
-You can remove the driver with myMed->rmDriver(myDriver2);
-
-rem 1 : It is possible to use multiple drivers to read a set of FIELDs
-/ MESHes from various file formats and writing the whole set through
-a specific write.(not implemented yet !) 
-
-
-\subsubsection{Adding existing MESHes/FIELDs objects}
-
-Not yet implemented.
-
-\section{Using the VTK driver}
-
-This driver allow to save all MESH and FIELD objects in an ASCII file in 
-VTK format \cite{vtk}.
-
-You could use this driver only from a MED object, because VTK file format 
-impose to write objects in particular order.
-
-\textbf{C++ Example~:}
-\begin{verbatim}
-MED myMed(MED_DRIVER,"file.med");
-myMed.read();
-int id = myMed.addDriver(VTK_DRIVER,"file.vtk");
-myMed.write(id) ;
-\end{verbatim}
-
-\section{Using the GIBI driver}
-
-This driver allow to load a mesh from a GIBI file (ASCII file with the extension '.sauve'), puting the mesh into a MESH object of MED. It's a read only driver and is applicable only to a MESH object.
-
-\textbf{C++ Example~:}
-\begin{verbatim}
-MESH * myMesh= new MESH() ;    
-GIBI_MESH_RDONLY_DRIVER myGibiMeshDriver("file.sauve", myMesh) ;
-myGibiMeshDriver.open() ;
-myGibiMeshDriver.read() ;
-myGibiMeshDriver.close() ;
-\end{verbatim}
-
+\input{MEDMEM_Content.tex}
+%
 
 %  ___________________________________________________________________________
 % |                                                                           |
 % |                               REFERENCES                                  |
 % |___________________________________________________________________________|
-%
+
 \newpage
 %\thebibliography{biblio}
 \begin{thebibliography}{1}
@@ -788,9 +118,22 @@ myGibiMeshDriver.close() ;
 
 \addcontentsline{toc}{chapter}{Bibliography}
 
-\bibitem{RefManual} Reference Manual~: \verb+http://www-drn2.cea.fr/MED/MEDMEM/DOC/html/index.html+
+\bibitem{RefManualMedFile}
+\newblock {Reference Manual for Med File~:} \\
+{\sc V. Lefebvre \and E. Fayolle} \\
+\newblock {Projet PAL: Définition du modèle d'échange de données MED V2.2}
+\newblock {\it Note technique EDF/SINETICS}
+\newblock {HI-26-03-012/A} \\
+\newblock {\verb+http://www-drn2.cea.fr/MED/MEDMEM/DOC/html/index.html+}
+
+\bibitem{RefManualMedMemory}
+\newblock {Med Memory Users Reference Manual~:} \\
+\newblock {\verb+file:://$MED_ROOT_DIR/share/salome/doc/html_ref_user/index.html+} \\
+\newblock {\verb+$MED_ROOT_DIR/share/salome/doc/MedMemory_user_2on1.pdf+}
+
 
-\bibitem{vtk} VTK home page~: \verb+http://public.kitware.com/VTK+
+\bibitem{vtk}
+\newblock {VTK home page~: \verb+http://public.kitware.com/VTK+}
 
 \end{thebibliography}
 
index 36ef5a7c95d9d1914340d3ba2ea6b365014ca0f1..e40c27b3580752419a2e2c3daf62bb21f98f1e90 100644 (file)
@@ -1,22 +1,6 @@
 // Copyright (C) 2005  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/
-//
 #include "MEDMEM_Meshing.hxx"
 #include "MEDMEM_Group.hxx"
 
diff --git a/doc/MEDMEM/MESHINGexample.py b/doc/MEDMEM/MESHINGexample.py
new file mode 100644 (file)
index 0000000..9d88636
--- /dev/null
@@ -0,0 +1,696 @@
+###################################################################################
+#
+# This Python script uses the wrapped C++ class MESHING to buid a mesh from only
+# primitive data like coordinates (Pythoin double array) and connectivity (Python
+# integer arrays). It is the Python equivalent of the C++ program
+# test_MEDMEM_Meshing.cxx in the ../MEDMEM directory of the SALOME distribution
+#
+###################################################################################
+
+from libMEDMEM_Swig import *
+
+# files name to save the generated MESH(ING) in different format
+# Med V2.1 Med V2.2 and vtk
+
+med21FileName = "toto21.med"
+
+med22FileName = "toto22.med"
+
+vtkFileName = "toto.vtk"
+
+myMeshing = MESHING()
+
+myMeshing.setName("meshing")
+
+# definition of the coordinates
+
+spaceDimension = 3
+
+numberOfNodes = 19
+
+coordinates = []
+
+coordinate = [0.0, 0.0, 0.0]
+coordinates.append(coordinate[0])
+coordinates.append(coordinate[1])
+coordinates.append(coordinate[2])
+coordinate = [0.0, 0.0, 1.0]
+coordinates.append(coordinate[0])
+coordinates.append(coordinate[1])
+coordinates.append(coordinate[2])
+coordinate = [2.0, 0.0, 1.0]
+coordinates.append(coordinate[0])
+coordinates.append(coordinate[1])
+coordinates.append(coordinate[2])
+coordinate = [0.0, 2.0, 1.0]
+coordinates.append(coordinate[0])
+coordinates.append(coordinate[1])
+coordinates.append(coordinate[2])
+coordinate = [-2.0, 0.0, 1.0]
+coordinates.append(coordinate[0])
+coordinates.append(coordinate[1])
+coordinates.append(coordinate[2])
+coordinate = [0.0, -2.0, 1.0]
+coordinates.append(coordinate[0])
+coordinates.append(coordinate[1])
+coordinates.append(coordinate[2])
+coordinate = [1.0, 1.0, 2.0]
+coordinates.append(coordinate[0])
+coordinates.append(coordinate[1])
+coordinates.append(coordinate[2])
+coordinate = [-1.0, 1.0, 2.0]
+coordinates.append(coordinate[0])
+coordinates.append(coordinate[1])
+coordinates.append(coordinate[2])
+coordinate = [-1.0, -1.0, 2.0]
+coordinates.append(coordinate[0])
+coordinates.append(coordinate[1])
+coordinates.append(coordinate[2])
+coordinate = [1.0, -1.0, 2.0]
+coordinates.append(coordinate[0])
+coordinates.append(coordinate[1])
+coordinates.append(coordinate[2])
+coordinate = [1.0, 1.0, 3.0]
+coordinates.append(coordinate[0])
+coordinates.append(coordinate[1])
+coordinates.append(coordinate[2])
+coordinate = [-1.0, 1.0, 3.0]
+coordinates.append(coordinate[0])
+coordinates.append(coordinate[1])
+coordinates.append(coordinate[2])
+coordinate = [-1.0, -1.0, 3.0]
+coordinates.append(coordinate[0])
+coordinates.append(coordinate[1])
+coordinates.append(coordinate[2])
+coordinate = [1.0, -1.0, 3.0]
+coordinates.append(coordinate[0])
+coordinates.append(coordinate[1])
+coordinates.append(coordinate[2])
+coordinate = [1.0, 1.0, 4.0]
+coordinates.append(coordinate[0])
+coordinates.append(coordinate[1])
+coordinates.append(coordinate[2])
+coordinate = [-1.0, 1.0, 4.0]
+coordinates.append(coordinate[0])
+coordinates.append(coordinate[1])
+coordinates.append(coordinate[2])
+coordinate = [-1.0, -1.0, 4.0]
+coordinates.append(coordinate[0])
+coordinates.append(coordinate[1])
+coordinates.append(coordinate[2])
+coordinate = [1.0, -1.0, 4.0]
+coordinates.append(coordinate[0])
+coordinates.append(coordinate[1])
+coordinates.append(coordinate[2])
+coordinate = [0.0, 0.0, 5.0]
+coordinates.append(coordinate[0])
+coordinates.append(coordinate[1])
+coordinates.append(coordinate[2])
+
+myMeshing.setCoordinates(spaceDimension,numberOfNodes,coordinates,"CARTESIAN",MED_FULL_INTERLACE)
+
+for i in range(spaceDimension):
+    unit = "cm      "
+    if (i == 0):
+        name = "X       "
+    elif (i == 1):
+        name = "Y       "
+    elif (i == 2):
+        name = "Z       "
+
+    myMeshing.setCoordinateName(name,i)
+    myMeshing.setCoordinateUnit(unit,i)
+
+# definition of connectivities
+# cell part
+
+numberOfTypes = 3
+entity = MED_CELL
+
+types = []
+numberOfElements = []
+
+types.append(MED_TETRA4)
+numberOfElements.append(12)
+
+types.append(MED_PYRA5)
+numberOfElements.append(2)
+
+types.append(MED_HEXA8)
+numberOfElements.append(2)
+
+myMeshing.setNumberOfTypes(numberOfTypes,entity)
+myMeshing.setTypes(types,entity)
+myMeshing.setNumberOfElements(numberOfElements,entity)
+
+connectivityTetra = []
+
+connectivity =  [1,2,3,6]
+connectivityTetra.append(connectivity[0])
+connectivityTetra.append(connectivity[1])
+connectivityTetra.append(connectivity[2])
+connectivityTetra.append(connectivity[3])
+connectivity =  [1,2,4,3]
+connectivityTetra.append(connectivity[0])
+connectivityTetra.append(connectivity[1])
+connectivityTetra.append(connectivity[2])
+connectivityTetra.append(connectivity[3])
+connectivity =  [1,2,5,4]
+connectivityTetra.append(connectivity[0])
+connectivityTetra.append(connectivity[1])
+connectivityTetra.append(connectivity[2])
+connectivityTetra.append(connectivity[3])
+connectivity =  [1,2,6,5]
+connectivityTetra.append(connectivity[0])
+connectivityTetra.append(connectivity[1])
+connectivityTetra.append(connectivity[2])
+connectivityTetra.append(connectivity[3])
+connectivity =  [2,7,4,3]
+connectivityTetra.append(connectivity[0])
+connectivityTetra.append(connectivity[1])
+connectivityTetra.append(connectivity[2])
+connectivityTetra.append(connectivity[3])
+connectivity =  [2,8,5,4]
+connectivityTetra.append(connectivity[0])
+connectivityTetra.append(connectivity[1])
+connectivityTetra.append(connectivity[2])
+connectivityTetra.append(connectivity[3])
+connectivity =  [2,9,6,5]
+connectivityTetra.append(connectivity[0])
+connectivityTetra.append(connectivity[1])
+connectivityTetra.append(connectivity[2])
+connectivityTetra.append(connectivity[3])
+connectivity =  [2,10,3,6]
+connectivityTetra.append(connectivity[0])
+connectivityTetra.append(connectivity[1])
+connectivityTetra.append(connectivity[2])
+connectivityTetra.append(connectivity[3])
+connectivity =  [2,7,3,10]
+connectivityTetra.append(connectivity[0])
+connectivityTetra.append(connectivity[1])
+connectivityTetra.append(connectivity[2])
+connectivityTetra.append(connectivity[3])
+connectivity =  [2,8,4,7]
+connectivityTetra.append(connectivity[0])
+connectivityTetra.append(connectivity[1])
+connectivityTetra.append(connectivity[2])
+connectivityTetra.append(connectivity[3])
+connectivity =  [2,9,5,8]
+connectivityTetra.append(connectivity[0])
+connectivityTetra.append(connectivity[1])
+connectivityTetra.append(connectivity[2])
+connectivityTetra.append(connectivity[3])
+connectivity =  [2,10,6,9]
+connectivityTetra.append(connectivity[0])
+connectivityTetra.append(connectivity[1])
+connectivityTetra.append(connectivity[2])
+connectivityTetra.append(connectivity[3])
+
+myMeshing.setConnectivity(connectivityTetra,entity,types[0])
+
+connectivityPyra = []
+connectivity =  [7,8,9,10,2]
+connectivityPyra.append(connectivity[0])
+connectivityPyra.append(connectivity[1])
+connectivityPyra.append(connectivity[2])
+connectivityPyra.append(connectivity[3])
+connectivityPyra.append(connectivity[4])
+connectivity =  [15,18,17,16,19]
+connectivityPyra.append(connectivity[0])
+connectivityPyra.append(connectivity[1])
+connectivityPyra.append(connectivity[2])
+connectivityPyra.append(connectivity[3])
+connectivityPyra.append(connectivity[4])
+
+myMeshing.setConnectivity(connectivityPyra,entity,types[1])
+
+connectivityHexa = []
+connectivity =  [11,12,13,14,7,8,9,10]
+connectivityHexa.append(connectivity[0])
+connectivityHexa.append(connectivity[1])
+connectivityHexa.append(connectivity[2])
+connectivityHexa.append(connectivity[3])
+connectivityHexa.append(connectivity[4])
+connectivityHexa.append(connectivity[5])
+connectivityHexa.append(connectivity[6])
+connectivityHexa.append(connectivity[7])
+connectivity =  [15,16,17,18,11,12,13,14]
+connectivityHexa.append(connectivity[0])
+connectivityHexa.append(connectivity[1])
+connectivityHexa.append(connectivity[2])
+connectivityHexa.append(connectivity[3])
+connectivityHexa.append(connectivity[4])
+connectivityHexa.append(connectivity[5])
+connectivityHexa.append(connectivity[6])
+connectivityHexa.append(connectivity[7])
+
+myMeshing.setConnectivity(connectivityHexa,entity,types[2])
+
+# face part
+
+numberOfTypes = 2
+entity = MED_FACE
+
+types = []
+numberOfElements = []
+
+types.append(MED_TRIA3)
+numberOfElements.append(4)
+
+types.append(MED_QUAD4)
+numberOfElements.append(4)
+
+myMeshing.setNumberOfTypes(numberOfTypes,entity)
+myMeshing.setTypes(types,entity)
+myMeshing.setNumberOfElements(numberOfElements,entity)
+
+connectivityTria = []
+connectivity =  [1,4,3]
+connectivityTria.append(connectivity[0])
+connectivityTria.append(connectivity[1])
+connectivityTria.append(connectivity[2])
+connectivity =  [1,5,4]
+connectivityTria.append(connectivity[0])
+connectivityTria.append(connectivity[1])
+connectivityTria.append(connectivity[2])
+connectivity =  [1,6,5]
+connectivityTria.append(connectivity[0])
+connectivityTria.append(connectivity[1])
+connectivityTria.append(connectivity[2])
+connectivity =  [1,3,6]
+connectivityTria.append(connectivity[0])
+connectivityTria.append(connectivity[1])
+connectivityTria.append(connectivity[2])
+
+myMeshing.setConnectivity(connectivityTria,entity,types[0])
+
+connectivityQuad = []
+connectivity =  [7,8,9,10]
+connectivityQuad.append(connectivity[0])
+connectivityQuad.append(connectivity[1])
+connectivityQuad.append(connectivity[2])
+connectivityQuad.append(connectivity[3])
+connectivity =  [11,12,13,14]
+connectivityQuad.append(connectivity[0])
+connectivityQuad.append(connectivity[1])
+connectivityQuad.append(connectivity[2])
+connectivityQuad.append(connectivity[3])
+connectivity =  [11,7,8,12]
+connectivityQuad.append(connectivity[0])
+connectivityQuad.append(connectivity[1])
+connectivityQuad.append(connectivity[2])
+connectivityQuad.append(connectivity[3])
+connectivity =  [12,8,9,13]
+connectivityQuad.append(connectivity[0])
+connectivityQuad.append(connectivity[1])
+connectivityQuad.append(connectivity[2])
+connectivityQuad.append(connectivity[3])
+
+myMeshing.setConnectivity(connectivityQuad,entity,types[1])
+
+meshDimension = spaceDimension # because there 3D cells in the mesh
+myMeshing.setMeshDimension(meshDimension)
+
+# edge part
+
+# adding GROUPs
+# on Node
+
+myGroup = GROUP()
+myGroup.setName("SomeNodes")
+myGroup.setMesh(myMeshing)
+myGroup.setEntity(MED_NODE)
+myGroup.setNumberOfGeometricType(1)
+
+myTypes = [MED_NONE]
+myGroup.setGeometricType(myTypes)
+
+myNumberOfElements = [4]
+myGroup.setNumberOfElements(myNumberOfElements)
+
+index = [1,5]
+values = [1,4,5,7]
+myGroup.setNumber(index,values)
+
+myMeshing.addGroup(myGroup)
+
+myGroup = GROUP()
+myGroup.setName("OtherNodes")
+myGroup.setMesh(myMeshing)
+myGroup.setEntity(MED_NODE)
+myGroup.setNumberOfGeometricType(1)
+
+myTypes = [MED_NONE]
+myGroup.setGeometricType(myTypes)
+
+myNumberOfElements = [3]
+myGroup.setNumberOfElements(myNumberOfElements)
+
+index = [1,4]
+values = [2,3,6]
+myGroup.setNumber(index,values)
+
+myMeshing.addGroup(myGroup)
+
+# on Cell
+
+myGroup = GROUP()
+myGroup.setName("SomeCells")
+myGroup.setMesh(myMeshing)
+myGroup.setEntity(MED_CELL)
+myGroup.setNumberOfGeometricType(3)
+
+myTypes = [MED_TETRA4,MED_PYRA5,MED_HEXA8]
+myGroup.setGeometricType(myTypes)
+
+myNumberOfElements = [4,1,2]
+myGroup.setNumberOfElements(myNumberOfElements)
+
+index = [1,5,6,8]
+values = [
+    2,7,8,12,
+    13,
+    15,16
+    ]
+myGroup.setNumber(index,values)
+
+myMeshing.addGroup(myGroup)
+
+myGroup = GROUP()
+myGroup.setName("OtherCells")
+myGroup.setMesh(myMeshing)
+myGroup.setEntity(MED_CELL)
+myGroup.setNumberOfGeometricType(2)
+
+myTypes = [MED_TETRA4,MED_PYRA5]
+myGroup.setGeometricType(myTypes)
+
+myNumberOfElements = [4,1]
+myGroup.setNumberOfElements(myNumberOfElements)
+
+index = [1,5,6]
+values = [
+    3,4,5,9,
+    14
+    ]
+myGroup.setNumber(index,values)
+
+myMeshing.addGroup(myGroup)
+
+# on Face
+
+myGroup = GROUP()
+myGroup.setName("SomeFaces")
+myGroup.setMesh(myMeshing)
+myGroup.setEntity(MED_FACE)
+myGroup.setNumberOfGeometricType(2)
+
+myTypes = [MED_TRIA3,MED_QUAD4]
+myGroup.setGeometricType(myTypes)
+
+myNumberOfElements = [2,3]
+myGroup.setNumberOfElements(myNumberOfElements)
+
+index = [1,3,6]
+values = [
+    2,4,
+    5,6,8
+    ]
+myGroup.setNumber(index,values)
+
+myMeshing.addGroup(myGroup)
+
+myGroup = GROUP()
+myGroup.setName("OtherFaces")
+myGroup.setMesh(myMeshing)
+myGroup.setEntity(MED_FACE)
+myGroup.setNumberOfGeometricType(1)
+
+myTypes = [MED_TRIA3]
+myGroup.setGeometricType(myTypes)
+
+myNumberOfElements = [2]
+myGroup.setNumberOfElements(myNumberOfElements)
+
+index = [1,3]
+values = [
+    1,3
+    ]
+myGroup.setNumber(index,values)
+
+myMeshing.addGroup(myGroup)
+
+# saving of the generated mesh in MED 2.1, 2.2 and VTK format
+
+medFileVersion = getMedFileVersionForWriting()
+print "Med File Version For Writing ",medFileVersion
+
+if (medFileVersion == V22):
+    setMedFileVersionForWriting(V21)
+
+idMedV21 = myMeshing.addDriver(MED_DRIVER,med21FileName,myMeshing.getName())
+myMeshing.write(idMedV21)
+
+medFileVersion = getMedFileVersionForWriting()
+if (medFileVersion == V21):
+    setMedFileVersionForWriting(V22)
+
+idMedV22 = myMeshing.addDriver(MED_DRIVER,med22FileName,myMeshing.getName())
+myMeshing.write(idMedV22)
+
+idVtk = myMeshing.addDriver(VTK_DRIVER,vtkFileName,myMeshing.getName())
+myMeshing.write(idVtk)
+
+# we build now 8 fields : 4 fields double (integer) :
+#                         2 fields on nodes (cells) :
+#                         1 scalar (vector)
+
+supportOnNodes = SUPPORT(myMeshing,"On_All_Nodes",MED_NODE)
+numberOfNodes = supportOnNodes.getNumberOfElements(MED_ALL_ELEMENTS)
+
+supportOnCells = SUPPORT(myMeshing,"On_All_Cells",MED_CELL)
+numberOfCells = supportOnCells.getNumberOfElements(MED_ALL_ELEMENTS)
+
+fieldDoubleScalarOnNodes = FIELDDOUBLE(supportOnNodes,1)
+fieldDoubleScalarOnNodes.setName("fieldScalarDoubleNode")
+fieldDoubleScalarOnNodes.setIterationNumber(-1)
+fieldDoubleScalarOnNodes.setOrderNumber(-1)
+fieldDoubleScalarOnNodes.setTime(0.0)
+
+fieldDoubleScalarOnNodes.setComponentName(1,"Vx")
+fieldDoubleScalarOnNodes.setComponentDescription(1,"comp1")
+fieldDoubleScalarOnNodes.setMEDComponentUnit(1,"unit1")
+
+fieldDoubleVectorOnNodes = FIELDDOUBLE(supportOnNodes,spaceDimension)
+fieldDoubleVectorOnNodes.setName("fieldVectorDoubleNode")
+fieldDoubleVectorOnNodes.setIterationNumber(-1)
+fieldDoubleVectorOnNodes.setOrderNumber(-1)
+fieldDoubleVectorOnNodes.setTime(0.0)
+
+fieldDoubleVectorOnNodes.setComponentName(1,"Vx")
+fieldDoubleVectorOnNodes.setComponentDescription(1,"comp1")
+fieldDoubleVectorOnNodes.setMEDComponentUnit(1,"unit1")
+fieldDoubleVectorOnNodes.setComponentName(2,"Vy")
+fieldDoubleVectorOnNodes.setComponentDescription(2,"comp2")
+fieldDoubleVectorOnNodes.setMEDComponentUnit(2,"unit2")
+fieldDoubleVectorOnNodes.setComponentName(3,"Vz")
+fieldDoubleVectorOnNodes.setComponentDescription(3,"comp3")
+fieldDoubleVectorOnNodes.setMEDComponentUnit(3,"unit3")
+
+fieldDoubleScalarOnCells = FIELDDOUBLE(supportOnCells,1)
+fieldDoubleScalarOnCells.setName("fieldScalarDoubleCell")
+fieldDoubleScalarOnCells.setIterationNumber(-1)
+fieldDoubleScalarOnCells.setOrderNumber(-1)
+fieldDoubleScalarOnCells.setTime(0.0)
+
+fieldDoubleScalarOnCells.setComponentName(1,"Vx")
+fieldDoubleScalarOnCells.setComponentDescription(1,"comp1")
+fieldDoubleScalarOnCells.setMEDComponentUnit(1,"unit1")
+
+fieldDoubleVectorOnCells = FIELDDOUBLE(supportOnCells,spaceDimension)
+fieldDoubleVectorOnCells.setName("fieldVectorrDoubleCell")
+fieldDoubleVectorOnCells.setIterationNumber(-1)
+fieldDoubleVectorOnCells.setOrderNumber(-1)
+fieldDoubleVectorOnCells.setTime(0.0)
+
+fieldDoubleVectorOnCells.setComponentName(1,"Vx")
+fieldDoubleVectorOnCells.setComponentDescription(1,"comp1")
+fieldDoubleVectorOnCells.setMEDComponentUnit(1,"unit1")
+fieldDoubleVectorOnCells.setComponentName(2,"Vy")
+fieldDoubleVectorOnCells.setComponentDescription(2,"comp2")
+fieldDoubleVectorOnCells.setMEDComponentUnit(2,"unit2")
+fieldDoubleVectorOnCells.setComponentName(3,"Vz")
+fieldDoubleVectorOnCells.setComponentDescription(3,"comp3")
+fieldDoubleVectorOnCells.setMEDComponentUnit(3,"unit3")
+
+fieldIntScalarOnNodes = FIELDINT(supportOnNodes,1)
+fieldIntScalarOnNodes.setName("fieldScalarIntNode")
+fieldIntScalarOnNodes.setIterationNumber(-1)
+fieldIntScalarOnNodes.setOrderNumber(-1)
+fieldIntScalarOnNodes.setTime(0.0)
+
+fieldIntScalarOnNodes.setComponentName(1,"Vx")
+fieldIntScalarOnNodes.setComponentDescription(1,"comp1")
+fieldIntScalarOnNodes.setMEDComponentUnit(1,"unit1")
+
+fieldIntVectorOnNodes = FIELDINT(supportOnNodes,spaceDimension)
+fieldIntVectorOnNodes.setName("fieldVectorIntNode")
+fieldIntVectorOnNodes.setIterationNumber(-1)
+fieldIntVectorOnNodes.setOrderNumber(-1)
+fieldIntVectorOnNodes.setTime(0.0)
+
+fieldIntVectorOnNodes.setComponentName(1,"Vx")
+fieldIntVectorOnNodes.setComponentDescription(1,"comp1")
+fieldIntVectorOnNodes.setMEDComponentUnit(1,"unit1")
+fieldIntVectorOnNodes.setComponentName(2,"Vy")
+fieldIntVectorOnNodes.setComponentDescription(2,"comp2")
+fieldIntVectorOnNodes.setMEDComponentUnit(2,"unit2")
+fieldIntVectorOnNodes.setComponentName(3,"Vz")
+fieldIntVectorOnNodes.setComponentDescription(3,"comp3")
+fieldIntVectorOnNodes.setMEDComponentUnit(3,"unit3")
+
+fieldIntScalarOnCells = FIELDINT(supportOnCells,1)
+fieldIntScalarOnCells.setName("fieldScalarIntCell")
+fieldIntScalarOnCells.setIterationNumber(-1)
+fieldIntScalarOnCells.setOrderNumber(-1)
+fieldIntScalarOnCells.setTime(0.0)
+
+fieldIntScalarOnCells.setComponentName(1,"Vx")
+fieldIntScalarOnCells.setComponentDescription(1,"comp1")
+fieldIntScalarOnCells.setMEDComponentUnit(1,"unit1")
+
+fieldIntVectorOnCells = FIELDINT(supportOnCells,spaceDimension)
+fieldIntVectorOnCells.setName("fieldVectorrIntCell")
+fieldIntVectorOnCells.setIterationNumber(-1)
+fieldIntVectorOnCells.setOrderNumber(-1)
+fieldIntVectorOnCells.setTime(0.0)
+
+fieldIntVectorOnCells.setComponentName(1,"Vx")
+fieldIntVectorOnCells.setComponentDescription(1,"comp1")
+fieldIntVectorOnCells.setMEDComponentUnit(1,"unit1")
+fieldIntVectorOnCells.setComponentName(2,"Vy")
+fieldIntVectorOnCells.setComponentDescription(2,"comp2")
+fieldIntVectorOnCells.setMEDComponentUnit(2,"unit2")
+fieldIntVectorOnCells.setComponentName(3,"Vz")
+fieldIntVectorOnCells.setComponentDescription(3,"comp3")
+fieldIntVectorOnCells.setMEDComponentUnit(3,"unit3")
+
+for i in range(numberOfNodes):
+    valueInt1 = i+1
+    valueInt2 = i+2
+    valueInt3 = i+3
+    valueDbl1 = valueInt1*0.1
+    valueDbl2 = valueInt2*0.1
+    valueDbl3 = valueInt3*0.1
+    fieldDoubleScalarOnNodes.setValueIJ(i+1,1,valueDbl1)
+
+    fieldIntScalarOnNodes.setValueIJ(i+1,1,valueInt1)
+
+    fieldDoubleVectorOnNodes.setValueIJ(i+1,1,valueDbl1)
+    fieldDoubleVectorOnNodes.setValueIJ(i+1,2,valueDbl2)
+    fieldDoubleVectorOnNodes.setValueIJ(i+1,3,valueDbl3)
+
+    fieldIntVectorOnNodes.setValueIJ(i+1,1,valueInt1)
+    fieldIntVectorOnNodes.setValueIJ(i+1,2,valueInt2)
+    fieldIntVectorOnNodes.setValueIJ(i+1,3,valueInt3)
+
+for i in range(numberOfCells):
+    valueInt1 = i+1
+    valueInt2 = i+2
+    valueInt3 = i+3
+    valueDbl1 = valueInt1*0.1
+    valueDbl2 = valueInt2*0.1
+    valueDbl3 = valueInt3*0.1
+    fieldDoubleScalarOnCells.setValueIJ(i+1,1,valueDbl1)
+
+    fieldIntScalarOnCells.setValueIJ(i+1,1,valueInt1)
+
+    fieldDoubleVectorOnCells.setValueIJ(i+1,1,valueDbl1)
+    fieldDoubleVectorOnCells.setValueIJ(i+1,2,valueDbl2)
+    fieldDoubleVectorOnCells.setValueIJ(i+1,3,valueDbl3)
+
+    fieldIntVectorOnCells.setValueIJ(i+1,1,valueInt1)
+    fieldIntVectorOnCells.setValueIJ(i+1,2,valueInt2)
+    fieldIntVectorOnCells.setValueIJ(i+1,3,valueInt3)
+
+medFileVersion = getMedFileVersionForWriting()
+print "Med File Version For Writing ",medFileVersion
+
+if (medFileVersion == V22):
+    setMedFileVersionForWriting(V21)
+
+idMedV21 = fieldDoubleScalarOnNodes.addDriver(MED_DRIVER,med21FileName,fieldDoubleScalarOnNodes.getName())
+fieldDoubleScalarOnNodes.write(idMedV21)
+
+idMedV21 = fieldIntScalarOnNodes.addDriver(MED_DRIVER,med21FileName,fieldIntScalarOnNodes.getName())
+fieldIntScalarOnNodes.write(idMedV21)
+
+idMedV21 = fieldDoubleVectorOnNodes.addDriver(MED_DRIVER,med21FileName,fieldDoubleVectorOnNodes.getName())
+fieldDoubleVectorOnNodes.write(idMedV21)
+
+idMedV21 = fieldIntVectorOnNodes.addDriver(MED_DRIVER,med21FileName,fieldIntVectorOnNodes.getName())
+fieldIntVectorOnNodes.write(idMedV21)
+
+idMedV21 = fieldDoubleScalarOnCells.addDriver(MED_DRIVER,med21FileName,fieldDoubleScalarOnCells.getName())
+fieldDoubleScalarOnCells.write(idMedV21)
+
+idMedV21 = fieldIntScalarOnCells.addDriver(MED_DRIVER,med21FileName,fieldIntScalarOnCells.getName())
+fieldIntScalarOnCells.write(idMedV21)
+
+idMedV21 = fieldDoubleVectorOnCells.addDriver(MED_DRIVER,med21FileName,fieldDoubleVectorOnCells.getName())
+fieldDoubleVectorOnCells.write(idMedV21)
+
+idMedV21 = fieldIntVectorOnCells.addDriver(MED_DRIVER,med21FileName,fieldIntVectorOnCells.getName())
+fieldIntVectorOnCells.write(idMedV21)
+
+medFileVersion = getMedFileVersionForWriting()
+if (medFileVersion == V21):
+    setMedFileVersionForWriting(V22)
+
+idMedV22 = fieldDoubleScalarOnNodes.addDriver(MED_DRIVER,med22FileName,fieldDoubleScalarOnNodes.getName())
+fieldDoubleScalarOnNodes.write(idMedV22)
+
+idMedV22 = fieldIntScalarOnNodes.addDriver(MED_DRIVER,med22FileName,fieldIntScalarOnNodes.getName())
+fieldIntScalarOnNodes.write(idMedV22)
+
+idMedV22 = fieldDoubleVectorOnNodes.addDriver(MED_DRIVER,med22FileName,fieldDoubleVectorOnNodes.getName())
+fieldDoubleVectorOnNodes.write(idMedV22)
+
+idMedV22 = fieldIntVectorOnNodes.addDriver(MED_DRIVER,med22FileName,fieldIntVectorOnNodes.getName())
+fieldIntVectorOnNodes.write(idMedV22)
+
+idMedV22 = fieldDoubleScalarOnCells.addDriver(MED_DRIVER,med22FileName,fieldDoubleScalarOnCells.getName())
+fieldDoubleScalarOnCells.write(idMedV22)
+
+idMedV22 = fieldIntScalarOnCells.addDriver(MED_DRIVER,med22FileName,fieldIntScalarOnCells.getName())
+fieldIntScalarOnCells.write(idMedV22)
+
+idMedV22 = fieldDoubleVectorOnCells.addDriver(MED_DRIVER,med22FileName,fieldDoubleVectorOnCells.getName())
+fieldDoubleVectorOnCells.write(idMedV22)
+
+idMedV22 = fieldIntVectorOnCells.addDriver(MED_DRIVER,med22FileName,fieldIntVectorOnCells.getName())
+fieldIntVectorOnCells.write(idMedV22)
+
+idVtk = fieldDoubleScalarOnNodes.addDriver(VTK_DRIVER,vtkFileName,fieldDoubleScalarOnNodes.getName())
+fieldDoubleScalarOnNodes.writeAppend(idVtk)
+
+idVtk = fieldIntScalarOnNodes.addDriver(VTK_DRIVER,vtkFileName,fieldIntScalarOnNodes.getName())
+fieldIntScalarOnNodes.writeAppend(idVtk)
+
+idVtk = fieldDoubleVectorOnNodes.addDriver(VTK_DRIVER,vtkFileName,fieldDoubleVectorOnNodes.getName())
+fieldDoubleVectorOnNodes.writeAppend(idVtk)
+
+idVtk = fieldIntVectorOnNodes.addDriver(VTK_DRIVER,vtkFileName,fieldIntVectorOnNodes.getName())
+fieldIntVectorOnNodes.writeAppend(idVtk)
+
+idVtk = fieldDoubleScalarOnCells.addDriver(VTK_DRIVER,vtkFileName,fieldDoubleScalarOnCells.getName())
+fieldDoubleScalarOnCells.writeAppend(idVtk)
+
+idVtk = fieldIntScalarOnCells.addDriver(VTK_DRIVER,vtkFileName,fieldIntScalarOnCells.getName())
+fieldIntScalarOnCells.writeAppend(idVtk)
+
+idVtk = fieldDoubleVectorOnCells.addDriver(VTK_DRIVER,vtkFileName,fieldDoubleVectorOnCells.getName())
+fieldDoubleVectorOnCells.writeAppend(idVtk)
+
+idVtk = fieldIntVectorOnCells.addDriver(VTK_DRIVER,vtkFileName,fieldIntVectorOnCells.getName())
+fieldIntVectorOnCells.writeAppend(idVtk)
index 947cd859836f0acec5b14df993425b794614cf6c..1580d640f305a73100a50ae3347e64029731f4b1 100644 (file)
@@ -1,24 +1,7 @@
 // Copyright (C) 2005  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/
-//
 #include "MEDMEM_Mesh.hxx"
-#include "MEDMEM_CellModel.hxx"
 
 using namespace MEDMEM ;
 using namespace MED_EN ;
@@ -38,16 +21,15 @@ int main (int argc, char ** argv) {
 
   // we get all type for cell entity :
   int NumberOfTypes = myMesh.getNumberOfTypes(MED_CELL) ;
-  const CELLMODEL * Types = myMesh.getCellsTypes(MED_CELL) ;
-
   cout << "Show Connectivity (Nodal) :" << endl ;
-  // this example use access with a specified medGeometryElement through
-  // CELLMODEL class
+  // this example use access with a specified medGeometryElement array
+  const medGeometryElement * Types = myMesh.getTypes(MED_CELL);
+  string * cellTypeNames =  myMesh.getCellTypeNames(MED_CELL);
   for (int i=0; i<NumberOfTypes; i++) {
-    cout << "For type " << Types[i].getName() << " : " << endl ;
-    medGeometryElement myType = Types[i].getType() ;
+    cout << "For type " << cellTypeNames[i] << " : " << endl ;
+    medGeometryElement myType = Types[i] ;
     int NumberOfElements = myMesh.getNumberOfElements(MED_CELL,myType);
-    int NomberOfNodesPerCell = Types[i].getNumberOfNodes() ;
+    int NomberOfNodesPerCell = Types[i]%100 ;
     const int * Connectivity = 
       myMesh.getConnectivity(MED_FULL_INTERLACE,
                             MED_NODAL,
index 4e5e14f0f732fb8c38636ed41d26740248a7ed35..19bf5c4a4f93458fcaa53830bd6cd3fdb8b58c42 100644 (file)
@@ -1,3 +1,6 @@
+# Copyright (C) 2005  OPEN CASCADE, CEA, EDF R&D, LEG
+#           PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT
+# 
 from libMEDMEM_Swig import *
 
 MedFile = "pointe.med"
index d836b635d8d29933751c6d28771627e80fbec364..fca22a17cf5031b264bd4ce04c53ee0a88c49ca1 100644 (file)
@@ -1,22 +1,6 @@
 // Copyright (C) 2005  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/
-//
 #include "MEDMEM_Mesh.hxx"
 
 using namespace MEDMEM ;
index 4508fffef869c2af97f148011eed50fcb9d63cc2..b082a1a3f999b1b2ded042a389bccca65611e022 100644 (file)
@@ -1,3 +1,6 @@
+# Copyright (C) 2005  OPEN CASCADE, CEA, EDF R&D, LEG
+#           PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT
+# 
 from libMEDMEM_Swig import *
 
 MedFile = "pointe.med"
index 68994ae5d44c1e9b541c417dc856b75fb3e7c00a..a577966e7d63c552334ee9ca8b45c8397b3198b1 100644 (file)
@@ -1,22 +1,6 @@
 // Copyright (C) 2005  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/
-//
 using namespace std;
 #include "MEDMEM_Mesh.hxx"
 
index bda6a073b58018304a415564ef85b216810645d0..95fc038684268f25363831dbfda9fbc328ff40ea 100644 (file)
@@ -1,3 +1,6 @@
+# Copyright (C) 2005  OPEN CASCADE, CEA, EDF R&D, LEG
+#           PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT
+# 
 from libMEDMEM_Swig import *
 
 MedFile = "pointe.med"
index b06d7820e56c7bd6149b2618794fde9636dc61af..ed7de656f1d35e01e21f9032f402ca66db11a509 100644 (file)
@@ -1,3 +1,21 @@
+# Copyright (C) 2005  OPEN CASCADE, CEA, EDF R&D, LEG
+#           PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT
+# 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
+# 
 # -* Makefile *- 
 #
 # Author : Nadir BOUHAMOU (CEA)
@@ -104,11 +122,8 @@ MedMemory_devel_2on1.pdf:
 
 # User Guide
 
-MEDMEM_UsersGuide.ps: MEDMEM_UsersGuide.dvi
-       dvips -o MEDMEM_UsersGuide.ps MEDMEM_UsersGuide.dvi
-
-MEDMEM_UsersGuide.pdf: MEDMEM_UsersGuide.ps
-       ps2pdf MEDMEM_UsersGuide.ps MEDMEM_UsersGuide.pdf
+MEDMEM_UsersGuide.ps: MEDMEM_UsersGuide.pdf
+       pdf2ps MEDMEM_UsersGuide.pdf MEDMEM_UsersGuide.ps 
 
 MEDMEM_UsersGuide_2on1.ps: MEDMEM_UsersGuide.ps
        psnup -2 MEDMEM_UsersGuide.ps >MEDMEM_UsersGuide_2on1.ps
@@ -116,17 +131,13 @@ MEDMEM_UsersGuide_2on1.ps: MEDMEM_UsersGuide.ps
 MEDMEM_UsersGuide_2on1.pdf: MEDMEM_UsersGuide_2on1.ps
        ps2pdf MEDMEM_UsersGuide_2on1.ps MEDMEM_UsersGuide_2on1.pdf
 
-
-MEDMEM_UML.eps:MEDMEM_UML.dia
-       dia -e $@ $<
-
-MEDMEM_UsersGuide.dvi: MEDMEM_UsersGuide.tex MEDMEM_UML.eps
-       echo "Running latex..."
-       latex $<
+MEDMEM_UsersGuide.pdf: MEDMEM_UsersGuide.tex MEDMEM_Content.tex MEDMEM_UML_light.png MEDMEM_UML.png FIELDcreate.cxx FIELDgeneral.cxx MEDMEM_InvokingDriverAtObjectCreationTime.cxx MEDMEM_InvokingDriverByAttachingItToAnObject.cxx MEDMEM_InvokingDriverFromStandardObjectMethod.cxx MEDMEM_MedAddingAnExistingObject.cxx MESHconnectivities.cxx MESHcoordinates.cxx MESHgeneral.cxx MESHINGexample.cxx FIELDcreate.py FIELDgeneral.py MEDMEM_InvokingDriverAtObjectCreationTime.py MEDMEM_InvokingDriverByAttachingItToAnObject.py MEDMEM_InvokingDriverFromStandardObjectMethod.py MESHconnectivities.py MESHcoordinates.py MESHgeneral.py MESHINGexample.py
+       echo "Running pdflatex..."
+       pdflatex $<
        #echo "Running makeindex..."
        #makeindex MEDMEM_UsersGuide.idx
        echo "Rerunning latex...."
-       latex $<
+       pdflatex $<
        latex_count=5
        while egrep -s 'Rerun (LaTeX|to get cross-references right)' MEDMEM_UsersGuide.log && [ $latex_count -gt 0 ] ;\
            do \
@@ -138,6 +149,15 @@ MEDMEM_UsersGuide.dvi: MEDMEM_UsersGuide.tex MEDMEM_UML.eps
 MEDMEM_UsersGuide.tex:MEDMEM_UsersGuide.tex.in
        cd $(top_builddir) && CONFIG_FILES=./doc/MEDMEM/MEDMEM_UsersGuide.tex ./config.status
 
+MEDMEM_Content.tex:MEDMEM_Content.tex.in
+       cd $(top_builddir) && CONFIG_FILES=./doc/MEDMEM/MEDMEM_Content.tex ./config.status 
+
+MEDMEM_UML_light.png:MEDMEM_UML_light.png.in
+       cd $(top_builddir) && CONFIG_FILES=./doc/MEDMEM/MEDMEM_UML_light.png ./config.status 
+
+MEDMEM_UML.png:MEDMEM_UML.png.in
+       cd $(top_builddir) && CONFIG_FILES=./doc/MEDMEM/MEDMEM_UML.png ./config.status 
+
 # install procedure
 
 install: $(datadir)/doc ps_2on1 pdf_2on1
index 7295ede75128e9e51b474f63ed9f8d7a128bb3df..c54fc262b7b289c1adc883c4391dfb2f44b85e9a 100644 (file)
@@ -1,3 +1,21 @@
+# Copyright (C) 2005  OPEN CASCADE, CEA, EDF R&D, LEG
+#           PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT
+# 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
+# 
 
 # -* Makefile *- 
 #
@@ -15,7 +33,7 @@ SUBDIRS= salome
 
 @COMMENCE@
 
-docs:
+dev_docs:
        @@SETX@; for d in $(SUBDIRS); do        \
           (cd $$d && $(MAKE) $@) || exit 1;    \
        done
diff --git a/doc/html/INPUT/doxyfile b/doc/html/INPUT/doxyfile
deleted file mode 100755 (executable)
index 6e7f694..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-# Doxyfile 1.3-rc1
-
-#---------------------------------------------------------------------------
-# General configuration options
-#---------------------------------------------------------------------------
-PROJECT_NAME           = "SALOME - MED - v.2.0.0"
-PROJECT_NUMBER         = id#1.1
-OUTPUT_DIRECTORY       = ../
-OUTPUT_LANGUAGE        = English
-EXTRACT_ALL            = YES
-EXTRACT_PRIVATE        = YES
-EXTRACT_STATIC         = YES
-EXTRACT_LOCAL_CLASSES  = YES
-HIDE_UNDOC_MEMBERS     = NO
-HIDE_UNDOC_CLASSES     = NO
-HIDE_FRIEND_COMPOUNDS  = NO
-HIDE_IN_BODY_DOCS      = NO
-BRIEF_MEMBER_DESC      = YES
-REPEAT_BRIEF           = NO
-ALWAYS_DETAILED_SEC    = YES
-INLINE_INHERITED_MEMB  = YES
-FULL_PATH_NAMES        = NO
-STRIP_FROM_PATH        = 
-INTERNAL_DOCS          = YES
-CASE_SENSE_NAMES       = YES
-SHORT_NAMES            = NO
-HIDE_SCOPE_NAMES       = NO
-VERBATIM_HEADERS       = YES
-SHOW_INCLUDE_FILES     = YES
-JAVADOC_AUTOBRIEF      = YES
-MULTILINE_CPP_IS_BRIEF = NO
-DETAILS_AT_TOP         = NO
-INHERIT_DOCS           = YES
-INLINE_INFO            = YES
-SORT_MEMBER_DOCS       = NO
-DISTRIBUTE_GROUP_DOC   = NO
-TAB_SIZE               = 5
-GENERATE_TODOLIST      = YES
-GENERATE_TESTLIST      = YES
-GENERATE_BUGLIST       = YES
-GENERATE_DEPRECATEDLIST= YES
-ALIASES                = 
-ENABLED_SECTIONS       = 
-MAX_INITIALIZER_LINES  = 25
-OPTIMIZE_OUTPUT_FOR_C  = YES
-OPTIMIZE_OUTPUT_JAVA   = YES
-SHOW_USED_FILES        = NO
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-QUIET                  = NO
-WARNINGS               = YES
-WARN_IF_UNDOCUMENTED   = YES
-WARN_FORMAT            = "$file:$line: $text"
-WARN_LOGFILE           = log.txt
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-INPUT                  = ../../../share/salome/idl/MED.idl \
-                         ../../../share/salome/idl/MED_Gen.idl
-FILE_PATTERNS          = 
-RECURSIVE              = NO
-EXCLUDE                = 
-EXCLUDE_SYMLINKS       = NO
-EXCLUDE_PATTERNS       = 
-EXAMPLE_PATH           = 
-EXAMPLE_PATTERNS       = 
-EXAMPLE_RECURSIVE      = NO
-IMAGE_PATH             = sources/
-INPUT_FILTER           = 
-FILTER_SOURCE_FILES    = YES
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-SOURCE_BROWSER         = NO
-INLINE_SOURCES         = NO
-STRIP_CODE_COMMENTS    = YES
-REFERENCED_BY_RELATION = NO
-REFERENCES_RELATION    = YES
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX     = NO
-COLS_IN_ALPHA_INDEX    = 5
-IGNORE_PREFIX          = 
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-GENERATE_HTML          = YES
-HTML_OUTPUT            = html
-HTML_FILE_EXTENSION    = .html
-HTML_HEADER            = sources/myheader.html
-HTML_FOOTER            = 
-HTML_STYLESHEET        = 
-HTML_ALIGN_MEMBERS     = YES
-GENERATE_HTMLHELP      = NO
-CHM_FILE               = 
-HHC_LOCATION           = 
-GENERATE_CHI           = NO
-BINARY_TOC             = YES
-TOC_EXPAND             = YES
-DISABLE_INDEX          = YES
-ENUM_VALUES_PER_LINE   = 4
-GENERATE_TREEVIEW      = YES
-TREEVIEW_WIDTH         = 250
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-GENERATE_LATEX         = NO
-LATEX_OUTPUT           = latex
-LATEX_CMD_NAME         = latex
-MAKEINDEX_CMD_NAME     = makeindex
-COMPACT_LATEX          = NO
-PAPER_TYPE             = a4wide
-EXTRA_PACKAGES         = 
-LATEX_HEADER           = 
-PDF_HYPERLINKS         = NO
-USE_PDFLATEX           = NO
-LATEX_BATCHMODE        = NO
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-GENERATE_RTF           = NO
-RTF_OUTPUT             = rtf
-COMPACT_RTF            = NO
-RTF_HYPERLINKS         = NO
-RTF_STYLESHEET_FILE    = 
-RTF_EXTENSIONS_FILE    = 
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-GENERATE_MAN           = NO
-MAN_OUTPUT             = man
-MAN_EXTENSION          = .3
-MAN_LINKS              = NO
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-GENERATE_XML           = NO
-XML_SCHEMA             = 
-XML_DTD                = 
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-GENERATE_AUTOGEN_DEF   = NO
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-GENERATE_PERLMOD       = NO
-PERLMOD_LATEX          = NO
-PERLMOD_PRETTY         = YES
-PERLMOD_MAKEVAR_PREFIX = 
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
-#---------------------------------------------------------------------------
-ENABLE_PREPROCESSING   = YES
-MACRO_EXPANSION        = YES
-EXPAND_ONLY_PREDEF     = NO
-SEARCH_INCLUDES        = YES
-INCLUDE_PATH           = 
-INCLUDE_FILE_PATTERNS  = 
-PREDEFINED             = 
-EXPAND_AS_DEFINED      = 
-SKIP_FUNCTION_MACROS   = NO
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references   
-#---------------------------------------------------------------------------
-TAGFILES               = 
-GENERATE_TAGFILE       = 
-ALLEXTERNALS           = NO
-EXTERNAL_GROUPS        = YES
-PERL_PATH              = /usr/bin/perl
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
-#---------------------------------------------------------------------------
-CLASS_DIAGRAMS         = YES
-HIDE_UNDOC_RELATIONS   = NO
-HAVE_DOT               = YES
-CLASS_GRAPH            = YES
-COLLABORATION_GRAPH    = NO
-TEMPLATE_RELATIONS     = YES
-INCLUDE_GRAPH          = YES
-INCLUDED_BY_GRAPH      = NO
-GRAPHICAL_HIERARCHY    = YES
-DOT_IMAGE_FORMAT       = jpg
-DOT_PATH               = 
-DOTFILE_DIRS           = 
-MAX_DOT_GRAPH_WIDTH    = 1024
-MAX_DOT_GRAPH_HEIGHT   = 1200
-GENERATE_LEGEND        = NO
-DOT_CLEANUP            = YES
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine   
-#---------------------------------------------------------------------------
-SEARCHENGINE           = NO
-CGI_NAME               = search.cgi
-CGI_URL                = 
-DOC_URL                = 
-DOC_ABSPATH            = 
-BIN_ABSPATH            = /usr/local/bin/
-EXT_DOC_PATHS          = 
diff --git a/doc/html/INPUT/doxyfile.in b/doc/html/INPUT/doxyfile.in
new file mode 100755 (executable)
index 0000000..023290e
--- /dev/null
@@ -0,0 +1,201 @@
+# Doxyfile 1.3-rc1
+
+#---------------------------------------------------------------------------
+# General configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME           = "SALOME - MED - v.@VERSION@"
+PROJECT_NUMBER         = id#1.1
+OUTPUT_DIRECTORY       = ../
+OUTPUT_LANGUAGE        = English
+EXTRACT_ALL            = YES
+EXTRACT_PRIVATE        = YES
+EXTRACT_STATIC         = YES
+EXTRACT_LOCAL_CLASSES  = YES
+HIDE_UNDOC_MEMBERS     = NO
+HIDE_UNDOC_CLASSES     = NO
+HIDE_FRIEND_COMPOUNDS  = NO
+HIDE_IN_BODY_DOCS      = NO
+BRIEF_MEMBER_DESC      = YES
+REPEAT_BRIEF           = NO
+ALWAYS_DETAILED_SEC    = YES
+INLINE_INHERITED_MEMB  = YES
+FULL_PATH_NAMES        = NO
+STRIP_FROM_PATH        = 
+INTERNAL_DOCS          = YES
+CASE_SENSE_NAMES       = YES
+SHORT_NAMES            = NO
+HIDE_SCOPE_NAMES       = NO
+VERBATIM_HEADERS       = YES
+SHOW_INCLUDE_FILES     = YES
+JAVADOC_AUTOBRIEF      = YES
+MULTILINE_CPP_IS_BRIEF = NO
+DETAILS_AT_TOP         = NO
+INHERIT_DOCS           = YES
+INLINE_INFO            = YES
+SORT_MEMBER_DOCS       = NO
+DISTRIBUTE_GROUP_DOC   = NO
+TAB_SIZE               = 5
+GENERATE_TODOLIST      = YES
+GENERATE_TESTLIST      = YES
+GENERATE_BUGLIST       = YES
+GENERATE_DEPRECATEDLIST= YES
+ALIASES                = 
+ENABLED_SECTIONS       = 
+MAX_INITIALIZER_LINES  = 25
+OPTIMIZE_OUTPUT_FOR_C  = YES
+OPTIMIZE_OUTPUT_JAVA   = YES
+SHOW_USED_FILES        = NO
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET                  = NO
+WARNINGS               = YES
+WARN_IF_UNDOCUMENTED   = YES
+WARN_FORMAT            = "$file:$line: $text"
+WARN_LOGFILE           = log.txt
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT                  = ../../../share/salome/idl/MED.idl \
+                         ../../../share/salome/idl/MED_Gen.idl
+FILE_PATTERNS          = 
+RECURSIVE              = NO
+EXCLUDE                = 
+EXCLUDE_SYMLINKS       = NO
+EXCLUDE_PATTERNS       = 
+EXAMPLE_PATH           = 
+EXAMPLE_PATTERNS       = 
+EXAMPLE_RECURSIVE      = NO
+IMAGE_PATH             = sources/
+INPUT_FILTER           = 
+FILTER_SOURCE_FILES    = YES
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER         = NO
+INLINE_SOURCES         = NO
+STRIP_CODE_COMMENTS    = YES
+REFERENCED_BY_RELATION = NO
+REFERENCES_RELATION    = YES
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX     = NO
+COLS_IN_ALPHA_INDEX    = 5
+IGNORE_PREFIX          = 
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML          = YES
+HTML_OUTPUT            = html
+HTML_FILE_EXTENSION    = .html
+HTML_HEADER            = sources/myheader.html
+HTML_FOOTER            = 
+HTML_STYLESHEET        = 
+HTML_ALIGN_MEMBERS     = YES
+GENERATE_HTMLHELP      = NO
+CHM_FILE               = 
+HHC_LOCATION           = 
+GENERATE_CHI           = NO
+BINARY_TOC             = YES
+TOC_EXPAND             = YES
+DISABLE_INDEX          = YES
+ENUM_VALUES_PER_LINE   = 4
+GENERATE_TREEVIEW      = YES
+TREEVIEW_WIDTH         = 250
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX         = NO
+LATEX_OUTPUT           = latex
+LATEX_CMD_NAME         = latex
+MAKEINDEX_CMD_NAME     = makeindex
+COMPACT_LATEX          = NO
+PAPER_TYPE             = a4wide
+EXTRA_PACKAGES         = 
+LATEX_HEADER           = 
+PDF_HYPERLINKS         = NO
+USE_PDFLATEX           = NO
+LATEX_BATCHMODE        = NO
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF           = NO
+RTF_OUTPUT             = rtf
+COMPACT_RTF            = NO
+RTF_HYPERLINKS         = NO
+RTF_STYLESHEET_FILE    = 
+RTF_EXTENSIONS_FILE    = 
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN           = NO
+MAN_OUTPUT             = man
+MAN_EXTENSION          = .3
+MAN_LINKS              = NO
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML           = NO
+XML_SCHEMA             = 
+XML_DTD                = 
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF   = NO
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD       = NO
+PERLMOD_LATEX          = NO
+PERLMOD_PRETTY         = YES
+PERLMOD_MAKEVAR_PREFIX = 
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING   = YES
+MACRO_EXPANSION        = YES
+EXPAND_ONLY_PREDEF     = NO
+SEARCH_INCLUDES        = YES
+INCLUDE_PATH           = 
+INCLUDE_FILE_PATTERNS  = 
+PREDEFINED             = 
+EXPAND_AS_DEFINED      = 
+SKIP_FUNCTION_MACROS   = NO
+#---------------------------------------------------------------------------
+# Configuration::addtions related to external references   
+#---------------------------------------------------------------------------
+TAGFILES               = 
+GENERATE_TAGFILE       = 
+ALLEXTERNALS           = NO
+EXTERNAL_GROUPS        = YES
+PERL_PATH              = /usr/bin/perl
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS         = YES
+HIDE_UNDOC_RELATIONS   = NO
+HAVE_DOT               = YES
+CLASS_GRAPH            = YES
+COLLABORATION_GRAPH    = NO
+TEMPLATE_RELATIONS     = YES
+INCLUDE_GRAPH          = YES
+INCLUDED_BY_GRAPH      = NO
+GRAPHICAL_HIERARCHY    = YES
+DOT_IMAGE_FORMAT       = jpg
+DOT_PATH               = 
+DOTFILE_DIRS           = 
+MAX_DOT_GRAPH_WIDTH    = 1024
+MAX_DOT_GRAPH_HEIGHT   = 1200
+GENERATE_LEGEND        = NO
+DOT_CLEANUP            = YES
+#---------------------------------------------------------------------------
+# Configuration::addtions related to the search engine   
+#---------------------------------------------------------------------------
+SEARCHENGINE           = NO
+CGI_NAME               = search.cgi
+CGI_URL                = 
+DOC_URL                = 
+DOC_ABSPATH            = 
+BIN_ABSPATH            = /usr/local/bin/
+EXT_DOC_PATHS          = 
index 135b2daefec98b741783540625cf546cce5ad1b2..36943e852b70a3c5ba7e3e6e05ebf63ed6275058 100644 (file)
@@ -1,3 +1,21 @@
+# Copyright (C) 2005  OPEN CASCADE, CEA, EDF R&D, LEG
+#           PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT
+# 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
+# 
 # -* Makefile *- 
 #
 # Author : Vasily Rusyaev (Open Cascade NN)
diff --git a/doc/salome/MED_index_v3.1.0.html b/doc/salome/MED_index_v3.1.0.html
deleted file mode 100644 (file)
index 5217304..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-<!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-                                                
-  <meta http-equiv="Content-Type"
- content="text/html; charset=iso-8859-1">
-                                                
-  <meta name="GENERATOR"
- content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
-  <title>Med Module Documentation</title>
-</head>
-  <body bgcolor="#cccccc" text="#000000" link="#0000ee" alink="#0000ee"
- vlink="#551a8b">
-         
-<div align="center">    &nbsp;            
-<center>           
-<center>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
- &nbsp;&nbsp;</center>
-         
-<table width="96%" align="center">
-            <tbody>
-               <tr>
-            <td><a href="http://www.opencascade.com"><img
- src="tui/MED/sources/logocorp.gif" border="0" height="46" width="122">
-                 </a></td>
-              <td>                                                      
-                       
-      <div align="right"><a href="http://www.opencascade.org/SALOME/"><img
- src="tui/MED/sources/application.gif" border="0" height="46"
- width="108">
-                 </a></div>
-            </td>
-            </tr>
-                                                          
-  </tbody>     
-</table>
-         
-<div align="center">     
-<center>     
-<hr width="100%" size="2">    
-<h1>Med MODULE Documentation</h1>
-                                      </center>
-     </div>
-         
-<table width="96%">
-       <tbody>
-                   
-  </tbody>     
-</table>
-     </center>
-         
-<div align="center">        
-<p> <img src="tui/MED/sources/Application-About.png"
- alt="Application-About.png" width="30%" height="20%">
-     &nbsp; &nbsp;&nbsp;          </p>
-              </div>
-         
-<center>     
-<table width="96%">
-       <tbody>
-                     
-  </tbody>     
-</table>
-    <br>
-            </center>
-       
-<address> </address>
-     <br>
-        
-<address> </address>
-     
-<center></center>
-        
-<center><br>
-    </center>
-       
-<address> </address>
-     
-<center><big><a href="tui/MED/index.html">TUI Documentation</a></big></center>
-        
-<address> </address>
-     
-<center></center>
-        
-<center><br>
-    <br>
-     </center>
-     </div>
-      <br>
-   <br>
-  <br>
- <br>
-</body>
-</html>
index c19de8770d05a3d170346256ecd6f2f2bd0716df..c88e711398c4b61726292f91af6079e4e1db0c8b 100644 (file)
@@ -1,3 +1,21 @@
+# Copyright (C) 2005  OPEN CASCADE, CEA, EDF R&D, LEG
+#           PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT
+# 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
+# 
 
 # -* Makefile *- 
 #
@@ -15,29 +33,35 @@ SUBDIRS= tui
 
 @COMMENCE@
 
-docs:
+dev_docs:
        @@SETX@; for d in $(SUBDIRS); do        \
           (cd $$d && $(MAKE) $@) || exit 1;    \
        done; \
-       cp -f $(srcdir)/MED_index_v3.1.0.html MED_index_v3.1.0.html
 
 clean:
        @@SETX@; for d in $(SUBDIRS); do        \
-          (cd $$d && $(MAKE) $@) || exit 1;    \
+          if test -d $$d/MED; then             \
+             (cd $$d && $(MAKE) $@) || exit 1; \
+          fi;                                  \
        done
 
 distclean: clean
        @@SETX@; for d in $(SUBDIRS); do        \
-          (cd $$d && $(MAKE) $@) || exit 1;    \
+          if test -d $$d/MED; then             \
+             (cd $$d && $(MAKE) $@) || exit 1; \
+          fi;                                  \
        done
 
 install:
-       $(MAKE) docs
-       (cd tui && $(MAKE) install);
-       cp -f MED_index_v3.1.0.html $(docdir)
+       @@SETX@; for d in $(SUBDIRS); do        \
+          if test -d $$d/MED; then             \
+             (cd $$d && $(MAKE) $@);           \
+          fi;                                  \
+       done
 
 uninstall:
        @@SETX@; for d in $(SUBDIRS); do        \
-          (cd $$d && $(MAKE) $@) || exit 1;    \
+          if test -d $$d/MED; then             \
+             (cd $$d && $(MAKE) $@) || exit 1; \
+          fi;                                  \
        done; \
-       rm -fr $(docdir)/MED_index_v3.1.0.html
diff --git a/doc/salome/tui/MED/doxyfile b/doc/salome/tui/MED/doxyfile
deleted file mode 100755 (executable)
index 7b65feb..0000000
+++ /dev/null
@@ -1,230 +0,0 @@
-# Doxyfile 1.3.7
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-PROJECT_NAME           = "SALOME - MED - v.3.2.0b1"
-PROJECT_NUMBER         = id#1.1
-OUTPUT_DIRECTORY       = ../
-CREATE_SUBDIRS         = NO
-OUTPUT_LANGUAGE        = English
-USE_WINDOWS_ENCODING   = NO
-BRIEF_MEMBER_DESC      = YES
-REPEAT_BRIEF           = YES
-ABBREVIATE_BRIEF       = 
-ALWAYS_DETAILED_SEC    = NO
-INLINE_INHERITED_MEMB  = NO
-FULL_PATH_NAMES        = NO
-STRIP_FROM_PATH        = 
-STRIP_FROM_INC_PATH    = 
-SHORT_NAMES            = NO
-JAVADOC_AUTOBRIEF      = YES
-MULTILINE_CPP_IS_BRIEF = NO
-DETAILS_AT_TOP         = NO
-INHERIT_DOCS           = NO
-DISTRIBUTE_GROUP_DOC   = NO
-TAB_SIZE               = 5
-ALIASES                = 
-OPTIMIZE_OUTPUT_FOR_C  = YES
-OPTIMIZE_OUTPUT_JAVA   = YES
-SUBGROUPING            = YES
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-EXTRACT_ALL            = YES
-EXTRACT_PRIVATE        = YES
-EXTRACT_STATIC         = YES
-EXTRACT_LOCAL_CLASSES  = YES
-EXTRACT_LOCAL_METHODS  = NO
-HIDE_UNDOC_MEMBERS     = YES
-HIDE_UNDOC_CLASSES     = YES
-HIDE_FRIEND_COMPOUNDS  = NO
-HIDE_IN_BODY_DOCS      = NO
-INTERNAL_DOCS          = YES
-CASE_SENSE_NAMES       = YES
-HIDE_SCOPE_NAMES       = NO
-SHOW_INCLUDE_FILES     = YES
-INLINE_INFO            = YES
-SORT_MEMBER_DOCS       = NO
-SORT_BRIEF_DOCS        = NO
-SORT_BY_SCOPE_NAME     = NO
-GENERATE_TODOLIST      = YES
-GENERATE_TESTLIST      = YES
-GENERATE_BUGLIST       = YES
-GENERATE_DEPRECATEDLIST= YES
-ENABLED_SECTIONS       = 
-MAX_INITIALIZER_LINES  = 25
-SHOW_USED_FILES        = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-QUIET                  = NO
-WARNINGS               = YES
-WARN_IF_UNDOCUMENTED   = YES
-WARN_IF_DOC_ERROR      = YES
-WARN_FORMAT            = "$file:$line: $text"
-WARN_LOGFILE           = log.txt
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-INPUT                  = ../../../share/salome/src \
-                        ../../../share/salome/idl \
-                        ../../../build/salome/bin
-FILE_PATTERNS          = *.idl *.h *.hh *.hxx *.c *.cc *.cxx *.ixx *.jxx python_extension_must_be_here
-RECURSIVE              = YES
-EXCLUDE                = 
-EXCLUDE_SYMLINKS       = NO
-EXCLUDE_PATTERNS       = 
-EXAMPLE_PATH           = 
-EXAMPLE_PATTERNS       = 
-EXAMPLE_RECURSIVE      = YES
-IMAGE_PATH             = sources/
-INPUT_FILTER           = 
-FILTER_SOURCE_FILES    = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-SOURCE_BROWSER         = NO
-INLINE_SOURCES         = NO
-STRIP_CODE_COMMENTS    = YES
-REFERENCED_BY_RELATION = NO
-REFERENCES_RELATION    = YES
-VERBATIM_HEADERS       = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX     = NO
-COLS_IN_ALPHA_INDEX    = 5
-IGNORE_PREFIX          = 
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-GENERATE_HTML          = YES
-HTML_OUTPUT            = MED
-HTML_FILE_EXTENSION    = .html
-HTML_HEADER            = sources/myheader.html
-HTML_FOOTER            = 
-HTML_STYLESHEET        = 
-HTML_ALIGN_MEMBERS     = YES
-GENERATE_HTMLHELP      = NO
-CHM_FILE               = 
-HHC_LOCATION           = 
-GENERATE_CHI           = NO
-BINARY_TOC             = YES
-TOC_EXPAND             = YES
-DISABLE_INDEX          = YES
-ENUM_VALUES_PER_LINE   = 4
-GENERATE_TREEVIEW      = YES
-TREEVIEW_WIDTH         = 250
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-GENERATE_LATEX         = NO
-LATEX_OUTPUT           = latex
-LATEX_CMD_NAME         = latex
-MAKEINDEX_CMD_NAME     = makeindex
-COMPACT_LATEX          = NO
-PAPER_TYPE             = a4wide
-EXTRA_PACKAGES         = 
-LATEX_HEADER           = 
-PDF_HYPERLINKS         = NO
-USE_PDFLATEX           = NO
-LATEX_BATCHMODE        = NO
-LATEX_HIDE_INDICES     = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-GENERATE_RTF           = NO
-RTF_OUTPUT             = rtf
-COMPACT_RTF            = NO
-RTF_HYPERLINKS         = NO
-RTF_STYLESHEET_FILE    = 
-RTF_EXTENSIONS_FILE    = 
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-GENERATE_MAN           = NO
-MAN_OUTPUT             = man
-MAN_EXTENSION          = .3
-MAN_LINKS              = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-GENERATE_XML           = NO
-XML_OUTPUT             = xml
-XML_SCHEMA             = 
-XML_DTD                = 
-XML_PROGRAMLISTING     = YES
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-GENERATE_AUTOGEN_DEF   = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-GENERATE_PERLMOD       = NO
-PERLMOD_LATEX          = NO
-PERLMOD_PRETTY         = YES
-PERLMOD_MAKEVAR_PREFIX = 
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
-#---------------------------------------------------------------------------
-ENABLE_PREPROCESSING   = YES
-MACRO_EXPANSION        = YES
-EXPAND_ONLY_PREDEF     = NO
-SEARCH_INCLUDES        = YES
-INCLUDE_PATH           = 
-INCLUDE_FILE_PATTERNS  = 
-PREDEFINED             = 
-EXPAND_AS_DEFINED      = 
-SKIP_FUNCTION_MACROS   = NO
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references   
-#---------------------------------------------------------------------------
-TAGFILES               = 
-GENERATE_TAGFILE       = 
-ALLEXTERNALS           = NO
-EXTERNAL_GROUPS        = YES
-PERL_PATH              = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
-#---------------------------------------------------------------------------
-CLASS_DIAGRAMS         = YES
-HIDE_UNDOC_RELATIONS   = NO
-HAVE_DOT               = YES
-CLASS_GRAPH            = YES
-COLLABORATION_GRAPH    = NO
-UML_LOOK               = NO
-TEMPLATE_RELATIONS     = YES
-INCLUDE_GRAPH          = YES
-INCLUDED_BY_GRAPH      = NO
-CALL_GRAPH             = NO
-GRAPHICAL_HIERARCHY    = YES
-DOT_IMAGE_FORMAT       = jpg
-DOT_PATH               = 
-DOTFILE_DIRS           = 
-MAX_DOT_GRAPH_WIDTH    = 1024
-MAX_DOT_GRAPH_HEIGHT   = 1200
-MAX_DOT_GRAPH_DEPTH    = 0
-GENERATE_LEGEND        = NO
-DOT_CLEANUP            = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine   
-#---------------------------------------------------------------------------
-SEARCHENGINE           = NO
diff --git a/doc/salome/tui/MED/doxyfile.in b/doc/salome/tui/MED/doxyfile.in
new file mode 100755 (executable)
index 0000000..06d537f
--- /dev/null
@@ -0,0 +1,231 @@
+# Doxyfile 1.3.7
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME           = "SALOME - MED - v.@VERSION@"
+PROJECT_NUMBER         = 
+OUTPUT_DIRECTORY       = ../
+CREATE_SUBDIRS         = NO
+OUTPUT_LANGUAGE        = English
+USE_WINDOWS_ENCODING   = NO
+BRIEF_MEMBER_DESC      = YES
+REPEAT_BRIEF           = YES
+ABBREVIATE_BRIEF       = 
+ALWAYS_DETAILED_SEC    = NO
+INLINE_INHERITED_MEMB  = NO
+FULL_PATH_NAMES        = YES
+STRIP_FROM_PATH        = ../../../share/salome \
+                        ../../../build/salome
+STRIP_FROM_INC_PATH    = 
+SHORT_NAMES            = NO
+JAVADOC_AUTOBRIEF      = YES
+MULTILINE_CPP_IS_BRIEF = NO
+DETAILS_AT_TOP         = NO
+INHERIT_DOCS           = NO
+DISTRIBUTE_GROUP_DOC   = NO
+TAB_SIZE               = 5
+ALIASES                = 
+OPTIMIZE_OUTPUT_FOR_C  = YES
+OPTIMIZE_OUTPUT_JAVA   = YES
+SUBGROUPING            = YES
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL            = YES
+EXTRACT_PRIVATE        = YES
+EXTRACT_STATIC         = YES
+EXTRACT_LOCAL_CLASSES  = YES
+EXTRACT_LOCAL_METHODS  = NO
+HIDE_UNDOC_MEMBERS     = YES
+HIDE_UNDOC_CLASSES     = YES
+HIDE_FRIEND_COMPOUNDS  = NO
+HIDE_IN_BODY_DOCS      = NO
+INTERNAL_DOCS          = YES
+CASE_SENSE_NAMES       = YES
+HIDE_SCOPE_NAMES       = NO
+SHOW_INCLUDE_FILES     = YES
+INLINE_INFO            = YES
+SORT_MEMBER_DOCS       = NO
+SORT_BRIEF_DOCS        = NO
+SORT_BY_SCOPE_NAME     = NO
+GENERATE_TODOLIST      = YES
+GENERATE_TESTLIST      = YES
+GENERATE_BUGLIST       = YES
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS       = 
+MAX_INITIALIZER_LINES  = 25
+SHOW_USED_FILES        = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET                  = NO
+WARNINGS               = YES
+WARN_IF_UNDOCUMENTED   = YES
+WARN_IF_DOC_ERROR      = YES
+WARN_FORMAT            = "$file:$line: $text"
+WARN_LOGFILE           = log.txt
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT                  = ../../../share/salome/src \
+                        ../../../share/salome/idl \
+                        ../../../build/salome/bin
+FILE_PATTERNS          = *.idl *.h *.hh *.hxx *.c *.cc *.cxx *.ixx *.jxx python_extension_must_be_here
+RECURSIVE              = YES
+EXCLUDE                = 
+EXCLUDE_SYMLINKS       = NO
+EXCLUDE_PATTERNS       = 
+EXAMPLE_PATH           = 
+EXAMPLE_PATTERNS       = 
+EXAMPLE_RECURSIVE      = YES
+IMAGE_PATH             = sources/
+INPUT_FILTER           = 
+FILTER_SOURCE_FILES    = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER         = NO
+INLINE_SOURCES         = NO
+STRIP_CODE_COMMENTS    = YES
+REFERENCED_BY_RELATION = NO
+REFERENCES_RELATION    = YES
+VERBATIM_HEADERS       = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX     = YES
+COLS_IN_ALPHA_INDEX    = 3
+IGNORE_PREFIX          = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML          = YES
+HTML_OUTPUT            = MED
+HTML_FILE_EXTENSION    = .html
+HTML_HEADER            = sources/myheader.html
+HTML_FOOTER            = sources/footer.html
+HTML_STYLESHEET        = sources/static/doxygen.css
+HTML_ALIGN_MEMBERS     = YES
+GENERATE_HTMLHELP      = NO
+CHM_FILE               = 
+HHC_LOCATION           = 
+GENERATE_CHI           = NO
+BINARY_TOC             = YES
+TOC_EXPAND             = YES
+DISABLE_INDEX          = NO
+ENUM_VALUES_PER_LINE   = 4
+GENERATE_TREEVIEW      = NO
+TREEVIEW_WIDTH         = 250
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX         = NO
+LATEX_OUTPUT           = latex
+LATEX_CMD_NAME         = latex
+MAKEINDEX_CMD_NAME     = makeindex
+COMPACT_LATEX          = NO
+PAPER_TYPE             = a4wide
+EXTRA_PACKAGES         = 
+LATEX_HEADER           = 
+PDF_HYPERLINKS         = NO
+USE_PDFLATEX           = NO
+LATEX_BATCHMODE        = NO
+LATEX_HIDE_INDICES     = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF           = NO
+RTF_OUTPUT             = rtf
+COMPACT_RTF            = NO
+RTF_HYPERLINKS         = NO
+RTF_STYLESHEET_FILE    = 
+RTF_EXTENSIONS_FILE    = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN           = NO
+MAN_OUTPUT             = man
+MAN_EXTENSION          = .3
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML           = NO
+XML_OUTPUT             = xml
+XML_SCHEMA             = 
+XML_DTD                = 
+XML_PROGRAMLISTING     = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD       = NO
+PERLMOD_LATEX          = NO
+PERLMOD_PRETTY         = YES
+PERLMOD_MAKEVAR_PREFIX = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING   = YES
+MACRO_EXPANSION        = YES
+EXPAND_ONLY_PREDEF     = NO
+SEARCH_INCLUDES        = YES
+INCLUDE_PATH           = 
+INCLUDE_FILE_PATTERNS  = 
+PREDEFINED             = 
+EXPAND_AS_DEFINED      = 
+SKIP_FUNCTION_MACROS   = NO
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references   
+#---------------------------------------------------------------------------
+TAGFILES               = 
+GENERATE_TAGFILE       = 
+ALLEXTERNALS           = NO
+EXTERNAL_GROUPS        = YES
+PERL_PATH              = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS         = YES
+HIDE_UNDOC_RELATIONS   = NO
+HAVE_DOT               = YES
+CLASS_GRAPH            = YES
+COLLABORATION_GRAPH    = NO
+UML_LOOK               = NO
+TEMPLATE_RELATIONS     = YES
+INCLUDE_GRAPH          = YES
+INCLUDED_BY_GRAPH      = NO
+CALL_GRAPH             = NO
+GRAPHICAL_HIERARCHY    = YES
+DOT_IMAGE_FORMAT       = jpg
+DOT_PATH               = 
+DOTFILE_DIRS           = 
+MAX_DOT_GRAPH_WIDTH    = 1024
+MAX_DOT_GRAPH_HEIGHT   = 1200
+MAX_DOT_GRAPH_DEPTH    = 0
+GENERATE_LEGEND        = NO
+DOT_CLEANUP            = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine   
+#---------------------------------------------------------------------------
+SEARCHENGINE           = NO
diff --git a/doc/salome/tui/MED/sources/footer.html b/doc/salome/tui/MED/sources/footer.html
new file mode 100755 (executable)
index 0000000..cb55f39
--- /dev/null
@@ -0,0 +1,5 @@
+</DIV>
+<DIV class="div-footer">
+Generated on $datetime for $projectname by&nbsp;<A href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></A> $doxygenversion</DIV>
+</BODY>
+</HTML>
index 83ca543cda7dcf8bc623fb52b00def9617fd1c8b..d2efb75faade344eacb10128d14a6d5bd3592193 100755 (executable)
@@ -5,20 +5,9 @@
    <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
    <title>Main Page</title>
 <link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
 </head>
 <body>
 &nbsp;
-<center><table WIDTH="96%" >
-<tr>
-<td><a href="http://www.opencascade.com"><img src="sources/logocorp.gif" BORDER=0 height=46 width=122></a></td>
-
-
-<td>
-<div align=right><a href="http://www.opencascade.org/SALOME/"><img src="sources/application.gif" BORDER=0 height=46 width=108></a></div>
-</td>
-</tr>
-</table></center>
-
-
 </body>
 </html>
index 0a8e93d50b5939b2f769931a2fba6c12458b2b86..88e613d2392388224ab7c6ba85e7aafb73185dac 100755 (executable)
-H1 { text-align: center; }
-CAPTION { font-weight: bold }
+H1 { 
+   text-align: center; 
+}
+
+CAPTION { 
+   font-weight: bold 
+}
+
+/* Link in the top navbar */
 A.qindex {}
+
 A.qindexRef {}
-A.el { text-decoration: none; font-weight: bold }
-A.elRef { font-weight: bold }
-A.code { text-decoration: none; font-weight: normal; color: #4444ee }
-A.codeRef { font-weight: normal; color: #4444ee }
-A:hover { text-decoration: none; background-color: lightblue }
-DL.el { margin-left: -1cm }
-DIV.fragment { width: 100%; border: none; background-color: #CCCCCC }
-DIV.ah { background-color: #CCCCCC; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
-TD.md { background-color: lightblue; font-weight: bold; }
-TD.mdname1 { background-color: lightblue; font-weight: bold; color: #602020; }
-TD.mdname { background-color: lightblue; font-weight: bold; color: #602020; width: 600px; }
-DIV.groupHeader { margin-left: 16px; margin-top: 12px; margin-bottom: 6px; font-weight: bold }
-DIV.groupText { margin-left: 16px; font-style: italic; font-size: smaller }
-BODY { background: url(sources/bg_salome.gif) }
+
+/* Link to any cross-referenced Doxygen element */
+A.el { 
+   text-decoration: none; 
+   font-weight: bold 
+}
+
+A.elRef { 
+   font-weight: bold 
+}
+
+/* Link to any cross-referenced Doxygen element inside a code section 
+   (ex: header)
+*/
+A.code { 
+   text-decoration: none; 
+   font-weight: normal; 
+   color: #4444ee 
+}
+
+A.codeRef { 
+   font-weight: normal; 
+   color: #4444ee 
+}
+
+A:hover { 
+   text-decoration: none; 
+   background-color: lightblue 
+}
+
+DL.el { 
+   margin-left: -1cm 
+}
+
+/* A code fragment (ex: header) */
+DIV.fragment { 
+   width: 100%; 
+   border: none; 
+   background-color: #CCCCCC 
+}
+
+/* In the alpha list (coumpound index), style of an alphabetical index letter */
+DIV.ah { 
+   background-color: #CCCCCC; 
+   font-weight: bold; 
+   color: #ffffff; 
+   margin-bottom: 3px; 
+   margin-top: 3px 
+}
+
+/* Method name (+ type) */
+TD.md { 
+   background-color: lightblue; 
+   font-weight: bold; 
+}
+
+/* Method parameter (some of them) */
+TD.mdname1 { 
+   background-color: lightblue; 
+   font-weight: bold; color: #602020; 
+}
+
+/* Method parameter (some of them) */
+TD.mdname { 
+   background-color: lightblue; 
+   font-weight: bold; 
+   color: #602020; 
+   width: 600px; 
+}
+
+/* Separator between methods group (usually empty, seems not supported by IE) */
+DIV.groupHeader { 
+   margin-left: 16px; 
+   margin-top: 12px; 
+   margin-bottom: 6px; 
+   font-weight: bold 
+}
+
+DIV.groupText { 
+   margin-left: 16px; 
+   font-style: italic; 
+   font-size: smaller 
+}
+
+BODY { 
+   background: #FFFFFF;
+}
+
+/*div.div-page { 
+  background-color: #FFFFFF; 
+  margin-left: 1em;
+  margin-right: 1em;
+  margin-top: 1em;
+  margin-bottom: 0.1em;
+
+  padding-left: 1em;
+  padding-right: 1em;
+  padding-top: 0.5em;
+  padding-bottom: 0.5em;
+
+  border: 2px solid #0D299A; 
+  border-width: 2px;
+  border-color: #0D299A; 
+}*/
+
+div.tabs { 
+  text-align: justify; 
+  margin-left    : 2px;         
+  margin-right   : 2px;  
+  margin-top     : 2px; 
+  margin-bottom  : 2px
+  font-weight: bold;
+  color: #FFFFFF;
+}
+
+DIV.div-footer { 
+  margin-left: 1em;
+  margin-right: 1em;
+  margin-bottom: 0.2em;
+  text-align: right;
+  font-size: 9pt; 
+}
+
+/* In File List, Coumpound List, etc, 1st column of the index */
 TD.indexkey { 
    background-color: #CCCCCC; 
    font-weight: bold; 
@@ -28,6 +146,8 @@ TD.indexkey {
    margin-top     : 2px; 
    margin-bottom  : 2px  
 }
+
+/* In File List, Coumpound List, etc, 2nd column of the index */
 TD.indexvalue { 
    background-color: #CCCCCC; 
    font-style: italic; 
@@ -40,6 +160,7 @@ TD.indexvalue {
    margin-top     : 2px; 
    margin-bottom  : 2px  
 }
+
 span.keyword       { color: #008000 }
 span.keywordtype   { color: #604020 }
 span.keywordflow   { color: #e08000 }
diff --git a/doc/salome/tui/MED/sources/static/tree.js b/doc/salome/tui/MED/sources/static/tree.js
deleted file mode 100755 (executable)
index 6ea5bb6..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-foldersTree = gFld("<b>SALOME v.3.2.0b1 </b>", "", "")
-     insDoc(foldersTree, gLnk("Main Page", "", "main.html"))
-
-aux1 = insFld(foldersTree, gFld("TUI Reference Guide", ""))
-  aux2 = insFld(aux1, gFld("Modules", ""))
-    aux3 = insFld(aux2, gFld("SALOME MED module", ""))
-/*!             insDoc(aux3, gLnk("Overview", "", "overview_Med.html"))*/
-      aux4 = insFld(aux3, gFld("Packages", ""))                
-               insDoc(aux4, gLnk("SALOME_MED", "", "namespaceSALOME__MED.html"))
-/*!             insDoc(aux3, gLnk("Examples", "", "examples_MED.html"))
-*/
-
-         insDoc(aux1, gLnk("Data Structures", "", "annotated.html"))
-         insDoc(aux1, gLnk("Class Hierarchy", "", "hierarchy.html"))
-         insDoc(aux1, gLnk("Class methods list", "", "functions.html"))
-         insDoc(aux1, gLnk("Namespace Members", "", "namespacemembers.html"))
-         insDoc(aux1, gLnk("File List", "", "files.html"))
-
-aux1 = insFld(foldersTree, gFld("IDL/Python mapping", ""))
-         insDoc(aux1, gLnk("Mapping of MED IDL definitions to Python language", "", "page2.html"))
diff --git a/doc/salome/tui/MED/sources/static/tree.js.in b/doc/salome/tui/MED/sources/static/tree.js.in
new file mode 100755 (executable)
index 0000000..b4ff341
--- /dev/null
@@ -0,0 +1,20 @@
+foldersTree = gFld("<b>SALOME v.@VERSION@ </b>", "", "")
+     insDoc(foldersTree, gLnk("Main Page", "", "main.html"))
+
+aux1 = insFld(foldersTree, gFld("TUI Reference Guide", ""))
+  aux2 = insFld(aux1, gFld("Modules", ""))
+    aux3 = insFld(aux2, gFld("SALOME MED module", ""))
+/*!             insDoc(aux3, gLnk("Overview", "", "overview_Med.html"))*/
+      aux4 = insFld(aux3, gFld("Packages", ""))                
+               insDoc(aux4, gLnk("SALOME_MED", "", "namespaceSALOME__MED.html"))
+/*!             insDoc(aux3, gLnk("Examples", "", "examples_MED.html"))
+*/
+
+         insDoc(aux1, gLnk("Data Structures", "", "annotated.html"))
+         insDoc(aux1, gLnk("Class Hierarchy", "", "hierarchy.html"))
+         insDoc(aux1, gLnk("Class methods list", "", "functions.html"))
+         insDoc(aux1, gLnk("Namespace Members", "", "namespacemembers.html"))
+         insDoc(aux1, gLnk("File List", "", "files.html"))
+
+aux1 = insFld(foldersTree, gFld("IDL/Python mapping", ""))
+         insDoc(aux1, gLnk("Mapping of MED IDL definitions to Python language", "", "page2.html"))
index 5434c551777382dc0901607a9d6f9b082f724eb1..8c85f6e65b4932e83fa356d07479ff7ace2635db 100644 (file)
@@ -1,6 +1,6 @@
 #  Copyright (C) 2003  CEA/DEN, EDF R&D
 #
-#
+#  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #  File   : Makefile.in
 #  Author : Vasily Rusyaev (Open Cascade NN)
@@ -16,8 +16,10 @@ doxygen=@DOXYGEN@
 
 @COMMENCE@
 
-docs:
+dev_docs:
        cp -fr $(srcdir)/MED ./INPUT; \
+       cp -fr ./MED/doxyfile ./INPUT; \
+       cp -fr ./MED/sources/static/tree.js ./INPUT/sources/static; \
        cd INPUT; \
        sed 's|../../../share/salome|$(root_srcdir)|' ./doxyfile > ./doxyfile1; \
        sed 's|../../build/salome|$(top_builddir)|' ./doxyfile1 > ./doxyfile2; \