internal void ReplaceVertex( PMFaceVertex vold, PMFaceVertex vnew )
{
Debug.Assert( vold == vertex[ 0 ] || vold == vertex[ 1 ] || vold == vertex[ 2 ] );
Debug.Assert( vnew != vertex[ 0 ] && vnew != vertex[ 1 ] && vnew != vertex[ 2 ] );
if ( vold == vertex[ 0 ] )
{
vertex[ 0 ] = vnew;
}
else if ( vold == vertex[ 1 ] )
{
vertex[ 1 ] = vnew;
}
else
{
vertex[ 2 ] = vnew;
}
vold.commonVertex.faces.Remove( this );
vnew.commonVertex.faces.Add( this );
for ( int i = 0; i < 3; i++ )
{
vold.commonVertex.RemoveIfNonNeighbor( vertex[ i ].commonVertex );
vertex[ i ].commonVertex.RemoveIfNonNeighbor( vold.commonVertex );
}
for ( int i = 0; i < 3; i++ )
{
Debug.Assert( vertex[ i ].commonVertex.faces.Contains( this ) );
for ( int j = 0; j < 3; j++ )
if ( i != j )
vertex[ i ].commonVertex.AddIfNonNeighbor( vertex[ j ].commonVertex );
}
ComputeNormal();
}
internal bool HasCommonVertex( PMVertex v )