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