MeshKit  1.0
CAMALCurveEval.hpp
Go to the documentation of this file.
00001 #ifndef MESHKIT_CAMAL_CURVE_EVAL_HPP
00002 #define MESHKIT_CAMAL_CURVE_EVAL_HPP
00003 
00004 #include "CMLCurveEval.hpp"
00005 
00006 namespace MeshKit 
00007 {
00008 
00009 class ModelEnt;
00010     
00013 class CAMALCurveEval : public ::CMLCurveEval
00014 {
00015 public:
00017   CAMALCurveEval(ModelEnt *me) 
00018           : modelEnt(me)
00019       {}
00020 
00022   virtual ~CAMALCurveEval()
00023       {}
00024   
00028   virtual double arc_length() = 0;
00029 
00033   virtual bool is_parametric() = 0;
00034 
00040   virtual bool is_periodic(double& period) = 0;
00041 
00049   virtual void get_param_range(double& u_start, double& u_end) = 0;
00050 
00064   virtual double u_from_arc_length(double u_root, double arc_length) = 0;
00065                
00066 
00073   virtual bool position_from_u(double u, 
00074                                double& x, double& y, double& z ) = 0;
00075 
00081   virtual void move_to_curve(double& x, double& y, double& z) = 0; 
00082   
00091   virtual double u_from_position(double x, double y, double z) = 0;
00092 
00098   virtual void start_coordinates(double& x, double& y, double& z) = 0;
00099   
00105   virtual void end_coordinates(double& x, double& y, double& z) = 0;
00106 
00107 private:
00109   ModelEnt *modelEnt;
00110 };
00111 
00112 } // namespace MeshKit
00113 
00114 #endif // CML_CURVE_EVAL_HPP
00115 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines