//=============================================================================
#ifndef GRAPHENE_TEETH_CORRECTION_HELPER_H
#define GRAPHENE_TEETH_CORRECTION_HELPER_H
//=============================================================================

//== INCLUDES =================================================================

#include <graphene/character/data_structure/Character.h>
#include <graphene/character/scene_graph/Character_node.h>

//== NAMESPACE ================================================================


namespace graphene {
namespace teeth_correction_helper {



bool correct_teeth(character::Character& inout_character,
                   const std::string& s_bodymesh,
                   const std::string& s_teeth_up,
                   const std::string& s_teeth_down,
                   const std::string &fn_sel_mouth_region);

bool delete_teeth_vertices(scene_graph::Character_node* character_node,
                           const std::string& s_bodymesh,
                           const std::string& s_teeth_up,
                           const std::string& fn_sel_teeth_up_vertices,
                           const std::string& fn_sel_oralcavity_indices);

bool squash_teeth_up_vertex_ring(character::Character& character,
                                 const std::string& s_teeth_up,
                                 const std::string& fn_sel_teeth_up_vertices_to_squash);

//=============================================================================
} // namespace teeth_helper
} // namespace graphene
//=============================================================================
#endif
//=============================================================================

