Salome HOME
extract medtool doc from MED
[modules/med.git] / medtool / doc / user / doxygen / fakesources / MEDCouplingUMesh.C
1 // Copyright (C) 2013-2015  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
7 //
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 //
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19
20 // Copyright (C) 2013  CEA/DEN, EDF R&D, OPEN CASCADE
21 //
22 // This library is free software; you can redistribute it and/or
23 // modify it under the terms of the GNU Lesser General Public
24 // License as published by the Free Software Foundation; either
25 // version 2.1 of the License.
26 //
27 // This library is distributed in the hope that it will be useful,
28 // but WITHOUT ANY WARRANTY; without even the implied warranty of
29 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
30 // Lesser General Public License for more details.
31 //
32 // You should have received a copy of the GNU Lesser General Public
33 // License along with this library; if not, write to the Free Software
34 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
35 //
36 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
37 //
38
39 // This file contains some code used only for
40 // * generation of documentation for inline methods of MEDCouplingUMesh class,
41 // * groupping methods into "Basic API", "Advanced" and "Others..." sections
42
43 namespace ParaMEDMEM
44 {
45   /*!
46    * Returns the nodal connectivity array. For more info on how data in stored in
47    * this array, see \ref MEDCouplingUMeshAdvBuild.
48    *  \return const DataArrayInt * - a pointer to the nodal connectivity array
49    *          referred by \a this mesh.
50    */
51   const DataArrayInt * MEDCouplingUMesh::getNodalConnectivity() const {}
52   /*!
53    * Returns the nodal connectivity index array. For more info on how data in stored in
54    * this array, see \ref MEDCouplingUMeshAdvBuild.
55    *  \return const DataArrayInt * - a pointer to the nodal connectivity index array
56    *          referred by \a this mesh.
57    */
58   const DataArrayInt * MEDCouplingUMesh::getNodalConnectivityIndex() const {}
59   /*!
60    * Returns the nodal connectivity array. For more info on how data in stored in
61    * this array, see \ref MEDCouplingUMeshAdvBuild.
62    *  \return const DataArrayInt * - a pointer to the nodal connectivity array
63    *          referred by \a this mesh.
64    */
65   DataArrayInt * MEDCouplingUMesh::getNodalConnectivity() {}
66   /*!
67    * Returns the nodal connectivity index array. For more info on how data in stored in
68    * this array, see \ref MEDCouplingUMeshAdvBuild.
69    *  \return const DataArrayInt * - a pointer to the nodal connectivity index array
70    *          referred by \a this mesh.
71    */
72   DataArrayInt * MEDCouplingUMesh::getNodalConnectivityIndex() {}
73 }
74
75 namespace ParaMEDMEM
76 {
77 //================================================================================
78 /////////////////////// MEDCouplingUMesh GROUPPING ///////////////////////////////
79 //================================================================================
80
81 /*! \name Basic API   */
82 ///@{
83 MEDCouplingUMesh::FuseUMeshesOnSameCoords(const std::vector<const MEDCouplingUMesh *>& meshes, int compType, std::vector<DataArrayInt *>& corr);
84 MEDCouplingUMesh::Intersect2DMeshes(const MEDCouplingUMesh *m1, const MEDCouplingUMesh *m2, double eps, DataArrayInt *&cellNb1, DataArrayInt *&cellNb2);
85 MEDCouplingUMesh::MergeNodesOnUMeshesSharingSameCoords(const std::vector<MEDCouplingUMesh *>& meshes, double eps);
86 MEDCouplingUMesh::MergeUMeshes(const MEDCouplingUMesh *mesh1, const MEDCouplingUMesh *mesh2);
87 MEDCouplingUMesh::MergeUMeshes(std::vector<const MEDCouplingUMesh *>& a);
88 MEDCouplingUMesh::MergeUMeshesOnSameCoords(const MEDCouplingUMesh *mesh1, const MEDCouplingUMesh *mesh2);
89 MEDCouplingUMesh::MergeUMeshesOnSameCoords(const std::vector<const MEDCouplingUMesh *>& meshes);
90 MEDCouplingUMesh::PutUMeshesOnSameAggregatedCoords(const std::vector<MEDCouplingUMesh *>& meshes);
91 MEDCouplingUMesh::allocateCells(int nbOfCells);
92 MEDCouplingUMesh::are2DCellsNotCorrectlyOriented(const double *vec, bool polyOnly, std::vector<int>& cells) const;
93 MEDCouplingUMesh::areCellsIncludedIn(const MEDCouplingUMesh *other, int compType, DataArrayInt *& arr) const;
94 MEDCouplingUMesh::arePolyhedronsNotCorrectlyOriented(std::vector<int>& cells) const;
95 MEDCouplingUMesh::buildBoundaryMesh(bool keepCoords) const;
96 MEDCouplingUMesh::buildDescendingConnectivity(DataArrayInt *desc, DataArrayInt *descIndx, DataArrayInt *revDesc, DataArrayInt *revDescIndx) const;
97 MEDCouplingUMesh::buildDescendingConnectivity2(DataArrayInt *desc, DataArrayInt *descIndx, DataArrayInt *revDesc, DataArrayInt *revDescIndx) const;
98 MEDCouplingUMesh::buildDirectionVectorField() const;
99 MEDCouplingUMesh::buildFacePartOfMySelfNode(const int *begin, const int *end, bool fullyIn) const;
100 MEDCouplingUMesh::buildOrthogonalField() const;
101 MEDCouplingUMesh::buildPartOfMySelf(const int *begin, const int *end, bool keepCoords=true) const;
102 MEDCouplingUMesh::buildPartOfMySelfNode(const int *begin, const int *end, bool fullyIn) const;
103 MEDCouplingUMesh::buildPartOrthogonalField(const int *begin, const int *end) const;
104 MEDCouplingUMesh::buildSlice3D(const double *origin, const double *vec, double eps, DataArrayInt *&cellIds) const;
105 MEDCouplingUMesh::buildSlice3DSurf(const double *origin, const double *vec, double eps, DataArrayInt *&cellIds) const;
106 MEDCouplingUMesh::checkCoherency() const;
107 MEDCouplingUMesh::checkCoherency1(double eps=1e-12) const;
108 MEDCouplingUMesh::checkCoherency2(double eps=1e-12) const;
109 MEDCouplingUMesh::checkDeepEquivalOnSameNodesWith(const MEDCouplingMesh *other, int cellCompPol, double prec,DataArrayInt *&cellCor) const;
110 MEDCouplingUMesh::checkDeepEquivalWith(const MEDCouplingMesh *other, int cellCompPol, double prec,DataArrayInt *&cellCor, DataArrayInt *&nodeCor) const;
111 MEDCouplingUMesh::checkFastEquivalWith(const MEDCouplingMesh *other, double prec) const;
112 MEDCouplingUMesh::clone(bool recDeepCpy) const;
113 MEDCouplingUMesh::computeIsoBarycenterOfNodesPerCell() const;
114 MEDCouplingUMesh::convertAllToPoly();
115 MEDCouplingUMesh::convertQuadraticCellsToLinear();
116 MEDCouplingUMesh::convertToPolyTypes(const int *cellIdsToConvertBg, const int *cellIdsToConvertEnd);
117 MEDCouplingUMesh::deepCpy() const;
118 MEDCouplingUMesh::findAndCorrectBadOriented3DExtrudedCells();
119 MEDCouplingUMesh::findBoundaryNodes() const;
120 MEDCouplingUMesh::finishInsertingCells();
121 MEDCouplingUMesh::getAllGeoTypes() const;
122 MEDCouplingUMesh::getAspectRatioField() const;
123 MEDCouplingUMesh::getBarycenterAndOwner() const;
124 MEDCouplingUMesh::getCellContainingPoint(const double *pos, double eps) const;
125 MEDCouplingUMesh::getCellIdsCrossingPlane(const double *origin, const double *vec, double eps) const;
126 MEDCouplingUMesh::getCellIdsFullyIncludedInNodeIds(const int *partBg, const int *partEnd) const;
127 MEDCouplingUMesh::getCellIdsLyingOnNodes(const int *begin, const int *end, bool fullyIn) const;
128 MEDCouplingUMesh::getCellsContainingPoint(const double *pos, double eps, std::vector<int>& elts) const;
129 MEDCouplingUMesh::getCellsContainingPoints(const double *pos, int nbOfPoints, double eps, std::vector<int>& elts, std::vector<int>& eltsIndex) const;
130 MEDCouplingUMesh::getCellsInBoundingBox(const INTERP_KERNEL::DirectedBoundingBox& bbox, double eps);
131 MEDCouplingUMesh::getCellsInBoundingBox(const double *bbox, double eps) const;
132 MEDCouplingUMesh::getEdgeRatioField() const;
133 MEDCouplingUMesh::getMeasureField(bool isAbs) const;
134 MEDCouplingUMesh::getMeasureFieldOnNode(bool isAbs) const;
135 MEDCouplingUMesh::getMeshDimension() const;
136 MEDCouplingUMesh::getNodalConnectivity() const;
137 MEDCouplingUMesh::getNodalConnectivity();
138 MEDCouplingUMesh::getNodalConnectivityIndex() const;
139 MEDCouplingUMesh::getNodalConnectivityIndex();
140 MEDCouplingUMesh::getNodeIdsInUse(int& nbrOfNodesInUse) const;
141 MEDCouplingUMesh::getNodeIdsOfCell(int cellId, std::vector<int>& conn) const;
142 MEDCouplingUMesh::getNumberOfCells() const;
143 MEDCouplingUMesh::getPartBarycenterAndOwner(const int *begin, const int *end) const;
144 MEDCouplingUMesh::getPartMeasureField(bool isAbs, const int *begin, const int *end) const;
145 MEDCouplingUMesh::getReverseNodalConnectivity(DataArrayInt *revNodal, DataArrayInt *revNodalIndx) const;
146 MEDCouplingUMesh::getSkewField() const;
147 MEDCouplingUMesh::getTypeOfCell(int cellId) const;
148 MEDCouplingUMesh::getTypesOfPart(const int *begin, const int *end) const;
149 MEDCouplingUMesh::getWarpField() const;
150 MEDCouplingUMesh::insertNextCell(INTERP_KERNEL::NormalizedCellType type, int size, const int *nodalConnOfCell);
151 MEDCouplingUMesh::isEqualWithoutConsideringStr(const MEDCouplingMesh *other, double prec) const;
152 MEDCouplingUMesh::mergeNodes(double precision, bool& areNodesMerged, int& newNbOfNodes);
153 MEDCouplingUMesh::mergeNodes2(double precision, bool& areNodesMerged, int& newNbOfNodes);
154 MEDCouplingUMesh::orientCorrectly2DCells(const double *vec, bool polyOnly);
155 MEDCouplingUMesh::orientCorrectlyPolyhedrons();
156 MEDCouplingUMesh::renumberNodes(const int *newNodeNumbers, int newNbOfNodes);
157 MEDCouplingUMesh::renumberNodes2(const int *newNodeNumbers, int newNbOfNodes);
158 MEDCouplingUMesh::renumberNodesInConn(const int *newNodeNumbersO2N);
159 MEDCouplingUMesh::reprQuickOverview(std::ostream& stream) const;
160 MEDCouplingUMesh::setConnectivity(DataArrayInt *conn, DataArrayInt *connIndex, bool isComputingTypes=true);
161 MEDCouplingUMesh::setMeshDimension(int meshDim);
162 MEDCouplingUMesh::sortCellsInMEDFileFrmt();
163 MEDCouplingUMesh::tryToShareSameCoordsPermute(const MEDCouplingPointSet& other, double epsilon);
164 MEDCouplingUMesh::unPolyze();
165 MEDCouplingUMesh::zipConnectivityTraducer(int compType, int startCellId=0);
166 MEDCouplingUMesh::zipCoordsTraducer();
167   ///@} 
168
169   /*! \name Advanced API  */
170 ///@{
171 MEDCouplingUMesh::areOnlySimplexCells() const;
172 MEDCouplingUMesh::checkButterflyCells(std::vector<int>& cells, double eps=1e-12) const;
173 MEDCouplingUMesh::computeTypes();
174 MEDCouplingUMesh::convertDegeneratedCells();
175 MEDCouplingUMesh::convertExtrudedPolyhedra();
176 MEDCouplingUMesh::getMeshLength() const;
177 MEDCouplingUMesh::isFullyQuadratic() const;
178 MEDCouplingUMesh::isPresenceOfQuadratic() const;
179 MEDCouplingUMesh::simplexize(int policy);
180 MEDCouplingUMesh::tessellate2D(double eps);
181 MEDCouplingUMesh::tessellate2DCurve(double eps);
182   ///@
183
184 /*! \name Others... */
185 ///@{
186 MEDCouplingUMesh::AggregateSortedByTypeMeshesOnSameCoords(const std::vector<const MEDCouplingUMesh *>& ms,DataArrayInt *&szOfCellGrpOfSameType,DataArrayInt *&idInMsOfCellGrpOfSameType);
187 MEDCouplingUMesh::AppendExtrudedCell(const int *connBg, const int *connEnd, int nbOfNodesPerLev, bool isQuad, std::vector<int>& ret);
188 MEDCouplingUMesh::AreCellsEqual(const int *conn, const int *connI, int cell1, int cell2, int compType);
189 MEDCouplingUMesh::AreCellsEqual0(const int *conn, const int *connI, int cell1, int cell2);
190 MEDCouplingUMesh::AreCellsEqual1(const int *conn, const int *connI, int cell1, int cell2);
191 MEDCouplingUMesh::AreCellsEqual2(const int *conn, const int *connI, int cell1, int cell2);
192 MEDCouplingUMesh::AreCellsEqual3(const int *conn, const int *connI, int cell1, int cell2);
193 MEDCouplingUMesh::AreCellsEqual7(const int *conn, const int *connI, int cell1, int cell2);
194 MEDCouplingUMesh::AreCellsEqualInPool(const std::vector<int>& candidates, int compType, const int *conn, const int *connI, DataArrayInt *result) ;
195 MEDCouplingUMesh::AssemblyForSplitFrom3DCurve(const std::vector<int>& cut3DCurve, std::vector<int>& nodesOnPlane, const int *nodal3DSurf, const int *nodalIndx3DSurf,const int *nodal3DCurve, const int *nodalIndx3DCurve,const int *desc, const int *descIndx, std::vector< std::pair<int,int> >& cut3DSurf);
196 MEDCouplingUMesh::Build0DMeshFromCoords(DataArrayDouble *da);
197 MEDCouplingUMesh::BuildConvexEnvelopOf2DCellJarvis(const double *coords, const int *nodalConnBg, const int *nodalConnEnd, DataArrayInt *nodalConnecOut);
198 MEDCouplingUMesh::BuildIntersectEdges(const MEDCouplingUMesh *m1, const MEDCouplingUMesh *m2, const std::vector<double>& addCoo, const std::vector< std::vector<int> >& subDiv, std::vector< std::vector<int> >& intersectEdge);
199 MEDCouplingUMesh::BuildIntersecting2DCellsFromEdges(double eps, const MEDCouplingUMesh *m1, const int *desc1, const int *descIndx1, const std::vector<std::vector<int> >& intesctEdges1, const std::vector< std::vector<int> >& colinear2,const MEDCouplingUMesh *m2, const int *desc2, const int *descIndx2, const std::vector<std::vector<int> >& intesctEdges2,const std::vector<double>& addCoords,std::vector<double>& addCoordsQuadratic, std::vector<int>& cr, std::vector<int>& crI, std::vector<int>& cNb1, std::vector<int>& cNb2);
200 MEDCouplingUMesh::ComputeNeighborsOfCellsAdv(const DataArrayInt *desc, const DataArrayInt *descI, const DataArrayInt *revDesc, const DataArrayInt *revDescI,DataArrayInt *&neighbors, DataArrayInt *&neighborsIdx);
201 MEDCouplingUMesh::ComputeRangesFromTypeDistribution(const std::vector<int>& code);
202 MEDCouplingUMesh::ComputeSpreadZoneGradually(const DataArrayInt *arrIn, const DataArrayInt *arrIndxIn);
203 MEDCouplingUMesh::ComputeSpreadZoneGraduallyFromSeed(const int *seedBg, const int *seedEnd, const DataArrayInt *arrIn, const DataArrayInt *arrIndxIn, int nbOfDepthPeeling, int& nbOfDepthPeelingPerformed);
204 MEDCouplingUMesh::ComputeSpreadZoneGraduallyFromSeedAlg(std::vector<bool>& fetched, const int *seedBg, const int *seedEnd, const DataArrayInt *arrIn, const DataArrayInt *arrIndxIn, int nbOfDepthPeeling, int& nbOfDepthPeelingPerformed);
205 MEDCouplingUMesh::ComputeVecAndPtOfFace(double eps, const double *coords, const int *begin, const int *end, double *v, double *p);
206 MEDCouplingUMesh::CorrectExtrudedCell(int *begin, int *end);
207 MEDCouplingUMesh::CorrectExtrudedStaticCell(int *begin, int *end);
208 MEDCouplingUMesh::ExtractFromIndexedArrays(const int *idsOfSelectBg, const int *idsOfSelectEnd, const DataArrayInt *arrIn, const DataArrayInt *arrIndxIn,DataArrayInt* &arrOut, DataArrayInt* &arrIndexOut);
209 MEDCouplingUMesh::FillInCompact3DMode(int spaceDim, int nbOfNodesInCell, const int *conn, const double *coo, double *zipFrmt);
210 MEDCouplingUMesh::FindCommonCellsAlg(int compType, int startCellId, const DataArrayInt *nodal, const DataArrayInt *nodalI, const DataArrayInt *revNodal, const DataArrayInt *revNodalI,DataArrayInt *& commonCellsArr, DataArrayInt *& commonCellsIArr);
211 MEDCouplingUMesh::IntersectDescending2DMeshes(const MEDCouplingUMesh *m1, const MEDCouplingUMesh *m2, double eps,std::vector< std::vector<int> >& intersectEdge1, std::vector< std::vector<int> >& colinear2, std::vector< std::vector<int> >& subDiv2,MEDCouplingUMesh *& m1Desc, DataArrayInt *&desc1, DataArrayInt *&descIndx1, DataArrayInt *&revDesc1, DataArrayInt *&revDescIndx1,MEDCouplingUMesh *& m2Desc, DataArrayInt *&desc2, DataArrayInt *&descIndx2, DataArrayInt *&revDesc2, DataArrayInt *&revDescIndx2,std::vector<double>& addCoo);
212 MEDCouplingUMesh::Is3DExtrudedCellWellOriented(const int *begin, const int *end, const double *coords);
213 MEDCouplingUMesh::Is3DExtrudedStaticCellWellOriented(const int *begin, const int *end, const double *coords);
214 MEDCouplingUMesh::IsPolygonWellOriented(bool isQuadratic, const double *vec, const int *begin, const int *end, const double *coords);
215 MEDCouplingUMesh::IsPolyhedronWellOriented(const int *begin, const int *end, const double *coords);
216 MEDCouplingUMesh::IsPyra5WellOriented(const int *begin, const int *end, const double *coords);
217 MEDCouplingUMesh::IsTetra4WellOriented(const int *begin, const int *end, const double *coords);
218 MEDCouplingUMesh::MEDCouplingUMesh();
219 MEDCouplingUMesh::MEDCouplingUMesh(const MEDCouplingUMesh& other, bool deepCopy);
220 MEDCouplingUMesh::MergeUMeshesLL(std::vector<const MEDCouplingUMesh *>& a);
221 MEDCouplingUMesh::New();
222 MEDCouplingUMesh::New(const char *meshName, int meshDim);
223 MEDCouplingUMesh::RemoveIdsFromIndexedArrays(const int *idsToRemoveBg, const int *idsToRemoveEnd, DataArrayInt *arr, DataArrayInt *arrIndx, int offsetForRemoval=0);
224 MEDCouplingUMesh::SetPartOfIndexedArrays(const int *idsOfSelectBg, const int *idsOfSelectEnd, const DataArrayInt *arrIn, const DataArrayInt *arrIndxIn,const DataArrayInt *srcArr, const DataArrayInt *srcArrIndex,DataArrayInt* &arrOut, DataArrayInt* &arrIndexOut);
225 MEDCouplingUMesh::SetPartOfIndexedArrays2(int start, int end, int step, const DataArrayInt *arrIn, const DataArrayInt *arrIndxIn,const DataArrayInt *srcArr, const DataArrayInt *srcArrIndex,DataArrayInt* &arrOut, DataArrayInt* &arrIndexOut);
226 MEDCouplingUMesh::SetPartOfIndexedArraysSameIdx(const int *idsOfSelectBg, const int *idsOfSelectEnd, DataArrayInt *arrInOut, const DataArrayInt *arrIndxIn,const DataArrayInt *srcArr, const DataArrayInt *srcArrIndex);
227 MEDCouplingUMesh::SetPartOfIndexedArraysSameIdx2(int start, int end, int step, DataArrayInt *arrInOut, const DataArrayInt *arrIndxIn,const DataArrayInt *srcArr, const DataArrayInt *srcArrIndex);
228 MEDCouplingUMesh::SimplifyPolyhedronCell(double eps, const DataArrayDouble *coords, const int *begin, const int *end, DataArrayInt *res);
229 MEDCouplingUMesh::TryToCorrectPolyhedronOrientation(int *begin, int *end, const double *coords);
230 MEDCouplingUMesh::advancedRepr() const;
231 MEDCouplingUMesh::areCellsFrom2MeshEqual(const MEDCouplingUMesh *other, int cellId, double prec) const;
232 MEDCouplingUMesh::areCellsIncludedIn2(const MEDCouplingUMesh *other, DataArrayInt *& arr) const;
233 MEDCouplingUMesh::assemblyForSplitFrom3DSurf(const std::vector< std::pair<int,int> >& cut3DSurf,const int *desc, const int *descIndx, DataArrayInt *nodalRes, DataArrayInt *nodalResIndx, DataArrayInt *cellIds) const;
234 MEDCouplingUMesh::buildExtrudedMesh(const MEDCouplingUMesh *mesh1D, int policy);
235 MEDCouplingUMesh::buildExtrudedMeshFromThisLowLev(int nbOfNodesOf1Lev, bool isQuad) const;
236 MEDCouplingUMesh::buildPartOfMySelf2(int start, int end, int step, bool keepCoords=true) const;
237 MEDCouplingUMesh::buildPartOfMySelfKeepCoords(const int *begin, const int *end) const;
238 MEDCouplingUMesh::buildPartOfMySelfKeepCoords2(int start, int end, int step) const;
239 MEDCouplingUMesh::buildSetInstanceFromThis(int spaceDim) const;
240 MEDCouplingUMesh::buildSpreadZonesWithPoly() const;
241 MEDCouplingUMesh::buildUnionOf2DMesh() const;
242 MEDCouplingUMesh::buildUnionOf3DMesh() const;
243 MEDCouplingUMesh::buildUnstructured() const;
244 MEDCouplingUMesh::cellIterator();
245 MEDCouplingUMesh::cellsByType();
246 MEDCouplingUMesh::checkConnectivityFullyDefined() const;
247 MEDCouplingUMesh::checkConsecutiveCellTypes() const;
248 MEDCouplingUMesh::checkConsecutiveCellTypesAndOrder(const INTERP_KERNEL::NormalizedCellType *orderBg, const INTERP_KERNEL::NormalizedCellType *orderEnd) const;
249 MEDCouplingUMesh::checkConsecutiveCellTypesForMEDFileFrmt() const;
250 MEDCouplingUMesh::checkFullyDefined() const;
251 MEDCouplingUMesh::checkTypeConsistencyAndContig(const std::vector<int>& code, const std::vector<const DataArrayInt *>& idsPerType) const;
252 MEDCouplingUMesh::computeFetchedNodeIds() const;
253 MEDCouplingUMesh::computeNbOfNodesPerCell() const;
254 MEDCouplingUMesh::computeNeighborsOfCells(DataArrayInt *&neighbors, DataArrayInt *&neighborsIdx) const;
255 MEDCouplingUMesh::computeNodeIdsAlg(std::vector<bool>& nodeIdsInUse) const;
256 MEDCouplingUMesh::computeSkin() const;
257 MEDCouplingUMesh::convertCellArrayPerGeoType(const DataArrayInt *da) const;
258 MEDCouplingUMesh::convertLinearCellsToQuadratic(int conversionType=0);
259 MEDCouplingUMesh::convertLinearCellsToQuadratic1D0(DataArrayInt *&conn, DataArrayInt *&connI, DataArrayDouble *& coords, std::set<INTERP_KERNEL::NormalizedCellType>& types) const;
260 MEDCouplingUMesh::convertLinearCellsToQuadratic2D0(DataArrayInt *&conn, DataArrayInt *&connI, DataArrayDouble *& coords, std::set<INTERP_KERNEL::NormalizedCellType>& types) const;
261 MEDCouplingUMesh::convertLinearCellsToQuadratic2D1(DataArrayInt *&conn, DataArrayInt *&connI, DataArrayDouble *& coords, std::set<INTERP_KERNEL::NormalizedCellType>& types) const;
262 MEDCouplingUMesh::convertLinearCellsToQuadratic2DAnd3D0(const MEDCouplingUMesh *m1D, const DataArrayInt *desc, const DataArrayInt *descI, DataArrayInt *&conn, DataArrayInt *&connI, DataArrayDouble *& coords, std::set<INTERP_KERNEL::NormalizedCellType>& types) const;
263 MEDCouplingUMesh::convertLinearCellsToQuadratic3D0(DataArrayInt *&conn, DataArrayInt *&connI, DataArrayDouble *& coords, std::set<INTERP_KERNEL::NormalizedCellType>& types) const;
264 MEDCouplingUMesh::convertLinearCellsToQuadratic3D1(DataArrayInt *&conn, DataArrayInt *&connI, DataArrayDouble *& coords, std::set<INTERP_KERNEL::NormalizedCellType>& types) const;
265 MEDCouplingUMesh::convexEnvelop2D();
266 MEDCouplingUMesh::cppRepr() const;
267 MEDCouplingUMesh::distanceToPoint(const double *ptBg, const double *ptEnd, int& cellId, int& nodeId) const;
268 MEDCouplingUMesh::distanceToPoint2DCurveAlg(const double *pt, const DataArrayInt *cellIds, double& ret0, int& cellId) const;
269 MEDCouplingUMesh::distanceToPoint3DSurfAlg(const double *pt, const DataArrayInt *cellIds, double& ret0, int& cellId) const;
270 MEDCouplingUMesh::duplicateNodes(const int *nodeIdsToDuplicateBg, const int *nodeIdsToDuplicateEnd);
271 MEDCouplingUMesh::duplicateNodesInConn(const int *nodeIdsToDuplicateBg, const int *nodeIdsToDuplicateEnd, int offset);
272 MEDCouplingUMesh::emulateMEDMEMBDC(const MEDCouplingUMesh *nM1LevMesh, DataArrayInt *desc, DataArrayInt *descIndx, DataArrayInt *&revDesc, DataArrayInt *&revDescIndx, DataArrayInt *& nM1LevMeshIds, DataArrayInt *&meshnM1Old2New) const;
273 MEDCouplingUMesh::explode3DMeshTo1D(DataArrayInt *desc, DataArrayInt *descIndx, DataArrayInt *revDesc, DataArrayInt *revDescIndx) const;
274 MEDCouplingUMesh::fillCellIdsToKeepFromNodeIds(const int *begin, const int *end, bool fullyIn, DataArrayInt *&cellIdsKeptArr) const;
275 MEDCouplingUMesh::fillExtCoordsUsingTranslAndAutoRotation(const MEDCouplingUMesh *mesh1D, bool isQuad) const;
276 MEDCouplingUMesh::fillExtCoordsUsingTranslAndAutoRotation2D(const MEDCouplingUMesh *mesh1D, bool isQuad) const;
277 MEDCouplingUMesh::fillExtCoordsUsingTranslAndAutoRotation3D(const MEDCouplingUMesh *mesh1D, bool isQuad) const;
278 MEDCouplingUMesh::fillExtCoordsUsingTranslation(const MEDCouplingUMesh *mesh1D, bool isQuad) const;
279 MEDCouplingUMesh::findAndCorrectBadOriented3DCells();
280 MEDCouplingUMesh::findCellIdsLyingOn(const MEDCouplingUMesh& otherDimM1OnSameCoords, DataArrayInt *&cellIdsRk0, DataArrayInt *&cellIdsRk1) const;
281 MEDCouplingUMesh::findCellIdsOnBoundary() const;
282 MEDCouplingUMesh::findCommonCells(int compType, int startCellId, DataArrayInt *& commonCellsArr, DataArrayInt *& commonCellsIArr) const;
283 MEDCouplingUMesh::findNodesToDuplicate(const MEDCouplingUMesh& otherDimM1OnSameCoords, DataArrayInt *& nodeIdsToDuplicate,DataArrayInt *& cellIdsNeededToBeRenum, DataArrayInt *& cellIdsNotModified) const;
284 MEDCouplingUMesh::getAllTypes() const;
285 MEDCouplingUMesh::getBoundingBoxForBBTree(std::vector<double>& bbox) const;
286 MEDCouplingUMesh::getDistributionOfTypes() const;
287 MEDCouplingUMesh::getFastAveragePlaneOfThis(double *vec, double *pos) const;
288 MEDCouplingUMesh::getHeapMemorySize() const;
289 MEDCouplingUMesh::getLevArrPerCellTypes(const INTERP_KERNEL::NormalizedCellType *orderBg, const INTERP_KERNEL::NormalizedCellType *orderEnd, DataArrayInt *&nbPerType) const;
290 MEDCouplingUMesh::getNumberOfCellsWithType(INTERP_KERNEL::NormalizedCellType type) const;
291 MEDCouplingUMesh::getNumberOfNodesInCell(int cellId) const;
292 MEDCouplingUMesh::getQuadraticStatus() const;
293 MEDCouplingUMesh::getRenumArrForConsecutiveCellTypesSpec(const INTERP_KERNEL::NormalizedCellType *orderBg, const INTERP_KERNEL::NormalizedCellType *orderEnd) const;
294 MEDCouplingUMesh::getTinySerializationInformation(std::vector<double>& tinyInfoD, std::vector<int>& tinyInfo, std::vector<std::string>& littleStrings) const;
295 MEDCouplingUMesh::getType() const { return UNSTRUCTURED; }
296 MEDCouplingUMesh::getVTKDataSetType() const;
297 MEDCouplingUMesh::giveCellsWithType(INTERP_KERNEL::NormalizedCellType type) const;
298 MEDCouplingUMesh::isContiguous1D() const;
299 MEDCouplingUMesh::isEmptyMesh(const std::vector<int>& tinyInfo) const;
300 MEDCouplingUMesh::isEqualIfNotWhy(const MEDCouplingMesh *other, double prec, std::string& reason) const;
301 MEDCouplingUMesh::keepCellIdsByType(INTERP_KERNEL::NormalizedCellType type, const int *begin, const int *end) const;
302 MEDCouplingUMesh::keepSpecifiedCells(INTERP_KERNEL::NormalizedCellType type, const int *idsPerGeoTypeBg, const int *idsPerGeoTypeEnd) const;
303 MEDCouplingUMesh::mergeMyselfWith(const MEDCouplingMesh *other) const;
304 MEDCouplingUMesh::partitionBySpreadZone() const;
305 MEDCouplingUMesh::project1D(const double *pt, const double *v, double eps, double *res) const;
306 MEDCouplingUMesh::rearrange2ConsecutiveCellTypes();
307 MEDCouplingUMesh::renumberCells(const int *old2NewBg, bool check=true);
308 MEDCouplingUMesh::reprConnectivityOfThis() const;
309 MEDCouplingUMesh::reprConnectivityOfThisLL(std::ostringstream& stream) const;
310 MEDCouplingUMesh::resizeForUnserialization(const std::vector<int>& tinyInfo, DataArrayInt *a1, DataArrayDouble *a2, std::vector<std::string>& littleStrings) const;
311 MEDCouplingUMesh::serialize(DataArrayInt *&a1, DataArrayDouble *&a2) const;
312 MEDCouplingUMesh::setPartOfMySelf(const int *cellIdsBg, const int *cellIdsEnd, const MEDCouplingUMesh& otherOnSameCoordsThanThis);
313 MEDCouplingUMesh::setPartOfMySelf2(int start, int end, int step, const MEDCouplingUMesh& otherOnSameCoordsThanThis);
314 MEDCouplingUMesh::shiftNodeNumbersInConn(int delta);
315 MEDCouplingUMesh::simpleRepr() const;
316 MEDCouplingUMesh::simplexizePlanarFace5();
317 MEDCouplingUMesh::simplexizePlanarFace6();
318 MEDCouplingUMesh::simplexizePol0();
319 MEDCouplingUMesh::simplexizePol1();
320 MEDCouplingUMesh::simplifyPolyhedra(double eps);
321 MEDCouplingUMesh::split3DCurveWithPlane(const double *origin, const double *vec, double eps, std::vector<int>& cut3DCurve);
322 MEDCouplingUMesh::splitByType() const;
323 MEDCouplingUMesh::splitProfilePerType(const DataArrayInt *profile, std::vector<int>& code, std::vector<DataArrayInt *>& idsInPflPerType, std::vector<DataArrayInt *>& idsPerType) const;
324 MEDCouplingUMesh::subDivide2DMesh(const int *nodeSubdived, const int *nodeIndxSubdived, const int *desc, const int *descIndex);
325 MEDCouplingUMesh::unserialization(const std::vector<double>& tinyInfoD, const std::vector<int>& tinyInfo, const DataArrayInt *a1, DataArrayDouble *a2, const std::vector<std::string>& littleStrings);
326 MEDCouplingUMesh::updateTime() const;
327 MEDCouplingUMesh::writeVTKLL(std::ostream& ofs, const std::string& cellData, const std::string& pointData) const;
328 MEDCouplingUMesh::~MEDCouplingUMesh();
329 template<class SonsGenerator> MEDCouplingUMesh * MEDCouplingUMesh::buildDescendingConnectivityGen(DataArrayInt *desc, DataArrayInt *descIndx, DataArrayInt *revDesc, DataArrayInt *revDescIndx, DimM1DescNbrer nbrer) const;
330 template<int SPACEDIM> void MEDCouplingUMesh::getCellsContainingPointsAlg
331 (const double *coords, const double *pos, int nbOfPoints,double eps, std::vector<int>& elts,
332  std::vector<int>& eltsIndex) const;
333
334 const INTERP_KERNEL::NormalizedCellType MEDCouplingUMesh::MEDMEM_ORDER[N_MEDMEM_ORDER];
335 const int MEDCouplingUMesh::N_MEDMEM_ORDER=24;
336 double MEDCouplingUMesh::EPS_FOR_POLYH_ORIENTATION;
337 int MEDCouplingUMesh::_mesh_dim;
338 std::set<INTERP_KERNEL::NormalizedCellType> MEDCouplingUMesh::_types;
339 DataArrayInt * MEDCouplingUMesh::_nodal_connec;
340 DataArrayInt * MEDCouplingUMesh::_nodal_connec_index;
341   ///@} 
342 }
343