return 0.;
}
+//=======================================================================
+//function : GetValue
+//purpose :
+//=======================================================================
+
+double Volume::GetValue( long theElementId )
+{
+ if ( theElementId && myMesh ) {
+ SMDS_VolumeTool aVolumeTool;
+ if ( aVolumeTool.Set( myMesh->FindElement( theElementId )))
+ return aVolumeTool.GetSize();
+ }
+ return 0;
+}
+
+//=======================================================================
+//function : GetBadRate
+//purpose : meaningless as it is not quality control functor
+//=======================================================================
+
+double Volume::GetBadRate( double Value, int /*nbNodes*/ ) const
+{
+ return Value;
+}
+
+//=======================================================================
+//function : GetType
+//purpose :
+//=======================================================================
+
+SMDSAbs_ElementType Volume::GetType() const
+{
+ return SMDSAbs_Volume;
+}
+
+
/*
Class : MinimumAngle
Description : Functor for calculation of minimum angle
// Compute lengths of the sides
- double aLen[ nbNodes ];
+ //double aLen[ nbNodes ];
+#ifndef WNT
+ double aLen [nbNodes];
+#else
+ double* aLen = (double *)new double[nbNodes];
+#endif
+
for ( int i = 0; i < nbNodes - 1; i++ )
aLen[ i ] = getDistance( P( i + 1 ), P( i + 2 ) );
aLen[ nbNodes - 1 ] = getDistance( P( 1 ), P( nbNodes ) );
aMinLen = Min( aMinLen, aLen[ i ] );
aMaxLen = Max( aMaxLen, aLen[ i ] );
}
+#ifdef WNT
+ delete [] aLen;
+#endif
if ( aMinLen <= Precision::Confusion() )
return 0.;
double Area::GetBadRate( double Value, int /*nbNodes*/ ) const
{
+ // meaningless as it is not quality control functor
return Value;
}
double Length::GetBadRate( double Value, int /*nbNodes*/ ) const
{
+ // meaningless as it is not quality control functor
return Value;
}
double Length2D::GetBadRate( double Value, int /*nbNodes*/ ) const
{
+ // meaningless as it is not quality control functor
return Value;
}
double MultiConnection::GetBadRate( double Value, int /*nbNodes*/ ) const
{
+ // meaningless as it is not quality control functor
return Value;
}
double MultiConnection2D::GetBadRate( double Value, int /*nbNodes*/ ) const
{
+ // meaningless as it is not quality control functor
return Value;
}
return false;
int nbNodes = aFace->NbNodes();
- const SMDS_MeshNode* aNodes[ nbNodes ];
+ //const SMDS_MeshNode* aNodes[ nbNodes ];
+#ifndef WNT
+ const SMDS_MeshNode* aNodes [nbNodes];
+#else
+ const SMDS_MeshNode** aNodes = (const SMDS_MeshNode **)new SMDS_MeshNode*[nbNodes];
+#endif
int i = 0;
SMDS_ElemIteratorPtr anIter = aFace->nodesIterator();
if ( anIter != 0 )
}
for ( int i = 0; i < nbNodes - 1; i++ )
- if ( IsFreeEdge( &aNodes[ i ], theId ) )
+ if ( IsFreeEdge( &aNodes[ i ], theId ) ) {
+#ifdef WNT
+ delete [] aNodes;
+#endif
return true;
+ }
aNodes[ 1 ] = aNodes[ nbNodes - 1 ];
-
- return IsFreeEdge( &aNodes[ 0 ], theId );
-
+ const Standard_Boolean isFree = IsFreeEdge( &aNodes[ 0 ], theId );
+#ifdef WNT
+ delete [] aNodes;
+#endif
+// return
+ return isFree;
}
SMDSAbs_ElementType FreeEdges::GetType() const
{
ManifoldPart::TVectorOfLink aLinks;
getLinks( theNextFace, aLinks );
- int aNbLink = aLinks.size();
+ int aNbLink = (int)aLinks.size();
for ( int i = 0; i < aNbLink; i++ )
{
ManifoldPart::Link aLink = aLinks[ i ];