Version: 8.3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
MEDCoupling::MEDCoupling1DGTUMesh Class Reference
Inheritance diagram for MEDCoupling::MEDCoupling1DGTUMesh:
Collaboration diagram for MEDCoupling::MEDCoupling1DGTUMesh:

Public Member Functions

std::string advancedRepr () const
 
void allocateCells (int nbOfCells=0)
 
MEDCouplingPointSetbuildPartOfMySelfKeepCoords (const int *begin, const int *end) const
 
MEDCouplingPointSetbuildPartOfMySelfKeepCoordsSlice (int start, int end, int step) const
 
MEDCoupling1DGTUMeshbuildSetInstanceFromThis (int spaceDim) const
 
MEDCouplingUMeshbuildUnstructured () const
 
void checkConsistency (double eps=1e-12) const
 
void checkConsistencyLight () const
 
void checkConsistencyOfConnectivity () const
 
void checkFastEquivalWith (const MEDCouplingMesh *other, double prec) const
 
void checkFullyDefined () const
 
MEDCoupling1DGTUMeshclone (bool recDeepCpy) const
 
MEDCouplingFieldDoublecomputeDiameterField () const
 
DataArrayIntcomputeEffectiveNbOfNodesPerCell () const
 
DataArrayIntcomputeFetchedNodeIds () const
 
DataArrayDoublecomputeIsoBarycenterOfNodesPerCell () const
 
DataArrayIntcomputeNbOfFacesPerCell () const
 
DataArrayIntcomputeNbOfNodesPerCell () const
 
void computeNodeIdsAlg (std::vector< bool > &nodeIdsInUse) const
 
MEDCoupling1DGTUMeshcopyWithNodalConnectivityPacked (bool &isShallowCpyOfNodalConnn) const
 
MEDCoupling1DGTUMeshdeepCopy () const
 
MEDCoupling1DGTUMeshdeepCopyConnectivityOnly () const
 
void fillCellIdsToKeepFromNodeIds (const int *begin, const int *end, bool fullyIn, DataArrayInt *&cellIdsKeptArr) const
 
DataArrayDoublegetBoundingBoxForBBTree (double arcDetEps=1e-12) const
 
std::vector< const
BigMemoryObject * > 
getDirectChildrenWithNull () const
 
std::size_t getHeapMemorySizeWithoutChildren () const
 
DataArrayIntgetNodalConnectivity () const
 
DataArrayIntgetNodalConnectivityIndex () const
 
DataArrayIntgetNodeIdsInUse (int &nbrOfNodesInUse) const
 
void getNodeIdsOfCell (int cellId, std::vector< int > &conn) const
 
int getNumberOfCells () const
 
int getNumberOfNodesInCell (int cellId) const
 
void getReverseNodalConnectivity (DataArrayInt *revNodal, DataArrayInt *revNodalIndx) const
 
void getTinySerializationInformation (std::vector< double > &tinyInfoD, std::vector< int > &tinyInfo, std::vector< std::string > &littleStrings) const
 
MEDCouplingMeshType getType () const
 
void insertNextCell (const int *nodalConnOfCellBg, const int *nodalConnOfCellEnd)
 
bool isEmptyMesh (const std::vector< int > &tinyInfo) const
 
bool isEqualIfNotWhy (const MEDCouplingMesh *other, double prec, std::string &reason) const
 
bool isEqualWithoutConsideringStr (const MEDCouplingMesh *other, double prec) const
 
bool isPacked () const
 
MEDCouplingMeshmergeMyselfWith (const MEDCouplingMesh *other) const
 
MEDCouplingPointSetmergeMyselfWithOnSameCoords (const MEDCouplingPointSet *other) const
 
void renumberCells (const int *old2NewBg, bool check=true)
 
void renumberNodesInConn (const INTERP_KERNEL::HashMap< int, int > &newNodeNumbersO2N)
 
void renumberNodesInConn (const int *newNodeNumbersO2N)
 
void renumberNodesWithOffsetInConn (int offset)
 
void reprQuickOverview (std::ostream &stream) const
 
void resizeForUnserialization (const std::vector< int > &tinyInfo, DataArrayInt *a1, DataArrayDouble *a2, std::vector< std::string > &littleStrings) const
 
bool retrievePackedNodalConnectivity (DataArrayInt *&nodalConn, DataArrayInt *&nodalConnIndx) const
 
void serialize (DataArrayInt *&a1, DataArrayDouble *&a2) const
 
void setNodalConnectivity (DataArrayInt *nodalConn, DataArrayInt *nodalConnIndex)
 
void shallowCopyConnectivityFrom (const MEDCouplingPointSet *other)
 
std::string simpleRepr () const
 
DataArrayIntsimplexize (int policy)
 
void unserialization (const std::vector< double > &tinyInfoD, const std::vector< int > &tinyInfo, const DataArrayInt *a1, DataArrayDouble *a2, const std::vector< std::string > &littleStrings)
 
void updateTime () const
 
- Public Member Functions inherited from MEDCoupling::MEDCoupling1GTUMesh
MEDCouplingPointSetbuildBoundaryMesh (bool keepCoords) const
 
MEDCouplingPointSetbuildFacePartOfMySelfNode (const int *start, const int *end, bool fullyIn) const
 
