36 #include "Vector3D.hpp"
37 #include "QualityMetric.hpp"
38 #include "MsqVertex.hpp"
39 #include "PatchData.hpp"
40 #include "MsqDebug.hpp"
42 #ifdef MSQ_USE_OLD_STD_HEADERS
50 using namespace Mesquite;
65 vector<size_t> adj_verts;
68 int num_sample_points=adj_verts.size();
69 double *metric_values=
new double[num_sample_points];
74 double temp_length=0.0;
75 double temp_first=0.0;
76 double temp_second=0.0;
79 while(!adj_verts.empty()){
80 other_vert=adj_verts.back();
82 edg[0]=verts[this_vert][0]-verts[other_vert][0];
83 edg[1]=verts[this_vert][1]-verts[other_vert][1];
84 edg[2]=verts[this_vert][2]-verts[other_vert][2];
88 temp_first = temp_length -
lowVal;
89 temp_first = fabs(temp_first) - (temp_first);
90 temp_first*=temp_first;
92 temp_second =
highVal - temp_length;
93 temp_second = fabs(temp_second) - (temp_second);
94 temp_second*=temp_second;
96 metric_values[point_counter]=temp_first+temp_second;
103 delete[] metric_values;
#define MSQ_ERRZERO(err)
Return zero/NULL on error.
bool evaluate_vertex(PatchData &pd, MsqVertex *vert, double &fval, MsqError &err)
Used to hold the error state and return it to the application.
Vector3D is the object that effeciently stores information about about three-deminsional vectors...
size_t get_vertex_index(MsqVertex *vertex)
void get_adjacent_vertex_indices(size_t vertex_index, msq_std::vector< size_t > &vert_indices, MsqError &err)
const MsqVertex * get_vertex_array(MsqError &err) const
Returns a pointer to the start of the vertex array.
double average_metrics(const double metric_values[], const int &num_values, MsqError &err)
average_metrics takes an array of length num_values and averages the contents using averaging method ...
MsqVertex is the Mesquite object that stores information about the vertices in the mesh...