cgma
SurfParamTool.hpp
Go to the documentation of this file.
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 &center);  // 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 &center);  // 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 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines