You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
2.4 KiB
92 lines
2.4 KiB
//--------------------------------------------------------------------------------------------------
|
|
// qhConvex.inl
|
|
//
|
|
// Copyright(C) 2011 by D. Gregorius. All rights reserved.
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
// qhConvex
|
|
//--------------------------------------------------------------------------------------------------
|
|
inline qhVector3 qhConvex::GetCentroid( void ) const
|
|
{
|
|
qhVector3 Centroid = QH_VEC3_ZERO;
|
|
if ( !mVertexList.Empty() )
|
|
{
|
|
int VertexCount = 0;
|
|
for ( const qhVertex* Vertex = mVertexList.Begin(); Vertex != mVertexList.End(); Vertex = Vertex->Next )
|
|
{
|
|
Centroid += Vertex->Position;
|
|
VertexCount++;
|
|
}
|
|
|
|
Centroid /= qhReal( VertexCount );
|
|
}
|
|
|
|
return Centroid;
|
|
}
|
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
inline int qhConvex::GetVertexCount( void ) const
|
|
{
|
|
return mVertexList.Size();
|
|
}
|
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
inline int qhConvex::GetEdgeCount( void ) const
|
|
{
|
|
int Count = 0;
|
|
for ( const qhFace* Face = mFaceList.Begin(); Face != mFaceList.End(); Face = Face->Next )
|
|
{
|
|
qhHalfEdge* Edge = Face->Edge;
|
|
QH_ASSERT( Edge != NULL );
|
|
|
|
do
|
|
{
|
|
Count += 1;
|
|
Edge = Edge->Next;
|
|
}
|
|
while ( Edge != Face->Edge );
|
|
}
|
|
|
|
return Count;
|
|
}
|
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
inline int qhConvex::GetFaceCount( void ) const
|
|
{
|
|
return mFaceList.Size();
|
|
}
|
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
inline const qhList< qhVertex >& qhConvex::GetVertexList( void ) const
|
|
{
|
|
return mVertexList;
|
|
}
|
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
inline const qhList< qhFace >& qhConvex::GetFaceList( void ) const
|
|
{
|
|
return mFaceList;
|
|
}
|
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
inline int qhConvex::GetIterationCount( void ) const
|
|
{
|
|
return mIterations.Size();
|
|
}
|
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
inline const qhIteration& qhConvex::GetIteration( int i ) const
|
|
{
|
|
return mIterations[ i ];
|
|
}
|
|
|
|
|