cgma
|
00001 //- Class: LoopParamTool 00002 //------------------------------------------------------------------------- 00003 // Filename : LoopParamTool.hpp 00004 // 00005 // Purpose : Surface Parameterization for mesh by triangulation flattening specific for Planar surfaces 00006 // 00007 // Creator : Shiraj Khan 00008 // 00009 // Creation Date : 1/21/2003 00010 // 00011 // Owner : Shiraj Khan 00012 //------------------------------------------------------------------------- 00013 00014 #ifndef LOOP_PARAM_TOOL_HPP 00015 #define LOOP_PARAM_TOOL_HPP 00016 00017 #include "ParamTool.hpp" 00018 #include "CubitVector.hpp" 00019 #include "CubitPoint.hpp" 00020 #include "TDVector.hpp" 00021 00022 class LoopParamTool : public ParamTool 00023 { 00024 public: 00025 00026 //- constructor 00027 LoopParamTool(); 00028 00029 //- deconstructor 00030 ~LoopParamTool(); 00031 00032 virtual CubitStatus set_up_space(); 00033 virtual CubitStatus transform_to_uv(const CubitVector &, CubitVector &); 00034 virtual CubitStatus transform_to_xyz(CubitVector &, const CubitVector &); 00035 //These functions are required because this is a child of ParamTool. 00036 //They do nothing. 00037 00038 CubitStatus transform_loopspoints_to_uv(DLIList<DLIList<CubitPoint *>*> &points); 00047 00048 CubitStatus new_space_LoopParam( DLIList<DLIList<CubitPoint *>*> &loop_cubit_points, 00049 CubitVector* normal = NULL); 00054 00055 00056 private: 00057 00058 //- reference surface 00059 CubitVector Du; 00060 CubitVector Dv; 00061 CubitVector uvCenter; 00062 double a, b, c, d; 00063 //- transformation info - used with set_up_space 00064 00065 CubitStatus check_selfintersecting_coincident_edges(DLIList<DLIList<CubitPoint *>*> &loop_cubit_points); 00070 00071 CubitStatus transform_to_bestfit_plane(DLIList<DLIList<CubitPoint *>*> &loop_cubit_points); 00076 00077 CubitStatus transform_to_uv_local(CubitVector &xyz_location, CubitVector &uv_location); 00081 00082 CubitStatus transform_to_xyz_local(CubitVector &xyz_location, CubitVector &uv_location); 00086 00087 bool double_equal(double val, double equal_to); 00091 }; 00092 00093 #endif // LOOP_PARAM_TOOL_HPP 00094