Commit 6b80a81e by Sylvain Thery

### add checkXXXDegree functions (more efficient than XXXDegree == deg)

parent 56927cbd
 ... @@ -180,6 +180,13 @@ public: ... @@ -180,6 +180,13 @@ public: */ */ unsigned int cycleDegree(Dart d); unsigned int cycleDegree(Dart d); //! Check the Length of a cycle (its number of oriented edges) /*! @param d a dart of the cycle * @param le the length to compare * @return negative/null/positive if face degree is less/equal/greater than given degree */ int checkCycleDegree(Dart d, unsigned int le) ; /** /** * check if the face of d is a triangle * check if the face of d is a triangle * @return a boolean indicating if the face is a triangle * @return a boolean indicating if the face is a triangle ... ...
 ... @@ -286,6 +286,20 @@ inline unsigned int GMap1::cycleDegree(Dart d) ... @@ -286,6 +286,20 @@ inline unsigned int GMap1::cycleDegree(Dart d) return count ; return count ; } } inline int GMap1::checkCycleDegree(Dart d, unsigned int degree) { unsigned int count = 0 ; Dart it = d ; do { ++count ; it = phi1(it) ; } while ((count<=degree) && (it != d)) ; return count-degree; } inline bool GMap1::isCycleTriangle(Dart d) inline bool GMap1::isCycleTriangle(Dart d) { { return (phi1(d) != d) && (phi1(phi1(phi1(d))) == d) ; return (phi1(d) != d) && (phi1(phi1(phi1(d))) == d) ; ... ...
 ... @@ -287,6 +287,13 @@ public: ... @@ -287,6 +287,13 @@ public: */ */ unsigned int vertexDegree(Dart d) ; unsigned int vertexDegree(Dart d) ; //! Check number of edges of the vertex of d with given parameter /*! @param d a dart * @param vd degree to compare with * @return negative/null/positive if vertex degree is less/equal/greater than given degree */ int checkVertexDegree(Dart d, unsigned int vd); //! tell if the vertex of d is on the boundary of the map //! tell if the vertex of d is on the boundary of the map /*! @param d a dart /*! @param d a dart */ */ ... @@ -326,6 +333,13 @@ public: ... @@ -326,6 +333,13 @@ public: */ */ unsigned int faceDegree(Dart d) ; unsigned int faceDegree(Dart d) ; //! Check number of edges of the face of d with given parameter /*! @param d a dart * @param vd degree to compare with * @return negative/null/positive if vertex degree is less/equal/greater than given degree */ int checkFaceDegree(Dart d, unsigned int le); /** /** * tell if the face of d is on the boundary of the map * tell if the face of d is on the boundary of the map */ */ ... @@ -348,6 +362,13 @@ public: ... @@ -348,6 +362,13 @@ public: */ */ unsigned int volumeDegree(Dart d); unsigned int volumeDegree(Dart d); //! Check number of faces of the volume of d with given parameter /*! @param d a dart * @param vd degree to compare with * @return negative/null/positive if volume degree is less/equal/greater than given degree */ int checkVolumeDegree(Dart d, unsigned int volDeg); // TODO a mettre en algo // TODO a mettre en algo /** /** * check if the mesh is triangular or not * check if the mesh is triangular or not ... ...
 ... @@ -187,6 +187,12 @@ inline unsigned int GMap2::faceDegree(Dart d) ... @@ -187,6 +187,12 @@ inline unsigned int GMap2::faceDegree(Dart d) return GMap1::cycleDegree(d) ; return GMap1::cycleDegree(d) ; } } inline int GMap2::checkFaceDegree(Dart d, unsigned int le) { return GMap1::checkCycleDegree(d,le) ; } inline bool GMap2::sameVolume(Dart d, Dart e) inline bool GMap2::sameVolume(Dart d, Dart e) { { return sameOrientedVolume(d, e) || sameOrientedVolume(beta2(d), e) ; return sameOrientedVolume(d, e) || sameOrientedVolume(beta2(d), e) ; ... ...
 ... @@ -214,6 +214,15 @@ public: ... @@ -214,6 +214,15 @@ public: */ */ unsigned int vertexDegree(Dart d) ; unsigned int vertexDegree(Dart d) ; //! Check number of edges of the vertex of d with given parameter /*! @param d a dart * @param vd degree to compare with * @return negative/null/positive if vertex degree is less/equal/greater than given degree */ int checkVertexDegree(Dart d, unsigned int vd); //! Tell if the vertex of d is on the boundary //! Tell if the vertex of d is on the boundary /*! @param d a dart /*! @param d a dart */ */ ... ...
 ... @@ -189,6 +189,13 @@ public: ... @@ -189,6 +189,13 @@ public: */ */ unsigned int cycleDegree(Dart d) ; unsigned int cycleDegree(Dart d) ; //! Check the Length of a cycle (its number of oriented edges) /*! @param d a dart of the cycle * @param degree the length to compare * @return negative/null/positive if face degree is less/equal/greater than given degree */ int checkCycleDegree(Dart d, unsigned int degree) ; /** /** * check if the cycle of d is a triangle * check if the cycle of d is a triangle * @return a boolean indicating if the cycle is a triangle * @return a boolean indicating if the cycle is a triangle ... ...
 ... @@ -231,6 +231,21 @@ inline unsigned int Map1::cycleDegree(Dart d) ... @@ -231,6 +231,21 @@ inline unsigned int Map1::cycleDegree(Dart d) return count ; return count ; } } inline int Map1::checkCycleDegree(Dart d, unsigned int degree) { unsigned int count = 0 ; Dart it = d ; do { ++count ; it = phi1(it) ; } while ((count<=degree) && (it != d)) ; return count-degree; } inline bool Map1::isCycleTriangle(Dart d) inline bool Map1::isCycleTriangle(Dart d) { { return (phi1(d) != d) && (phi1(phi1(phi1(d))) == d) ; return (phi1(d) != d) && (phi1(phi1(phi1(d))) == d) ; ... ...
 ... @@ -333,6 +333,13 @@ public: ... @@ -333,6 +333,13 @@ public: */ */ unsigned int vertexDegree(Dart d) ; unsigned int vertexDegree(Dart d) ; //! Check number of edges of the vertex of d with given parameter /*! @param d a dart * @param vd degree to compare with * @return negative/null/positive if vertex degree is less/equal/greater than given degree */ int checkVertexDegree(Dart d, unsigned int vd); //! Tell if the vertex of d is on the boundary of the map //! Tell if the vertex of d is on the boundary of the map /*! @param d a dart /*! @param d a dart */ */ ... @@ -378,6 +385,13 @@ public: ... @@ -378,6 +385,13 @@ public: */ */ unsigned int faceDegree(Dart d) ; unsigned int faceDegree(Dart d) ; //! Check number of edges of the face of d with given parameter /*! @param d a dart * @param vd degree to compare with * @return negative/null/positive if vertex degree is less/equal/greater than given degree */ int checkFaceDegree(Dart d, unsigned int le); /** /** * tell if the face of d is on the boundary of the map * tell if the face of d is on the boundary of the map */ */ ... @@ -400,6 +414,13 @@ public: ... @@ -400,6 +414,13 @@ public: */ */ unsigned int volumeDegree(Dart d); unsigned int volumeDegree(Dart d); //! Check number of faces of the volume of d with given parameter /*! @param d a dart * @param vd degree to compare with * @return negative/null/positive if volume degree is less/equal/greater than given degree */ int checkVolumeDegree(Dart d, unsigned int volDeg); // TODO a mettre en algo // TODO a mettre en algo /** /** * check if the mesh is triangular or not * check if the mesh is triangular or not ... ...
 ... @@ -184,6 +184,13 @@ inline unsigned int Map2::faceDegree(Dart d) ... @@ -184,6 +184,13 @@ inline unsigned int Map2::faceDegree(Dart d) return Map1::cycleDegree(d) ; return Map1::cycleDegree(d) ; } } inline int Map2::checkFaceDegree(Dart d, unsigned int le) { return Map1::checkCycleDegree(d,le) ; } inline bool Map2::sameVolume(Dart d, Dart e) inline bool Map2::sameVolume(Dart d, Dart e) { { return sameOrientedVolume(d, e) ; return sameOrientedVolume(d, e) ; ... ...
 ... @@ -301,6 +301,15 @@ public: ... @@ -301,6 +301,15 @@ public: */ */ unsigned int vertexDegree(Dart d) ; unsigned int vertexDegree(Dart d) ; //! Check number of edges of the vertex of d with given parameter /*! @param d a dart * @param vd degree to compare with * @return negative/null/positive if vertex degree is less/equal/greater than given degree */ int checkVertexDegree(Dart d, unsigned int vd); //! Compute the number of edges of the vertex of d on the boundary //! Compute the number of edges of the vertex of d on the boundary /*! @param d a dart /*! @param d a dart */ */ ... ...
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!