MeshKit
1.0
|
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