Пример #1
0
/*!
  the shear and size of a quad

  product of shear and relative size
*/
C_FUNC_DEF VERDICT_REAL v_quad_shear_and_size( int num_nodes, VERDICT_REAL coordinates[][3] )
{
  double shear, size;
  shear = v_quad_shear( num_nodes, coordinates );
  size = v_quad_relative_size_squared( num_nodes, coordinates );

  double shear_and_size = shear * size;

  if( shear_and_size > 0 )
    return (VERDICT_REAL) VERDICT_MIN( shear_and_size, VERDICT_DBL_MAX );
  return (VERDICT_REAL) VERDICT_MAX( shear_and_size, -VERDICT_DBL_MAX );

}
double avtVMetricRelativeSize::Metric (double coords[][3], int type)
{
#ifdef HAVE_VERDICT 
    switch (type)
    {
        case VTK_HEXAHEDRON:
        case VTK_VOXEL:
            return v_hex_relative_size_squared(8, coords);
        
        case VTK_TETRA:
            return v_tet_relative_size_squared(4,coords);

        case VTK_QUAD:
            return v_quad_relative_size_squared(4, coords);
            
        case VTK_TRIANGLE:
            return v_tri_relative_size_squared(3, coords);
    }
#endif
    return -1;
}