MEDCouplingFieldDoublebuildOrthogonalField () const
 
DataArrayIntcheckTypeConsistencyAndContig (const std::vector< int > &code, const std::vector< const DataArrayInt * > &idsPerType) const
 
DataArrayDoublecomputeCellCenterOfMass () const
 
DataArrayIntfindBoundaryNodes () const
 
void findCommonCells (int compType, int startCellId, DataArrayInt *&commonCellsArr, DataArrayInt *&commonCellsIArr) const
 
std::set
< INTERP_KERNEL::NormalizedCellType
getAllGeoTypes () const
 
int getCellContainingPoint (const double *pos, double eps) const
 
const INTERP_KERNEL::CellModel & getCellModel () const
 
INTERP_KERNEL::NormalizedCellType getCellModelEnum () const
 
void getCellsContainingPoint (const double *pos, double eps, std::vector< int > &elts) const
 
DataArrayIntgetCellsInBoundingBox (const double *bbox, double eps) const
 
DataArrayIntgetCellsInBoundingBox (const INTERP_KERNEL::DirectedBoundingBox &bbox, double eps)
 
std::vector< int > getDistributionOfTypes () const
 
MEDCouplingFieldDoublegetMeasureField (bool isAbs) const
 
MEDCouplingFieldDoublegetMeasureFieldOnNode (bool isAbs) const
 
int getMeshDimension () const
 
int getNodalConnectivityLength () const
 
int getNumberOfCellsWithType (INTERP_KERNEL::NormalizedCellType type) const
 
INTERP_KERNEL::NormalizedCellType getTypeOfCell (int cellId) const
 
std::string getVTKDataSetType () const
 
std::string getVTKFileExtension () const
 
DataArrayIntgiveCellsWithType (INTERP_KERNEL::NormalizedCellType type) const
 
void splitProfilePerType (const DataArrayInt *profile, std::vector< int > &code, std::vector< DataArrayInt * > &idsInPflPerType, std::vector< DataArrayInt * > &idsPerType) const
 
void writeVTKLL (std::ostream &ofs, const std::string &cellData, const std::string &pointData, DataArrayByte *byteData) const
 
- Public Member Functions inherited from MEDCoupling::MEDCouplingPointSet
virtual bool areAllNodesFetched () const
 
bool areCellsFrom2MeshEqual (const MEDCouplingPointSet *other, int cellId, double prec) const
 
bool areCoordsEqual (const MEDCouplingPointSet &other, double prec) const
 
bool areCoordsEqualIfNotWhy (const MEDCouplingPointSet &other, double prec, std::string &reason) const
 
bool areCoordsEqualWithoutConsideringStr (const MEDCouplingPointSet &other, double prec) const
 
DataArrayIntbuildNewNumberingFromCommonNodesFormat (const DataArrayInt *comm, const DataArrayInt *commIndex, int &newNbOfNodes) const
 
MEDCouplingMeshbuildPart (const int *start, const int *end) const
 
MEDCouplingMeshbuildPartAndReduceNodes (const int *start, const int *end, DataArrayInt *&arr) const
 
virtual MEDCouplingPointSetbuildPartOfMySelf (const int *start, const int *end, bool keepCoords=true) const
 
virtual MEDCouplingPointSetbuildPartOfMySelfNode (const int *start, const int *end, bool fullyIn) const
 
virtual MEDCouplingPointSetbuildPartOfMySelfSlice (int start, int end, int step, bool keepCoords=true) const
 
MEDCouplingMeshbuildPartRange (int beginCellIds, int endCellIds, int stepCellIds) const
 
MEDCouplingMeshbuildPartRangeAndReduceNodes (int beginCellIds, int endCellIds, int stepCellIds, int &beginOut, int &endOut, int &stepOut, DataArrayInt *&arr) const
 
DataArrayIntbuildPermArrayForMergeNode (double precision, int limitNodeId, bool &areNodesMerged, int &newNbOfNodes) const
 
void changeSpaceDimension (int newSpaceDim, double dftVal=0.)
 
void checkDeepEquivalOnSameNodesWith (const MEDCouplingMesh *other, int cellCompPol, double prec, DataArrayInt *&cellCor) const
 
void checkDeepEquivalWith (const MEDCouplingMesh *other, int cellCompPol, double prec, DataArrayInt *&cellCor, DataArrayInt *&nodeCor) const
 
void checkFastEquivalWith (const MEDCouplingMesh *other, double prec) const
 
void copyTinyStringsFrom (const MEDCouplingMesh *other)
 
void duplicateNodesInCoords (const int *nodeIdsToDuplicateBg, const int *nodeIdsToDuplicateEnd)
 
void findCommonNodes (double prec, int limitNodeId, DataArrayInt *&comm, DataArrayInt *&commIndex) const
 
void findNodesOnLine (const double *pt, const double *vec, double eps, std::vector< int > &nodes) const
 
void findNodesOnPlane (const double *pt, const double *vec, double eps, std::vector< int > &nodes) const
 
void getBoundingBox (double *bbox) const
 
double getCaracteristicDimension () const
 
DataArrayIntgetCellIdsFullyIncludedInNodeIds (const int *partBg, const int *partEnd) const
 
DataArrayIntgetCellIdsLyingOnNodes (const int *begin, const int *end, bool fullyIn) const
 
