Added various missing RequireXXX
This commit is contained in:
parent
d4293c7d78
commit
4860a27a15
|
@ -70,17 +70,18 @@ static void VertexConstant(MeshType &m, VertexQualityType q)
|
||||||
*/
|
*/
|
||||||
static void VertexValence(UpdateMeshType &m)
|
static void VertexValence(UpdateMeshType &m)
|
||||||
{
|
{
|
||||||
VertexConstant(m,0);
|
tri::RequirePerVertexQuality(m);
|
||||||
for (size_t i=0;i<m.face.size();i++)
|
VertexConstant(m,0);
|
||||||
|
for (size_t i=0;i<m.face.size();i++)
|
||||||
|
{
|
||||||
|
if (m.face[i].IsD())continue;
|
||||||
|
|
||||||
|
for (int j=0;j<m.face[i].VN();j++)
|
||||||
{
|
{
|
||||||
if (m.face[i].IsD())continue;
|
VertexType *v=m.face[i].V(j);
|
||||||
|
v->Q()+=1;
|
||||||
for (int j=0;j<m.face[i].VN();j++)
|
|
||||||
{
|
|
||||||
VertexType *v=m.face[i].V(j);
|
|
||||||
v->Q()+=1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Clamp each vertex of the mesh with a range of values.
|
/** Clamp each vertex of the mesh with a range of values.
|
||||||
|
@ -164,6 +165,7 @@ static void VertexFromFace( MeshType &m, bool areaWeighted=true)
|
||||||
template <class HandleScalar>
|
template <class HandleScalar>
|
||||||
static void VertexFromAttributeHandle(MeshType &m, typename MeshType::template PerVertexAttributeHandle<HandleScalar> &h)
|
static void VertexFromAttributeHandle(MeshType &m, typename MeshType::template PerVertexAttributeHandle<HandleScalar> &h)
|
||||||
{
|
{
|
||||||
|
tri::RequirePerVertexQuality(m);
|
||||||
for(VertexIterator vi=m.vert.begin();vi!=m.vert.end();++vi)
|
for(VertexIterator vi=m.vert.begin();vi!=m.vert.end();++vi)
|
||||||
if(!(*vi).IsD())
|
if(!(*vi).IsD())
|
||||||
(*vi).Q()=VertexQualityType(h[vi]);
|
(*vi).Q()=VertexQualityType(h[vi]);
|
||||||
|
@ -172,6 +174,7 @@ static void VertexFromAttributeHandle(MeshType &m, typename MeshType::template P
|
||||||
template <class HandleScalar>
|
template <class HandleScalar>
|
||||||
static void FaceFromAttributeHandle(MeshType &m, typename MeshType::template PerFaceAttributeHandle<HandleScalar> &h)
|
static void FaceFromAttributeHandle(MeshType &m, typename MeshType::template PerFaceAttributeHandle<HandleScalar> &h)
|
||||||
{
|
{
|
||||||
|
tri::RequirePerFaceQuality(m);
|
||||||
for(FaceIterator fi=m.face.begin();fi!=m.face.end();++fi) if(!(*fi).IsD())
|
for(FaceIterator fi=m.face.begin();fi!=m.face.end();++fi) if(!(*fi).IsD())
|
||||||
(*fi).Q() =FaceQualityType(h[fi]);
|
(*fi).Q() =FaceQualityType(h[fi]);
|
||||||
}
|
}
|
||||||
|
@ -191,6 +194,7 @@ static void FaceFromVertex( MeshType &m)
|
||||||
|
|
||||||
static void VertexFromPlane(MeshType &m, const Plane3<ScalarType> &pl)
|
static void VertexFromPlane(MeshType &m, const Plane3<ScalarType> &pl)
|
||||||
{
|
{
|
||||||
|
tri::RequirePerVertexQuality(m);
|
||||||
for(VertexIterator vi=m.vert.begin();vi!=m.vert.end();++vi) if(!(*vi).IsD())
|
for(VertexIterator vi=m.vert.begin();vi!=m.vert.end();++vi) if(!(*vi).IsD())
|
||||||
(*vi).Q() =SignedDistancePlanePoint(pl,(*vi).cP());
|
(*vi).Q() =SignedDistancePlanePoint(pl,(*vi).cP());
|
||||||
}
|
}
|
||||||
|
@ -306,6 +310,8 @@ static void VertexFromCurvednessCurvatureDir(MeshType &m)
|
||||||
|
|
||||||
static void VertexFromAbsoluteCurvature(MeshType &m)
|
static void VertexFromAbsoluteCurvature(MeshType &m)
|
||||||
{
|
{
|
||||||
|
tri::RequirePerVertexQuality(m);
|
||||||
|
tri::RequirePerVertexCurvature(m);
|
||||||
VertexIterator vi;
|
VertexIterator vi;
|
||||||
for(vi=m.vert.begin();vi!=m.vert.end();++vi) if(!(*vi).IsD())
|
for(vi=m.vert.begin();vi!=m.vert.end();++vi) if(!(*vi).IsD())
|
||||||
{
|
{
|
||||||
|
@ -325,6 +331,8 @@ static void VertexFromAbsoluteCurvature(MeshType &m)
|
||||||
*/
|
*/
|
||||||
static void VertexFromRMSCurvature(MeshType &m)
|
static void VertexFromRMSCurvature(MeshType &m)
|
||||||
{
|
{
|
||||||
|
tri::RequirePerVertexQuality(m);
|
||||||
|
tri::RequirePerVertexCurvature(m);
|
||||||
VertexIterator vi;
|
VertexIterator vi;
|
||||||
for(vi=m.vert.begin();vi!=m.vert.end();++vi) if(!(*vi).IsD())
|
for(vi=m.vert.begin();vi!=m.vert.end();++vi) if(!(*vi).IsD())
|
||||||
(*vi).Q() = math::Sqrt(math::Abs( 4*(*vi).Kh()*(*vi).Kh() - 2*(*vi).Kg()));
|
(*vi).Q() = math::Sqrt(math::Abs( 4*(*vi).Kh()*(*vi).Kh() - 2*(*vi).Kg()));
|
||||||
|
@ -338,6 +346,8 @@ static void VertexFromRMSCurvature(MeshType &m)
|
||||||
*/
|
*/
|
||||||
static void FaceSaturate(MeshType &m, FaceQualityType gradientThr=1.0)
|
static void FaceSaturate(MeshType &m, FaceQualityType gradientThr=1.0)
|
||||||
{
|
{
|
||||||
|
tri::RequirePerFaceQuality(m);
|
||||||
|
tri::RequireFFAdjacency(m);
|
||||||
UpdateFlags<MeshType>::FaceClearV(m);
|
UpdateFlags<MeshType>::FaceClearV(m);
|
||||||
std::stack<FacePointer> st;
|
std::stack<FacePointer> st;
|
||||||
|
|
||||||
|
@ -410,6 +420,9 @@ static void FaceSaturate(MeshType &m, FaceQualityType gradientThr=1.0)
|
||||||
*/
|
*/
|
||||||
static void VertexSaturate(MeshType &m, ScalarType gradientThr=1.0)
|
static void VertexSaturate(MeshType &m, ScalarType gradientThr=1.0)
|
||||||
{
|
{
|
||||||
|
tri::RequirePerVertexQuality(m);
|
||||||
|
tri::RequireVFAdjacency(m);
|
||||||
|
|
||||||
UpdateFlags<MeshType>::VertexClearV(m);
|
UpdateFlags<MeshType>::VertexClearV(m);
|
||||||
std::stack<VertexPointer> st;
|
std::stack<VertexPointer> st;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue