contrib/mul/msm/msm_reflect_shape.h
Go to the documentation of this file.
00001 #ifndef msm_reflect_shape_h_
00002 #define msm_reflect_shape_h_
00003 //:
00004 // \file
00005 // \brief Set of 2D points, stored in a vnl_vector (x0,y0,x1,y1...)
00006 // \author Tim Cootes
00007 
00008 #include <msm/msm_points.h>
00009 
00010 //: Reflect points in the line x=ax, then re-number
00011 //  On exit, new_points[i] = points[sym_pts[i]] reflected in x=ax
00012 //  \param sym_pts[i] defines the point symmetric with point i
00013 //  Renumbering necessary for symmetric shapes.  For instance,
00014 //  if reflecting a face, the left eye becomes the right eye.
00015 //  This would mangle a model, so we renumber.
00016 void msm_reflect_shape_along_x(const msm_points& points,
00017                                const vcl_vector<unsigned>& sym_pts,
00018                                msm_points& new_points,
00019                                double ax=0.0);
00020 
00021 #endif // msm_reflect_shape_h_