DataArrayDoublegetCoordinatesAndOwner () const
 
void getCoordinatesOfNode (int nodeId, std::vector< double > &coo) const
 
const DataArrayDoublegetCoords () const
 
DataArrayDoublegetCoords ()
 
const DataArrayDoublegetDirectAccessOfCoordsArrIfInStructure () const
 
std::vector< const
BigMemoryObject * > 
getDirectChildrenWithNull () const
 
std::size_t getHeapMemorySizeWithoutChildren () const
 
DataArrayIntgetNodeIdsNearPoint (const double *pos, double eps) const
 
void getNodeIdsNearPoints (const double *pos, int nbOfPoints, double eps, DataArrayInt *&c, DataArrayInt *&cI) const
 
int getNumberOfNodes () const
 
int getSpaceDimension () const
 
void getTinySerializationInformation (std::vector< double > &tinyInfoD, std::vector< int > &tinyInfo, std::vector< std::string > &littleStrings) const
 
bool isEqualIfNotWhy (const MEDCouplingMesh *other, double prec, std::string &reason) const
 
bool isEqualWithoutConsideringStr (const MEDCouplingMesh *other, double prec) const
 
virtual DataArrayIntmergeNodes (double precision, bool &areNodesMerged, int &newNbOfNodes)
 
virtual DataArrayIntmergeNodesCenter (double precision, bool &areNodesMerged, int &newNbOfNodes)
 
void recenterForMaxPrecision (double eps)
 
virtual void renumberNodes (const int *newNodeNumbers, int newNbOfNodes)
 
virtual void renumberNodesCenter (const int *newNodeNumbers, int newNbOfNodes)
 
void resizeForUnserialization (const std::vector< int > &tinyInfo, DataArrayInt *a1, DataArrayDouble *a2, std::vector< std::string > &littleStrings) const
 
void rotate (const double *center, const double *vector, double angle)
 
void scale (const double *point, double factor)
 
void serialize (DataArrayInt *&a1, DataArrayDouble *&a2) const
 
void setCoords (const DataArrayDouble *coords)
 
void translate (const double *vector)
 
void tryToShareSameCoords (const MEDCouplingPointSet &other, double epsilon)
 
virtual void tryToShareSameCoordsPermute (const MEDCouplingPointSet &other, double epsilon)
 
void unserialization (const std::vector< double > &tinyInfoD, const std::vector< int > &tinyInfo, const DataArrayInt *a1, DataArrayDouble *a2, const std::vector< std::string > &littleStrings)
 
void updateTime () const
 
virtual DataArrayIntzipConnectivityTraducer (int compType, int startCellId=0)
 
void zipCoords ()
 
virtual DataArrayIntzipCoordsTraducer ()
 
- Public Member Functions inherited from MEDCoupling::MEDCouplingMesh
virtual bool areCompatibleForMerge (const MEDCouplingMesh *other) const
 
void checkGeoEquivalWith (const MEDCouplingMesh *other, int levOfCheck, double prec, DataArrayInt *&cellCor, DataArrayInt *&nodeCor) const
 
virtual void copyTinyInfoFrom (const MEDCouplingMesh *other)
 
virtual MEDCouplingFieldDoublefillFromAnalytic (TypeOfField t, int nbOfComp, FunctionToEvaluate func) const
 
virtual MEDCouplingFieldDoublefillFromAnalytic (TypeOfField t, int nbOfComp, const std::string &func) const
 
virtual MEDCouplingFieldDoublefillFromAnalyticCompo (TypeOfField t, int nbOfComp, const std::string &func) const
 
virtual MEDCouplingFieldDoublefillFromAnalyticNamedCompo (TypeOfField t, int nbOfComp, const std::vector< std::string > &varsOrder, const std::string &func) const
 
virtual void getCellsContainingPoints (const double *pos, int nbOfPoints, double eps, MCAuto< DataArrayInt > &elts, MCAuto< DataArrayInt > &eltsIndex) const
 
std::string getDescription () const
 
std::string getName () const
 
double getTime (int &iteration, int &order) const
 
std::string getTimeUnit () const
 
std::string getVTKFileNameOf (const std::string &fileName) const
 
virtual bool isEqual (const MEDCouplingMesh *other, double prec) const
 
bool isStructured () const
 
void setDescription (const std::string &descr)
 
void setName (const std::string &name)
 
void setTime (double val, int iteration, int order)
 
void setTimeUnit (const std::string &unit)
 
std::string writeVTK (const std::string &fileName, bool isBinary=true) const
 
- Public Member Functions inherited from MEDCoupling::TimeLabel
void declareAsNew () const
 
std::size_t getTimeOfThis () const
 
TimeLabeloperator= (const TimeLabel &other)
 

Static Public Member Functions

static DataArrayIntAggregateNodalConnAndShiftNodeIds (const std::vector< const DataArrayInt * > &nodalConns, const std::vector< int > &offsetInNodeIdsPerElt)
 
static std::vector< int > BuildAPolygonFromParts (const std::vector< std::vector< int > > &parts)
 
static MEDCoupling1DGTUMeshMerge1DGTUMeshes (const MEDCoupling1DGTUMesh *mesh1, const MEDCoupling1DGTUMesh *mesh2)
 
