Salome HOME
6917da030cd8de82508a55ed75e481240083d515
[tools/medcoupling.git] / 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::checkDeepEquivalOnSameNodesWith(const MEDCouplingMesh *other, int cellCompPol, double prec,DataArrayInt *&cellCor) const;
109 //MEDCouplingUMesh::checkDeepEquivalWith(const MEDCouplingMesh *other, int cellCompPol, double prec,DataArrayInt *&cellCor, DataArrayInt *&nodeCor) const;
110 MEDCouplingUMesh::checkFastEquivalWith(const MEDCouplingMesh *other, double prec) const;
111 MEDCouplingUMesh::clone(bool recDeepCpy) const;
112 MEDCouplingUMesh::computeIsoBarycenterOfNodesPerCell() const;
113 MEDCouplingUMesh::convertAllToPoly();
114 MEDCouplingUMesh::convertQuadraticCellsToLinear();
115 MEDCouplingUMesh::convertToPolyTypes(const int *cellIdsToConvertBg, const int *cellIdsToConvertEnd);
116 MEDCouplingUMesh::deepCpy() const;
117 MEDCouplingUMesh::findAndCorrectBadOriented3DExtrudedCells();
118 MEDCouplingUMesh::findBoundaryNodes() const;
119 MEDCouplingUMesh::finishInsertingCells();
120 MEDCouplingUMesh::getAllGeoTypes() const;
121 MEDCouplingUMesh::getAspectRatioField() const;
122 MEDCouplingUMesh::getBarycenterAndOwner() const;
123 MEDCouplingUMesh::getCellContainingPoint(const double *pos, double eps) const;
124 MEDCouplingUMesh::getCellIdsCrossingPlane(const double *origin, const double *vec, double eps) const;
125 //MEDCouplingUMesh::getCellIdsFullyIncludedInNodeIds(const int *partBg, const int *partEnd) const;
126 //MEDCouplingUMesh::getCellIdsLyingOnNodes(const int *begin, const int *end, bool fullyIn) const;
127 MEDCouplingUMesh::getCellsContainingPoint(const double *pos, double eps, std::vector<int>& elts) const;
128 MEDCouplingUMesh::getCellsContainingPoints(const double *pos, int nbOfPoints, double eps, std::vector<int>& elts, std::vector<int>& eltsIndex) const;
129 MEDCouplingUMesh::getCellsInBoundingBox(const INTERP_KERNEL::DirectedBoundingBox& bbox, double eps);
130 MEDCouplingUMesh::getCellsInBoundingBox(const double *bbox, double eps) const;
131 MEDCouplingUMesh::getEdgeRatioField() const;
132 MEDCouplingUMesh::getMeasureField(bool isAbs) const;
133 MEDCouplingUMesh::getMeasureFieldOnNode(bool isAbs) const;
134 MEDCouplingUMesh::getMeshDimension() const;
135 MEDCouplingUMesh::getNodalConnectivity() const;
136 MEDCouplingUMesh::getNodalConnectivity();
137 MEDCouplingUMesh::getNodalConnectivityIndex() const;
138 MEDCouplingUMesh::getNodalConnectivityIndex();
139 MEDCouplingUMesh::getNodeIdsInUse(int& nbrOfNodesInUse) const;
140 MEDCouplingUMesh::getNodeIdsOfCell(int cellId, std::vector<int>& conn) const;
141 MEDCouplingUMesh::getNumberOfCells() const;
142 MEDCouplingUMesh::getPartBarycenterAndOwner(const int *begin, const int *end) const;
143 MEDCouplingUMesh::getPartMeasureField(bool isAbs, const int *begin, const int *end) const;
144 MEDCouplingUMesh::getReverseNodalConnectivity(DataArrayInt *revNodal, DataArrayInt *revNodalIndx) const;
145 MEDCouplingUMesh::getSkewField() const;
146 MEDCouplingUMesh::getTypeOfCell(int cellId) const;
147 MEDCouplingUMesh::getTypesOfPart(const int *begin, const int *end) const;
148 MEDCouplingUMesh::getWarpField() const;
149 MEDCouplingUMesh::insertNextCell(INTERP_KERNEL::NormalizedCellType type, int size, const int *nodalConnOfCell);
150 MEDCouplingUMesh::isEqualWithoutConsideringStr(const MEDCouplingMesh *other, double prec) const;
151 //MEDCouplingUMesh::mergeNodes(double precision, bool& areNodesMerged, int& newNbOfNodes);
152 //MEDCouplingUMesh::mergeNodes2(double precision, bool& areNodesMerged, int& newNbOfNodes);
153 MEDCouplingUMesh::orientCorrectly2DCells(const double *vec, bool polyOnly);
154 MEDCouplingUMesh::orientCorrectlyPolyhedrons();
155 //MEDCouplingUMesh::renumberNodes(const int *newNodeNumbers, int newNbOfNodes);
156 //MEDCouplingUMesh::renumberNodes2(const int *newNodeNumbers, int newNbOfNodes);
157 MEDCouplingUMesh::renumberNodesInConn(const int *newNodeNumbersO2N);
158 MEDCouplingUMesh::reprQuickOverview(std::ostream& stream) const;
159 MEDCouplingUMesh::setConnectivity(DataArrayInt *conn, DataArrayInt *connIndex, bool isComputingTypes=true);
160 MEDCouplingUMesh::setMeshDimension(int meshDim);
161 MEDCouplingUMesh::sortCellsInMEDFileFrmt();
162 //MEDCouplingUMesh::tryToShareSameCoordsPermute(const MEDCouplingPointSet& other, double epsilon);
163 MEDCouplingUMesh::unPolyze();
164 //MEDCouplingUMesh::zipConnectivityTraducer(int compType, int startCellId=0);
165 MEDCouplingUMesh::zipCoordsTraducer();
166   ///@} 
167
168   /*! \name Advanced API  */
169 ///@{
170 MEDCouplingUMesh::areOnlySimplexCells() const;
171 MEDCouplingUMesh::checkButterflyCells(std::vector<int>& cells, double eps=1e-12) const;
172 MEDCouplingUMesh::computeTypes();
173 MEDCouplingUMesh::convertDegeneratedCells();
174 MEDCouplingUMesh::convertExtrudedPolyhedra();
175 MEDCouplingUMesh::getMeshLength() const;
176 MEDCouplingUMesh::isFullyQuadratic() const;
177 MEDCouplingUMesh::isPresenceOfQuadratic() const;
178 MEDCouplingUMesh::simplexize(int policy);
179 MEDCouplingUMesh::tessellate2D(double eps);
180   ///@
181
182 /*! \name Others... */
183 ///@{
184 MEDCouplingUMesh::AggregateSortedByTypeMeshesOnSameCoords(const std::vector<const MEDCouplingUMesh *>& ms,DataArrayInt *&szOfCellGrpOfSameType,DataArrayInt *&idInMsOfCellGrpOfSameType);
185 //MEDCouplingUMesh::AppendExtrudedCell(const int *connBg, const int *connEnd, int nbOfNodesPerLev, bool isQuad, std::vector<int>& ret);
186 MEDCouplingUMesh::AreCellsEqual(const int *conn, const int *connI, int cell1, int cell2, int compType);
187 MEDCouplingUMesh::AreCellsEqual0(const int *conn, const int *connI, int cell1, int cell2);
188 MEDCouplingUMesh::AreCellsEqual1(const int *conn, const int *connI, int cell1, int cell2);
189 MEDCouplingUMesh::AreCellsEqual2(const int *conn, const int *connI, int cell1, int cell2);
190 MEDCouplingUMesh::AreCellsEqual3(const int *conn, const int *connI, int cell1, int cell2);
191 MEDCouplingUMesh::AreCellsEqual7(const int *conn, const int *connI, int cell1, int cell2);
192 MEDCouplingUMesh::AreCellsEqualInPool(const std::vector<int>& candidates, int compType, const int *conn, const int *connI, DataArrayInt *result) ;
193 //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);
194 MEDCouplingUMesh::Build0DMeshFromCoords(DataArrayDouble *da);
195 MEDCouplingUMesh::BuildConvexEnvelopOf2DCellJarvis(const double *coords, const int *nodalConnBg, const int *nodalConnEnd, DataArrayInt *nodalConnecOut);
196 //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);
197 //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);
198 MEDCouplingUMesh::ComputeNeighborsOfCellsAdv(const DataArrayInt *desc, const DataArrayInt *descI, const DataArrayInt *revDesc, const DataArrayInt *revDescI,DataArrayInt *&neighbors, DataArrayInt *&neighborsIdx);
199 //MEDCouplingUMesh::ComputeRangesFromTypeDistribution(const std::vector<int>& code);
200 MEDCouplingUMesh::ComputeSpreadZoneGradually(const DataArrayInt *arrIn, const DataArrayInt *arrIndxIn);
201 MEDCouplingUMesh::ComputeSpreadZoneGraduallyFromSeed(const int *seedBg, const int *seedEnd, const DataArrayInt *arrIn, const DataArrayInt *arrIndxIn, int nbOfDepthPeeling, int& nbOfDepthPeelingPerformed);
202 //MEDCouplingUMesh::ComputeSpreadZoneGraduallyFromSeedAlg(std::vector<bool>& fetched, const int *seedBg, const int *seedEnd, const DataArrayInt *arrIn, const DataArrayInt *arrIndxIn, int nbOfDepthPeeling, int& nbOfDepthPeelingPerformed);
203 MEDCouplingUMesh::ComputeVecAndPtOfFace(double eps, const double *coords, const int *begin, const int *end, double *v, double *p);
204 //MEDCouplingUMesh::CorrectExtrudedCell(int *begin, int *end);
205 MEDCouplingUMesh::CorrectExtrudedStaticCell(int *begin, int *end);
206 MEDCouplingUMesh::ExtractFromIndexedArrays(const int *idsOfSelectBg, const int *idsOfSelectEnd, const DataArrayInt *arrIn, const DataArrayInt *arrIndxIn,DataArrayInt* &arrOut, DataArrayInt* &arrIndexOut);
207 //MEDCouplingUMesh::FillInCompact3DMode(int spaceDim, int nbOfNodesInCell, const int *conn, const double *coo, double *zipFrmt);
208 MEDCouplingUMesh::FindCommonCellsAlg(int compType, int startCellId, const DataArrayInt *nodal, const DataArrayInt *nodalI, const DataArrayInt *revNodal, const DataArrayInt *revNodalI,DataArrayInt *& commonCellsArr, DataArrayInt *& commonCellsIArr);
209 //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);
210 //MEDCouplingUMesh::Is3DExtrudedCellWellOriented(const int *begin, const int *end, const double *coords);
211 MEDCouplingUMesh::Is3DExtrudedStaticCellWellOriented(const int *begin, const int *end, const double *coords);
212 MEDCouplingUMesh::IsPolygonWellOriented(bool isQuadratic, const double *vec, const int *begin, const int *end, const double *coords);
213 MEDCouplingUMesh::IsPolyhedronWellOriented(const int *begin, const int *end, const double *coords);
214 MEDCouplingUMesh::IsPyra5WellOriented(const int *begin, const int *end, const double *coords);
215 MEDCouplingUMesh::IsTetra4WellOriented(const int *begin, const int *end, const double *coords);
216 MEDCouplingUMesh::MEDCouplingUMesh();
217 MEDCouplingUMesh::MEDCouplingUMesh(const MEDCouplingUMesh& other, bool deepCopy);
218 //MEDCouplingUMesh::MergeUMeshesLL(std::vector<const MEDCouplingUMesh *>& a);
219 MEDCouplingUMesh::New();
220 MEDCouplingUMesh::New(const std::string& meshName, int meshDim);
221 MEDCouplingUMesh::RemoveIdsFromIndexedArrays(const int *idsToRemoveBg, const int *idsToRemoveEnd, DataArrayInt *arr, DataArrayInt *arrIndx, int offsetForRemoval=0);
222 MEDCouplingUMesh::SetPartOfIndexedArrays(const int *idsOfSelectBg, const int *idsOfSelectEnd, const DataArrayInt *arrIn, const DataArrayInt *arrIndxIn,const DataArrayInt *srcArr, const DataArrayInt *srcArrIndex,DataArrayInt* &arrOut, DataArrayInt* &arrIndexOut);
223 MEDCouplingUMesh::SetPartOfIndexedArrays2(int start, int end, int step, const DataArrayInt *arrIn, const DataArrayInt *arrIndxIn,const DataArrayInt *srcArr, const DataArrayInt *srcArrIndex,DataArrayInt* &arrOut, DataArrayInt* &arrIndexOut);
224 MEDCouplingUMesh::SetPartOfIndexedArraysSameIdx(const int *idsOfSelectBg, const int *idsOfSelectEnd, DataArrayInt *arrInOut, const DataArrayInt *arrIndxIn,const DataArrayInt *srcArr, const DataArrayInt *srcArrIndex);
225 MEDCouplingUMesh::SetPartOfIndexedArraysSameIdx2(int start, int end, int step, DataArrayInt *arrInOut, const DataArrayInt *arrIndxIn,const DataArrayInt *srcArr, const DataArrayInt *srcArrIndex);
226 MEDCouplingUMesh::SimplifyPolyhedronCell(double eps, const DataArrayDouble *coords, const int *begin, const int *end, DataArrayInt *res);
227 MEDCouplingUMesh::TryToCorrectPolyhedronOrientation(int *begin, int *end, const double *coords);
228 MEDCouplingUMesh::advancedRepr() const;
229 //MEDCouplingUMesh::areCellsFrom2MeshEqual(const MEDCouplingUMesh *other, int cellId, double prec) const;
230 MEDCouplingUMesh::areCellsIncludedIn2(const MEDCouplingUMesh *other, DataArrayInt *& arr) const;
231 //MEDCouplingUMesh::assemblyForSplitFrom3DSurf(const std::vector< std::pair<int,int> >& cut3DSurf,const int *desc, const int *descIndx, DataArrayInt *nodalRes, DataArrayInt *nodalResIndx, DataArrayInt *cellIds) const;
232 MEDCouplingUMesh::buildExtrudedMesh(const MEDCouplingUMesh *mesh1D, int policy);
233 MEDCouplingUMesh::buildExtrudedMeshFromThisLowLev(int nbOfNodesOf1Lev, bool isQuad) const;
234 MEDCouplingUMesh::buildPartOfMySelf2(int start, int end, int step, bool keepCoords=true) const;
235 MEDCouplingUMesh::buildPartOfMySelfKeepCoords(const int *begin, const int *end) const;
236 MEDCouplingUMesh::buildPartOfMySelfKeepCoords2(int start, int end, int step) const;
237 MEDCouplingUMesh::buildSetInstanceFromThis(int spaceDim) const;
238 MEDCouplingUMesh::buildSpreadZonesWithPoly() const;
239 MEDCouplingUMesh::buildUnionOf2DMesh() const;
240 MEDCouplingUMesh::buildUnionOf3DMesh() const;
241 MEDCouplingUMesh::buildUnstructured() const;
242 MEDCouplingUMesh::cellIterator();
243 MEDCouplingUMesh::cellsByType();
244 MEDCouplingUMesh::checkConnectivityFullyDefined() const;
245 MEDCouplingUMesh::checkConsecutiveCellTypes() const;
246 MEDCouplingUMesh::checkConsecutiveCellTypesAndOrder(const INTERP_KERNEL::NormalizedCellType *orderBg, const INTERP_KERNEL::NormalizedCellType *orderEnd) const;
247 MEDCouplingUMesh::checkConsecutiveCellTypesForMEDFileFrmt() const;
248 MEDCouplingUMesh::checkFullyDefined() const;
249 MEDCouplingUMesh::checkTypeConsistencyAndContig(const std::vector<int>& code, const std::vector<const DataArrayInt *>& idsPerType) const;
250 MEDCouplingUMesh::computeFetchedNodeIds() const;
251 MEDCouplingUMesh::computeNbOfNodesPerCell() const;
252 MEDCouplingUMesh::computeNeighborsOfCells(DataArrayInt *&neighbors, DataArrayInt *&neighborsIdx) const;
253 MEDCouplingUMesh::computeNodeIdsAlg(std::vector<bool>& nodeIdsInUse) const;
254 MEDCouplingUMesh::computeSkin() const;
255 MEDCouplingUMesh::convertCellArrayPerGeoType(const DataArrayInt *da) const;
256 MEDCouplingUMesh::convertLinearCellsToQuadratic(int conversionType=0);
257 MEDCouplingUMesh::convertLinearCellsToQuadratic1D0(DataArrayInt *&conn, DataArrayInt *&connI, DataArrayDouble *& coords, std::set<INTERP_KERNEL::NormalizedCellType>& types) const;
258 MEDCouplingUMesh::convertLinearCellsToQuadratic2D0(DataArrayInt *&conn, DataArrayInt *&connI, DataArrayDouble *& coords, std::set<INTERP_KERNEL::NormalizedCellType>& types) const;
259 MEDCouplingUMesh::convertLinearCellsToQuadratic2D1(DataArrayInt *&conn, DataArrayInt *&connI, DataArrayDouble *& coords, std::set<INTERP_KERNEL::NormalizedCellType>& types) const;
260 MEDCouplingUMesh::convertLinearCellsToQuadratic2DAnd3D0(const MEDCouplingUMesh *m1D, const DataArrayInt *desc, const DataArrayInt *descI, DataArrayInt *&conn, DataArrayInt *&connI, DataArrayDouble *& coords, std::set<INTERP_KERNEL::NormalizedCellType>& types) const;
261 MEDCouplingUMesh::convertLinearCellsToQuadratic3D0(DataArrayInt *&conn, DataArrayInt *&connI, DataArrayDouble *& coords, std::set<INTERP_KERNEL::NormalizedCellType>& types) const;
262 MEDCouplingUMesh::convertLinearCellsToQuadratic3D1(DataArrayInt *&conn, DataArrayInt *&connI, DataArrayDouble *& coords, std::set<INTERP_KERNEL::NormalizedCellType>& types) const;
263 MEDCouplingUMesh::convexEnvelop2D();
264 MEDCouplingUMesh::cppRepr() const;
265 MEDCouplingUMesh::distanceToPoint(const double *ptBg, const double *ptEnd, int& cellId, int& nodeId) const;
266 //MEDCouplingUMesh::distanceToPoint2DCurveAlg(const double *pt, const DataArrayInt *cellIds, double& ret0, int& cellId) const;
267 //MEDCouplingUMesh::distanceToPoint3DSurfAlg(const double *pt, const DataArrayInt *cellIds, double& ret0, int& cellId) const;
268 MEDCouplingUMesh::duplicateNodes(const int *nodeIdsToDuplicateBg, const int *nodeIdsToDuplicateEnd);
269 MEDCouplingUMesh::duplicateNodesInConn(const int *nodeIdsToDuplicateBg, const int *nodeIdsToDuplicateEnd, int offset);
270 MEDCouplingUMesh::emulateMEDMEMBDC(const MEDCouplingUMesh *nM1LevMesh, DataArrayInt *desc, DataArrayInt *descIndx, DataArrayInt *&revDesc, DataArrayInt *&revDescIndx, DataArrayInt *& nM1LevMeshIds, DataArrayInt *&meshnM1Old2New) const;
271 MEDCouplingUMesh::explode3DMeshTo1D(DataArrayInt *desc, DataArrayInt *descIndx, DataArrayInt *revDesc, DataArrayInt *revDescIndx) const;
272 MEDCouplingUMesh::fillCellIdsToKeepFromNodeIds(const int *begin, const int *end, bool fullyIn, DataArrayInt *&cellIdsKeptArr) const;
273 MEDCouplingUMesh::fillExtCoordsUsingTranslAndAutoRotation(const MEDCouplingUMesh *mesh1D, bool isQuad) const;
274 MEDCouplingUMesh::fillExtCoordsUsingTranslAndAutoRotation2D(const MEDCouplingUMesh *mesh1D, bool isQuad) const;
275 MEDCouplingUMesh::fillExtCoordsUsingTranslAndAutoRotation3D(const MEDCouplingUMesh *mesh1D, bool isQuad) const;
276 MEDCouplingUMesh::fillExtCoordsUsingTranslation(const MEDCouplingUMesh *mesh1D, bool isQuad) const;
277 MEDCouplingUMesh::findAndCorrectBadOriented3DCells();
278 MEDCouplingUMesh::findCellIdsLyingOn(const MEDCouplingUMesh& otherDimM1OnSameCoords, DataArrayInt *&cellIdsRk0, DataArrayInt *&cellIdsRk1) const;
279 MEDCouplingUMesh::findCellIdsOnBoundary() const;
280 MEDCouplingUMesh::findCommonCells(int compType, int startCellId, DataArrayInt *& commonCellsArr, DataArrayInt *& commonCellsIArr) const;
281 MEDCouplingUMesh::findNodesToDuplicate(const MEDCouplingUMesh& otherDimM1OnSameCoords, DataArrayInt *& nodeIdsToDuplicate,DataArrayInt *& cellIdsNeededToBeRenum, DataArrayInt *& cellIdsNotModified) const;
282 //MEDCouplingUMesh::getAllTypes() const;
283 MEDCouplingUMesh::getBoundingBoxForBBTree(std::vector<double>& bbox) const;
284 MEDCouplingUMesh::getDistributionOfTypes() const;
285 MEDCouplingUMesh::getFastAveragePlaneOfThis(double *vec, double *pos) const;
286 //MEDCouplingUMesh::getHeapMemorySize() const;
287 MEDCouplingUMesh::getLevArrPerCellTypes(const INTERP_KERNEL::NormalizedCellType *orderBg, const INTERP_KERNEL::NormalizedCellType *orderEnd, DataArrayInt *&nbPerType) const;
288 MEDCouplingUMesh::getNumberOfCellsWithType(INTERP_KERNEL::NormalizedCellType type) const;
289 MEDCouplingUMesh::getNumberOfNodesInCell(int cellId) const;
290 MEDCouplingUMesh::getQuadraticStatus() const;
291 MEDCouplingUMesh::getRenumArrForConsecutiveCellTypesSpec(const INTERP_KERNEL::NormalizedCellType *orderBg, const INTERP_KERNEL::NormalizedCellType *orderEnd) const;
292 MEDCouplingUMesh::getTinySerializationInformation(std::vector<double>& tinyInfoD, std::vector<int>& tinyInfo, std::vector<std::string>& littleStrings) const;
293 MEDCouplingUMesh::getType() const { return UNSTRUCTURED; }
294 MEDCouplingUMesh::getVTKDataSetType() const;
295 MEDCouplingUMesh::giveCellsWithType(INTERP_KERNEL::NormalizedCellType type) const;
296 MEDCouplingUMesh::isContiguous1D() const;
297 MEDCouplingUMesh::isEmptyMesh(const std::vector<int>& tinyInfo) const;
298 MEDCouplingUMesh::isEqualIfNotWhy(const MEDCouplingMesh *other, double prec, std::string& reason) const;
299 MEDCouplingUMesh::keepCellIdsByType(INTERP_KERNEL::NormalizedCellType type, const int *begin, const int *end) const;
300 MEDCouplingUMesh::keepSpecifiedCells(INTERP_KERNEL::NormalizedCellType type, const int *idsPerGeoTypeBg, const int *idsPerGeoTypeEnd) const;
301 MEDCouplingUMesh::mergeMyselfWith(const MEDCouplingMesh *other) const;
302 MEDCouplingUMesh::partitionBySpreadZone() const;
303 MEDCouplingUMesh::project1D(const double *pt, const double *v, double eps, double *res) const;
304 MEDCouplingUMesh::rearrange2ConsecutiveCellTypes();
305 MEDCouplingUMesh::renumberCells(const int *old2NewBg, bool check=true);
306 MEDCouplingUMesh::reprConnectivityOfThis() const;
307 MEDCouplingUMesh::reprConnectivityOfThisLL(std::ostringstream& stream) const;
308 MEDCouplingUMesh::resizeForUnserialization(const std::vector<int>& tinyInfo, DataArrayInt *a1, DataArrayDouble *a2, std::vector<std::string>& littleStrings) const;
309 MEDCouplingUMesh::serialize(DataArrayInt *&a1, DataArrayDouble *&a2) const;
310 MEDCouplingUMesh::setPartOfMySelf(const int *cellIdsBg, const int *cellIdsEnd, const MEDCouplingUMesh& otherOnSameCoordsThanThis);
311 MEDCouplingUMesh::setPartOfMySelf2(int start, int end, int step, const MEDCouplingUMesh& otherOnSameCoordsThanThis);
312 MEDCouplingUMesh::shiftNodeNumbersInConn(int delta);
313 MEDCouplingUMesh::simpleRepr() const;
314 MEDCouplingUMesh::simplexizePlanarFace5();
315 MEDCouplingUMesh::simplexizePlanarFace6();
316 MEDCouplingUMesh::simplexizePol0();
317 MEDCouplingUMesh::simplexizePol1();
318 MEDCouplingUMesh::simplifyPolyhedra(double eps);
319 MEDCouplingUMesh::split3DCurveWithPlane(const double *origin, const double *vec, double eps, std::vector<int>& cut3DCurve);
320 MEDCouplingUMesh::splitByType() const;
321 MEDCouplingUMesh::splitProfilePerType(const DataArrayInt *profile, std::vector<int>& code, std::vector<DataArrayInt *>& idsInPflPerType, std::vector<DataArrayInt *>& idsPerType) const;
322 MEDCouplingUMesh::subDivide2DMesh(const int *nodeSubdived, const int *nodeIndxSubdived, const int *desc, const int *descIndex);
323 MEDCouplingUMesh::unserialization(const std::vector<double>& tinyInfoD, const std::vector<int>& tinyInfo, const DataArrayInt *a1, DataArrayDouble *a2, const std::vector<std::string>& littleStrings);
324 MEDCouplingUMesh::updateTime() const;
325 MEDCouplingUMesh::writeVTKLL(std::ostream& ofs, const std::string& cellData, const std::string& pointData) const;
326 MEDCouplingUMesh::~MEDCouplingUMesh();
327 //template<class SonsGenerator> MEDCouplingUMesh * MEDCouplingUMesh::buildDescendingConnectivityGen(DataArrayInt *desc, DataArrayInt *descIndx, DataArrayInt *revDesc, DataArrayInt *revDescIndx, DimM1DescNbrer nbrer) const;
328 template<int SPACEDIM> void MEDCouplingUMesh::getCellsContainingPointsAlg
329 (const double *coords, const double *pos, int nbOfPoints,double eps, std::vector<int>& elts,
330  std::vector<int>& eltsIndex) const;
331
332 //const INTERP_KERNEL::NormalizedCellType MEDCouplingUMesh::MEDMEM_ORDER[N_MEDMEM_ORDER];
333 //const int MEDCouplingUMesh::N_MEDMEM_ORDER=24;
334 double MEDCouplingUMesh::EPS_FOR_POLYH_ORIENTATION;
335 int MEDCouplingUMesh::_mesh_dim;
336 std::set<INTERP_KERNEL::NormalizedCellType> MEDCouplingUMesh::_types;
337 DataArrayInt * MEDCouplingUMesh::_nodal_connec;
338 DataArrayInt * MEDCouplingUMesh::_nodal_connec_index;
339   ///@} 
340 }
341