cgma
|
00001 //- Class: SurfParamTool 00002 //------------------------------------------------------------------------- 00003 // Filename : SurfParamTool.hpp 00004 // 00005 // Purpose : This is the generic version of ParamTool when the 00006 // geometry engine has a sufficient parameterization. 00007 // It uses the tool's existing functions to get transform 00008 // between uv and xyz spaces. 00009 // 00010 // Creator : Christopher Hynes 00011 // 00012 // Creation Date : 7/10/2002 00013 // 00014 // Owner : Christopher Hynes 00015 //------------------------------------------------------------------------- 00016 00017 #ifndef SURF_PARAM_TOOL_HPP 00018 #define SURF_PARAM_TOOL_HPP 00019 00020 #include "ParamTool.hpp" 00021 #include "CGMGeomConfigure.h" 00022 00023 class Surface; 00024 class CubitVector; 00025 template <class X> class DLIList; 00026 00028 class CUBIT_GEOM_EXPORT SurfParamTool : public ParamTool 00029 { 00030 public: 00031 00032 //- constructor 00033 SurfParamTool(Surface *surf); 00034 00035 //- deconstructor 00036 ~SurfParamTool(); 00037 00038 CubitStatus set_up_space(void); 00039 00040 CubitStatus transform_to_uv(const CubitVector &xyz_location, CubitVector &uv_location); 00041 00042 CubitStatus transform_to_xyz(CubitVector &xyz_location, const CubitVector &uv_location); 00043 00044 CubitStatus uv_derivitives( double u_param, double v_param, 00045 CubitVector &du, CubitVector &dv ); 00046 00047 static CubitStatus circumcenter(double u0, double v0, 00048 double u1, double v1, 00049 double u2, double v2, 00050 CubitVector ¢er); // temp function to be moved elsewhere 00051 00052 private: 00053 00054 Surface *refSurf; 00055 //- reference surface 00056 }; 00057 00058 class Surface; 00059 class CubitVector; 00060 template <class X> class DLIList; 00061 00063 class CUBIT_GEOM_EXPORT TestParamTool : public ParamTool 00064 { 00065 public: 00066 00067 //- constructor 00068 TestParamTool(); 00069 00070 //- deconstructor 00071 ~TestParamTool(); 00072 00073 CubitStatus set_up_space(void); 00074 00075 CubitStatus transform_to_uv(const CubitVector &xyz_location, CubitVector &uv_location); 00076 00077 CubitStatus transform_to_xyz(CubitVector &xyz_location, const CubitVector &uv_location); 00078 00079 CubitStatus uv_derivitives( double u_param, double v_param, 00080 CubitVector &du, CubitVector &dv ); 00081 00082 static CubitStatus circumcenter(double u0, double v0, 00083 double u1, double v1, 00084 double u2, double v2, 00085 CubitVector ¢er); // temp function to be moved elsewhere 00086 00087 private: 00088 00089 // Surface *refSurf; 00090 //- reference surface 00091 00092 double uRange, vRange; 00093 double zDepth; 00094 00095 double xMin, yMin, xMax, yMax; 00096 00097 }; 00098 00099 #endif // 00100