static MEDCoupling1DGTUMeshMerge1DGTUMeshes (std::vector< const MEDCoupling1DGTUMesh * > &a)
 
static MEDCoupling1DGTUMeshMerge1DGTUMeshesOnSameCoords (std::vector< const MEDCoupling1DGTUMesh * > &a)
 
static MEDCoupling1DGTUMeshNew (const std::string &name, INTERP_KERNEL::NormalizedCellType type)
 
static MEDCoupling1DGTUMeshNew (const MEDCouplingUMesh *m)
 
static MEDCoupling1DGTUMeshNew ()
 
- Static Public Member Functions inherited from MEDCoupling::MEDCoupling1GTUMesh
static MEDCouplingUMeshAggregateOnSameCoordsToUMesh (const std::vector< const MEDCoupling1GTUMesh * > &parts)
 
static MEDCoupling1GTUMeshNew (const std::string &name, INTERP_KERNEL::NormalizedCellType type)
 
static MEDCoupling1GTUMeshNew (const MEDCouplingUMesh *m)
 
- Static Public Member Functions inherited from MEDCoupling::MEDCouplingPointSet
static MEDCouplingPointSetBuildInstanceFromMeshType (MEDCouplingMeshType type)
 
static DataArrayIntComputeNbOfInteractionsWithSrcCells (const MEDCouplingPointSet *srcMesh, const MEDCouplingPointSet *trgMesh, double eps)
 
static DataArrayDoubleMergeNodesArray (const MEDCouplingPointSet *m1, const MEDCouplingPointSet *m2)
 
static DataArrayDoubleMergeNodesArray (const std::vector< const MEDCouplingPointSet * > &ms)
 
- Static Public Member Functions inherited from MEDCoupling::MEDCouplingMesh
static
INTERP_KERNEL::NormalizedCellType 
GetCorrespondingPolyType (INTERP_KERNEL::NormalizedCellType type)
 
static int GetDimensionOfGeometricType (INTERP_KERNEL::NormalizedCellType type)
 
static int GetNumberOfNodesOfGeometricType (INTERP_KERNEL::NormalizedCellType type)
 
static const char * GetReprOfGeometricType (INTERP_KERNEL::NormalizedCellType type)
 
static bool IsLinearGeometricType (INTERP_KERNEL::NormalizedCellType type)
 
static bool IsStaticGeometricType (INTERP_KERNEL::NormalizedCellType type)
 
static MEDCouplingMeshMergeMeshes (const MEDCouplingMesh *mesh1, const MEDCouplingMesh *mesh2)
 
static MEDCouplingMeshMergeMeshes (std::vector< const MEDCouplingMesh * > &meshes)
 

Additional Inherited Members

- Protected Member Functions inherited from MEDCoupling::MEDCoupling1GTUMesh
 MEDCoupling1GTUMesh (const std::string &name, const INTERP_KERNEL::CellModel &cm)
 
 MEDCoupling1GTUMesh (const MEDCoupling1GTUMesh &other, bool recDeepCpy)
 
 MEDCoupling1GTUMesh ()
 
- Static Protected Member Functions inherited from MEDCoupling::MEDCouplingPointSet
static bool intersectsBoundingBox (const double *bb1, const double *bb2, int dim, double eps)
 
static bool intersectsBoundingBox (const INTERP_KERNEL::DirectedBoundingBox &bb1, const double *bb2, int dim, double eps)
 
static bool isButterfly2DCell (const std::vector< double > &res, bool isQuad, double eps)
 
- Protected Attributes inherited from MEDCoupling::MEDCoupling1GTUMesh
const INTERP_KERNEL::CellModel * _cm
 

Member Function Documentation

MEDCoupling1DGTUMesh * MEDCoupling1DGTUMesh::New ( const std::string &  name,
INTERP_KERNEL::NormalizedCellType  type 
)
static
MEDCoupling1DGTUMesh * MEDCoupling1DGTUMesh::New ( )
static

useless constructor only for CORBA -> not swigged

Referenced by MEDCoupling::MEDCouplingPointSet::BuildInstanceFromMeshType(), MEDCoupling::MEDCoupling1GTUMesh::New(), and New().

MEDCoupling1DGTUMesh * MEDCoupling1DGTUMesh::clone ( bool  recDeepCpy) const
virtual
MEDCoupling1DGTUMesh * MEDCoupling1DGTUMesh::deepCopy ( ) const
virtual

Implements MEDCoupling::MEDCouplingMesh.

References clone().

MEDCoupling1DGTUMesh * MEDCoupling1DGTUMesh::deepCopyConnectivityOnly ( ) const
virtual

This method behaves mostly like MEDCoupling1DGTUMesh::deepCopy method, except that only nodal connectivity arrays are deeply copied. The coordinates are shared between this and the returned instance.

Returns
MEDCoupling1DGTUMesh * - A new object instance holding the copy of this (deep for connectivity, shallow for coordiantes)
See Also
MEDCoupling1DGTUMesh::deepCopy

Implements MEDCoupling::MEDCouplingPointSet.

References checkConsistencyLight(), clone(), MEDCoupling::MCAuto< T >::retn(), and setNodalConnectivity().

void MEDCoupling1DGTUMesh::updateTime ( ) const
virtual

This method should be called on high level classes as Field or Mesh to take into acount modifications done in aggregates objects.

