cgma
|
00001 //- Class: PeriodicParamTool 00002 //------------------------------------------------------------------------- 00003 // Filename : PeriodicParamTool.cpp 00004 // 00005 // Purpose : Handles surfaces that have a periodic parameterization 00006 // Uses, but modifies, the underlying engine parameterization 00007 // 00008 // Creator : Ray J. Meyers 00009 // 00010 // Creation Date : 12/15/2008 00011 // 00012 // Owner : Ray J. Meyers 00013 //------------------------------------------------------------------------- 00014 00015 #ifndef PERIODIC_PARAM_TOOL_HPP 00016 #define PERIODIC_PARAM_TOOL_HPP 00017 00018 #include "ParamTool.hpp" 00019 #include "CGMGeomConfigure.h" 00020 00021 class Surface; 00022 class CubitVector; 00023 class CubitNode; 00024 template <class X> class DLIList; 00025 00026 class CUBIT_GEOM_EXPORT PeriodicParamTool : public ParamTool 00027 { 00028 public: 00029 00030 //- constructor 00031 PeriodicParamTool(Surface *surf); 00032 00033 //- destructor 00034 ~PeriodicParamTool(); 00035 00036 CubitStatus set_up_space(double u_period, double v_period, double u_offset, double v_offset); 00037 00038 CubitStatus transform_to_uv(const CubitVector &xyz_location, CubitVector &uv_location); 00039 00040 CubitStatus transform_to_xyz(CubitVector &xyz_location, const CubitVector &uv_location); 00041 00042 void mirror_surface( bool true_false); 00043 00044 CubitStatus uv_derivitives( double u_param, double v_param, 00045 CubitVector &du, CubitVector &dv ); 00046 00047 private: 00048 00049 Surface *refSurf; 00050 double uPeriod; 00051 double vPeriod; 00052 double uOffset; 00053 double vOffset; 00054 bool mirrorSurface; 00055 00056 //- reference surface 00057 }; 00058 00059 #endif // PARAM_TOOL_HPP 00060