38 #include "VertexMover.hpp"
39 #include "MeshSet.hpp"
40 #include "MsqTimer.hpp"
41 #include "MsqDebug.hpp"
123 bool next_patch =
true;
124 PatchData local_patch_data;
125 PatchData* patch_data=0;
134 patch_data = &local_patch_data;
151 inner_crit->set_debug_output_level(3);
159 outer_crit->reset_outer(ms,
objFunc, err);
163 while (!outer_crit->terminate())
167 next_patch = ms.get_next_patch( *patch_data,
this, err );
182 outer_crit->reset_patch( *patch_data, err );
185 inner_crit->reset_inner( *patch_data,
objFunc, err );
188 inner_crit->reset_patch( *patch_data, err );
193 if (!inner_crit->terminate())
202 outer_crit->accumulate_patch( *patch_data, err );
205 inner_crit->cull_vertices( *patch_data,
objFunc, err );
208 patch_data->update_mesh( err );
216 next_patch = ms.get_next_patch( *patch_data,
this, err );
220 }
while (next_patch);
231 outer_crit->accumulate_outer( ms, err );
238 outer_crit->cleanup(ms,err);
239 inner_crit->cleanup(ms,err);
virtual void terminate_mesh_iteration(PatchData &, MsqError &err)=0
void set_mesh_set(MeshSet *ms)
virtual double loop_over_mesh(MeshSet &ms, MsqError &err)
Improves the quality of the MeshSet, calling some methods specified in a class derived from VertexMov...
#define MSQ_CHKERR(err)
Mesquite's Error Checking macro.
#define MSQ_SETERR(err)
Macro to set error - use err.clear() to clear.
ObjectiveFunction * objFunc
PatchData::PatchType get_patch_type()
Returns the Patch Type.
virtual void initialize(PatchData &pd, MsqError &err)=0
TerminationCriterion * get_inner_termination_criterion()
return the inner termination criterion pointer
TerminationCriterion * get_outer_termination_criterion()
return the outer termination criterion pointer
PatchData * get_global_patch()
Returns the Global Patch.
virtual void optimize_vertex_positions(PatchData &pd, MsqError &err)=0
object is in an invalid state
virtual void initialize_mesh_iteration(PatchData &pd, MsqError &err)=0