Implements MEDCoupling::TimeLabel.

References MEDCoupling::MEDCouplingPointSet::updateTime(), and MEDCoupling::TimeLabel::updateTimeWith().

Referenced by renumberNodesInConn(), and renumberNodesWithOffsetInConn().

std::size_t MEDCoupling1DGTUMesh::getHeapMemorySizeWithoutChildren ( ) const
virtual
std::vector< const BigMemoryObject * > MEDCoupling1DGTUMesh::getDirectChildrenWithNull ( ) const
virtual
MEDCouplingMeshType MEDCoupling::MEDCoupling1DGTUMesh::getType ( ) const
virtual
bool MEDCoupling1DGTUMesh::isEqualIfNotWhy ( const MEDCouplingMesh other,
double  prec,
std::string &  reason 
) const
virtual
bool MEDCoupling1DGTUMesh::isEqualWithoutConsideringStr ( const MEDCouplingMesh other,
double  prec 
) const
virtual
void MEDCoupling1DGTUMesh::checkFastEquivalWith ( const MEDCouplingMesh other,
double  prec 
) const
virtual

Checks if this and other meshes are geometrically equivalent with high probability, else an exception is thrown. The meshes are considered equivalent if (1) meshes contain the same number of nodes and the same number of elements of the same types (2) three cells of the two meshes (first, last and middle) are based on coincident nodes (with a specified precision).

Parameters
[in]other- the mesh to compare with.
[in]prec- the precision used to compare nodes of the two meshes.
Exceptions
Ifthe two meshes do not match.

Reimplemented from MEDCoupling::MEDCouplingMesh.

References MEDCoupling::MEDCouplingPointSet::checkFastEquivalWith(), MEDCoupling::DataArrayInt::getHashCode(), and MEDCoupling::DataArrayTemplate< T >::isAllocated().

void MEDCoupling1DGTUMesh::checkConsistencyLight ( ) const
virtual

If this pass this method, you are sure that connectivity arrays are not null, with exactly one component, no name, no component name, allocated. In addition you are sure that the length of nodal connectivity index array is bigger than or equal to one. In addition you are also sure that length of nodal connectivity is coherent with the content of the last value in the index array.

Reimplemented from MEDCoupling::MEDCoupling1GTUMesh.

References MEDCoupling::MEDCouplingPointSet::checkConsistencyLight(), and checkConsistencyOfConnectivity().

Referenced by buildPartOfMySelfKeepCoords(), buildPartOfMySelfKeepCoordsSlice(), checkConsistency(), computeEffectiveNbOfNodesPerCell(), computeNbOfFacesPerCell(), computeNbOfNodesPerCell(), deepCopyConnectivityOnly(), isPacked(), reprQuickOverview(), and simpleRepr().

void MEDCoupling1DGTUMesh::checkConsistency ( double  eps = 1e-12) const
virtual
DataArrayInt * MEDCoupling1DGTUMesh::computeNbOfNodesPerCell ( ) const
virtual

This method returns a newly allocated array containing this->getNumberOfCells() tuples and 1 component. For each cell in this the number of nodes constituting cell is computed. For each polyhedron cell, the sum of the number of nodes of each face constituting polyhedron cell is returned. So for pohyhedrons some nodes can be counted several times in the returned result.

Returns
a newly allocated array

Implements MEDCoupling::MEDCouplingMesh.

References MEDCoupling::DataArrayTemplate< T >::alloc(), checkConsistencyLight(), MEDCoupling::MEDCoupling1GTUMesh::getCellModelEnum(), MEDCoupling::DataArrayTemplate< T >::getPointer(), MEDCoupling::DataArrayInt::New(), INTERP_KERNEL::NORM_POLYHED, and MEDCoupling::MCAuto< T >::retn().

DataArrayInt * MEDCoupling1DGTUMesh::computeNbOfFacesPerCell ( ) const
virtual

This method returns a newly allocated array containing this->getNumberOfCells() tuples and 1 component. For each cell in this the number of faces constituting (entity of dimension this->getMeshDimension()-1) cell is computed.

Returns
a newly allocated array

Implements MEDCoupling::MEDCouplingMesh.

References MEDCoupling::DataArrayTemplate< T >::alloc(), MEDCoupling::DataArrayInt::applyDivideBy(), checkConsistencyLight(), MEDCoupling::MEDCoupling1GTUMesh::getCellModelEnum(), MEDCoupling::DataArrayTemplate< T >::getPointer(), MEDCoupling::DataArrayInt::New(), INTERP_KERNEL::NORM_POLYHED, INTERP_KERNEL::NORM_QPOLYG, and MEDCoupling::MCAuto< T >::retn().

DataArrayInt * MEDCoupling1DGTUMesh::computeEffectiveNbOfNodesPerCell ( ) const
virtual

This method computes effective number of nodes per cell. That is to say nodes appearing several times in nodal connectivity of a cell, will be counted only once here whereas it will be counted several times in MEDCoupling1DGTUMesh::computeNbOfNodesPerCell method.

Returns
DataArrayInt * - new object to be deallocated by the caller.
See Also
MEDCoupling1DGTUMesh::computeNbOfNodesPerCell

Implements MEDCoupling::MEDCouplingMesh.

References checkConsistencyLight(), MEDCoupling::MEDCoupling1GTUMesh::getCellModelEnum(), MEDCoupling::DataArrayInt::New(), and INTERP_KERNEL::NORM_POLYHED.

void MEDCoupling1DGTUMesh::getNodeIdsOfCell ( int  cellId,
std::vector< int > &  conn 
) const
virtual
MEDCouplingMesh * MEDCoupling1DGTUMesh::mergeMyselfWith ( const MEDCouplingMesh other) const
virtual
DataArrayInt * MEDCoupling1DGTUMesh::simplexize ( int  policy)
virtual

Do nothing for the moment, because there is no policy that allows to split polygons, polyhedrons ... into simplexes

Implements MEDCoupling::MEDCouplingMesh.

References MEDCoupling::DataArrayTemplate< T >::alloc(), getNumberOfCells(), MEDCoupling::DataArrayInt::iota(), MEDCoupling::DataArrayInt::New(), and MEDCoupling::MCAuto< T >::retn().

void MEDCoupling1DGTUMesh::shallowCopyConnectivityFrom ( const MEDCouplingPointSet other)
virtual
MEDCouplingPointSet * MEDCoupling1DGTUMesh::mergeMyselfWithOnSameCoords ( const MEDCouplingPointSet other) const
virtual
void MEDCoupling1DGTUMesh::computeNodeIdsAlg ( std::vector< bool > &  nodeIdsInUse) const
virtual
void MEDCoupling1DGTUMesh::getReverseNodalConnectivity ( DataArrayInt revNodal,
DataArrayInt revNodalIndx 
) const
virtual
void MEDCoupling1DGTUMesh::checkFullyDefined ( ) const
virtual
bool MEDCoupling1DGTUMesh::isEmptyMesh ( const std::vector< int > &  tinyInfo) const
virtual
DataArrayInt * MEDCoupling1DGTUMesh::computeFetchedNodeIds ( ) const
virtual

Finds nodes not used in any cell and returns an array giving a new id to every node by excluding the unused nodes, for which the array holds -1. The result array is a mapping in "Old to New" mode.

Parameters
[out]nbrOfNodesInUse- number of node ids present in the nodal connectivity.
Returns
DataArrayInt * - a new instance of DataArrayInt. Its length is this->getNumberOfNodes(). It holds for each node of this mesh either -1 if the node is unused or a new id else. The caller is to delete this array using decrRef() as it is no more needed.
Exceptions
Ifthe coordinates array is not set.
Ifthe nodal connectivity of cells is not defined.
Ifthe nodal connectivity includes an invalid id.
See Also
MEDCoupling1DGTUMesh::getNodeIdsInUse, areAllNodesFetched

Implements MEDCoupling::MEDCouplingPointSet.

References MEDCoupling::DataArrayTemplate< T >::alloc(), checkConsistency(), computeNodeIdsAlg(), MEDCoupling::MEDCouplingPointSet::getNumberOfNodes(), MEDCoupling::DataArrayTemplate< T >::getPointer(), MEDCoupling::DataArrayInt::New(), and MEDCoupling::MCAuto< T >::retn().

DataArrayInt * MEDCoupling1DGTUMesh::getNodeIdsInUse ( int &  nbrOfNodesInUse) const
virtual

Finds nodes not used in any cell and returns an array giving a new id to every node by excluding the unused nodes, for which the array holds -1. The result array is a mapping in "Old to New" mode.

Parameters
[out]nbrOfNodesInUse- number of node ids present in the nodal connectivity.
Returns
DataArrayInt * - a new instance of DataArrayInt. Its length is this->getNumberOfNodes(). It holds for each node of this mesh either -1 if the node is unused or a new id else. The caller is to delete this array using decrRef() as it is no more needed.
Exceptions
Ifthe coordinates array is not set.
Ifthe nodal connectivity of cells is not defined.
Ifthe nodal connectivity includes an invalid id.
See Also
MEDCoupling1DGTUMesh::computeFetchedNodeIds, areAllNodesFetched

Implements MEDCoupling::MEDCouplingPointSet.

References MEDCoupling::DataArrayTemplate< T >::alloc(), getNumberOfCells(), MEDCoupling::MEDCouplingPointSet::getNumberOfNodes(), MEDCoupling::DataArrayTemplate< T >::getPointer(), MEDCoupling::DataArrayInt::New(), and MEDCoupling::MCAuto< T >::retn().

void MEDCoupling1DGTUMesh::renumberNodesWithOffsetInConn ( int  offset)
virtual

This method renumbers only nodal connectivity in this. The renumbering is only an offset applied. So this method is a specialization of renumberNodesInConn. WARNING, this method does not check that the resulting node ids in the nodal connectivity is in a valid range !

Parameters
[in]offset- specifies the offset to be applied on each element of connectivity.
See Also
renumberNodesInConn

Implements MEDCoupling::MEDCouplingPointSet.

References getNumberOfCells(), and updateTime().

void MEDCoupling1DGTUMesh::renumberNodesInConn ( const INTERP_KERNEL::HashMap< int, int > &  newNodeNumbersO2N)
virtual

Same than renumberNodesInConn(const int *) except that here the format of old-to-new traducer is using map instead of array. This method is dedicated for renumbering from a big set of nodes the a tiny set of nodes which is the case during extraction of a big mesh.

Implements MEDCoupling::MEDCouplingPointSet.

References getNumberOfCells(), and MEDCoupling::MEDCouplingPointSet::getNumberOfNodes().

void MEDCoupling1DGTUMesh::renumberNodesInConn ( const int *  newNodeNumbersO2N)
virtual

Changes ids of nodes within the nodal connectivity arrays according to a permutation array in "Old to New" mode. The node coordinates array is not changed by this method. This method is a generalization of shiftNodeNumbersInConn().

Warning
This method performs no check of validity of new ids. Use it with care !
Parameters
[in]newNodeNumbersO2N- a permutation array, of length this->getNumberOfNodes(), in "Old to New" mode. See Array indexing and numbering for more info on renumbering modes.
Exceptions
Ifthe nodal connectivity of cells is not defined.

Implements MEDCoupling::MEDCouplingPointSet.

References getNumberOfCells(), MEDCoupling::MEDCouplingPointSet::getNumberOfNodes(), and updateTime().

void MEDCoupling1DGTUMesh::fillCellIdsToKeepFromNodeIds ( const int *  begin,
const int *  end,
bool  fullyIn,
DataArrayInt *&  cellIdsKeptArr 
) const
virtual

Keeps from this only cells which constituing point id are in the ids specified by [begin,end). The resulting cell ids are stored at the end of the 'cellIdsKept' parameter. Parameter fullyIn specifies if a cell that has part of its nodes in ids array is kept or not. If fullyIn is true only cells whose ids are fully contained in [begin,end) tab will be kept.

Parameters
[in]begininput start of array of node ids.
[in]endinput end of array of node ids.
[in]fullyIninput that specifies if all node ids must be in [begin,end) array to consider cell to be in.
[in,out]cellIdsKeptArrarray where all candidate cell ids are put at the end.

Implements MEDCoupling::MEDCouplingPointSet.

References MEDCoupling::DataArrayTemplate< T >::alloc(), getNumberOfCells(), MEDCoupling::DataArrayInt::New(), MEDCoupling::DataArrayTemplate< T >::pushBackSilent(), and MEDCoupling::MCAuto< T >::retn().

int MEDCoupling1DGTUMesh::getNumberOfNodesInCell ( int  cellId) const
virtual
DataArrayDouble * MEDCoupling1DGTUMesh::getBoundingBoxForBBTree ( double  arcDetEps = 1e-12) const
virtual

This method aggregate the bbox of each cell and put it into bbox parameter.

Parameters
[in]arcDetEps- a parameter specifying in case of 2D quadratic polygon cell the detection limit between linear and arc circle. (By default 1e-12) For all other cases this input parameter is ignored.
Returns
DataArrayDouble * - newly created object (to be managed by the caller) this number of cells tuples and 2*spacedim components.
Exceptions
Ifthis is not fully set (coordinates and connectivity).
Ifa cell in this has no valid nodeId.

Implements MEDCoupling::MEDCouplingPointSet.

References MEDCoupling::MEDCouplingPointSet::_coords, MEDCoupling::DataArrayTemplate< T >::alloc(), checkFullyDefined(), MEDCoupling::DataArrayTemplate< T >::getConstPointer(), getNumberOfCells(), MEDCoupling::MEDCouplingPointSet::getNumberOfNodes(), MEDCoupling::DataArrayTemplate< T >::getPointer(), MEDCoupling::MEDCouplingPointSet::getSpaceDimension(), MEDCoupling::DataArrayDouble::New(), and MEDCoupling::MCAuto< T >::retn().

MEDCouplingFieldDouble * MEDCoupling1DGTUMesh::computeDiameterField ( ) const
virtual

Returns the cell field giving for each cell in this its diameter. Diameter means the max length of all possible SEG2 in the cell.

Returns
a new instance of field containing the result. The returned instance has to be deallocated by the caller.

Implements MEDCoupling::MEDCouplingPointSet.

void MEDCoupling1DGTUMesh::allocateCells ( int  nbOfCells = 0)
virtual
void MEDCoupling1DGTUMesh::insertNextCell ( const int *  nodalConnOfCellBg,
const int *  nodalConnOfCellEnd 
)
virtual

Appends at the end of this a cell having nodal connectivity array defined in [ nodalConnOfCellBg, nodalConnOfCellEnd ).

Parameters
[in]nodalConnOfCellBg- the begin (included) of nodal connectivity of the cell to add.
[in]nodalConnOfCellEnd- the end (excluded) of nodal connectivity of the cell to add.
Exceptions
Ifthe length of the input nodal connectivity array of the cell to add is not equal to number of nodes per cell relative to the unique geometric type attached to this. If the nodal connectivity array in this is null (call MEDCoupling1SGTUMesh::allocateCells before).

Implements MEDCoupling::MEDCoupling1GTUMesh.

References MEDCoupling::DataArrayTemplate< T >::back(), and MEDCoupling::DataArrayTemplate< T >::pushBackSilent().

DataArrayInt * MEDCoupling1DGTUMesh::getNodalConnectivity ( ) const
virtual
Returns
DataArrayInt * - the internal reference to the nodal connectivity. The caller is not reponsible to deallocate it.

Implements MEDCoupling::MEDCoupling1GTUMesh.

Referenced by shallowCopyConnectivityFrom().

DataArrayInt * MEDCoupling1DGTUMesh::getNodalConnectivityIndex ( ) const
Returns
DataArrayInt * - the internal reference to the nodal connectivity index. The caller is not reponsible to deallocate it.

Referenced by MEDCoupling::MEDCoupling1GTUMesh::AggregateOnSameCoordsToUMesh(), and shallowCopyConnectivityFrom().

MEDCoupling1DGTUMesh * MEDCoupling1DGTUMesh::copyWithNodalConnectivityPacked ( bool &  isShallowCpyOfNodalConnn) const

See the definition of the nodal connectivity pack here. This method tries to build a new instance geometrically equivalent to this, by limiting at most the number of new object (nodal connectivity). Geometrically the returned mesh is equal to this. So if this is already packed, the return value is a shallow copy of this.

Whatever the status of pack of this, the coordinates array of the returned newly created instance is the same than those in this.

Parameters
[out]isShallowCpyOfNodalConnn- tells if the returned instance share the same pair of nodal connectivity arrays (true) or if nodal connectivity arrays are different (false)
Returns
a new object to be managed by the caller.
See Also
MEDCoupling1DGTUMesh::retrievePackedNodalConnectivity, MEDCoupling1DGTUMesh::isPacked

References MEDCoupling::MEDCoupling1GTUMesh::_cm, MEDCoupling::MEDCouplingPointSet::getCoords(), MEDCoupling::MEDCouplingMesh::getName(), MEDCoupling::MCAuto< T >::retn(), retrievePackedNodalConnectivity(), and MEDCoupling::MEDCouplingPointSet::setCoords().

bool MEDCoupling1DGTUMesh::retrievePackedNodalConnectivity ( DataArrayInt *&  nodalConn,
DataArrayInt *&  nodalConnIndx 
) const

This method allows to compute, if needed, the packed nodal connectivity pair. Indeed, it is possible to store in this a nodal connectivity array bigger than ranges convered by nodal connectivity index array. It is typically the case when nodalConnIndx starts with an id greater than 0, and finishes with id less than number of tuples in this->_conn.

If this looks packed (the front of nodal connectivity index equal to 0 and back of connectivity index equal to number of tuple of nodal connectivity array) true will be returned and respectively this->_conn and this->_conn_indx (with ref counter incremented). This is the classical case.

If nodal connectivity index points to a subpart of nodal connectivity index the packed pair of arrays will be computed (new objects) and returned and false will be returned.

This method return 3 elements.

Parameters
[out]nodalConn- a pointer that can be equal to this->_conn if true is returned (general case). Whatever the value of return parameter this pointer can be seen as a new object, that is to managed by the caller.
[out]nodalConnIndx- a pointer that can be equal to this->_conn_indx if true is returned (general case). Whatever the value of return parameter this pointer can be seen as a new object, that is to managed by the caller.
Returns
bool - an indication of the content of the 2 output parameters. If true, this looks packed (general case), if true, this is not packed then output parameters are newly created objects.
Exceptions
ifthis does not pass MEDCoupling1DGTUMesh::checkConsistencyLight test

References MEDCoupling::RefCountObjectOnly::incrRef(), and isPacked().

Referenced by copyWithNodalConnectivityPacked().

bool MEDCoupling1DGTUMesh::isPacked ( ) const
MEDCoupling1DGTUMesh * MEDCoupling1DGTUMesh::Merge1DGTUMeshes ( const MEDCoupling1DGTUMesh mesh1,
const MEDCoupling1DGTUMesh mesh2 
)
static

Referenced by mergeMyselfWith().

MEDCoupling1DGTUMesh * MEDCoupling1DGTUMesh::Merge1DGTUMeshesOnSameCoords ( std::vector< const MEDCoupling1DGTUMesh * > &  a)
static
DataArrayInt * MEDCoupling1DGTUMesh::AggregateNodalConnAndShiftNodeIds ( const std::vector< const DataArrayInt * > &  nodalConns,
const std::vector< int > &  offsetInNodeIdsPerElt 
)
static

This method performs an aggregation of nodalConns (as DataArrayInt::Aggregate does) but in addition of that a shift is applied on the values contained in nodalConns using corresponding offset specified in input offsetInNodeIdsPerElt. But it also manage the values -1, that have a semantic in MEDCoupling1DGTUMesh class (separator for polyhedron).

Parameters
[in]nodalConns- a list of nodal connectivity arrays same size than offsetInNodeIdsPerElt.
[in]offsetInNodeIdsPerElt- a list of offsets to apply.
Returns
DataArrayInt * - A new object (to be managed by the caller) that is the result of the aggregation.
Exceptions
IfnodalConns or offsetInNodeIdsPerElt are empty.
IfnodalConns and offsetInNodeIdsPerElt have not the same size.
Ifpresence of null pointer in nodalConns.
Ifpresence of not allocated or array with not exactly one component in nodalConns.

References MEDCoupling::DataArrayTemplate< T >::alloc(), MEDCoupling::DataArrayTemplate< T >::getPointer(), MEDCoupling::DataArrayInt::New(), and MEDCoupling::MCAuto< T >::retn().

std::vector< int > MEDCoupling1DGTUMesh::BuildAPolygonFromParts ( const std::vector< std::vector< int > > &  parts)
static