cgma
|
#include <PeriodicParamTool.hpp>
Public Member Functions | |
PeriodicParamTool (Surface *surf) | |
~PeriodicParamTool () | |
CubitStatus | set_up_space (double u_period, double v_period, double u_offset, double v_offset) |
CubitStatus | transform_to_uv (const CubitVector &xyz_location, CubitVector &uv_location) |
CubitStatus | transform_to_xyz (CubitVector &xyz_location, const CubitVector &uv_location) |
void | mirror_surface (bool true_false) |
CubitStatus | uv_derivitives (double u_param, double v_param, CubitVector &du, CubitVector &dv) |
Private Attributes | |
Surface * | refSurf |
double | uPeriod |
double | vPeriod |
double | uOffset |
double | vOffset |
bool | mirrorSurface |
Definition at line 26 of file PeriodicParamTool.hpp.
PeriodicParamTool::PeriodicParamTool | ( | Surface * | surf | ) |
Definition at line 28 of file PeriodicParamTool.cpp.
Definition at line 46 of file PeriodicParamTool.cpp.
{}
void PeriodicParamTool::mirror_surface | ( | bool | true_false | ) |
Definition at line 134 of file PeriodicParamTool.cpp.
{ mirrorSurface = true_false; if (mirrorSurface) PRINT_INFO("Loops appear backwards, mirroring surface...\n"); }
CubitStatus PeriodicParamTool::set_up_space | ( | double | u_period, |
double | v_period, | ||
double | u_offset, | ||
double | v_offset | ||
) |
Definition at line 54 of file PeriodicParamTool.cpp.
{ // store the u and periods uPeriod = u_period; vPeriod = v_period; uOffset = u_offset; vOffset = v_offset; CubitStatus rv = CUBIT_SUCCESS; return rv; }
CubitStatus PeriodicParamTool::transform_to_uv | ( | const CubitVector & | xyz_location, |
CubitVector & | uv_location | ||
) | [virtual] |
Implements ParamTool.
Definition at line 75 of file PeriodicParamTool.cpp.
{ double u,v; CubitStatus rv = refSurf->u_v_from_position(xyz_location, u, v); // offset values to avoid parameter discontinuity if (uPeriod && u < uOffset) { u += uPeriod; } // mirror surface if required to get correct loop orientation if (mirrorSurface) { u = -u; } if (vPeriod && v < vOffset) { v += vPeriod; } uv_location.set(u,v,1.0); return rv; }
CubitStatus PeriodicParamTool::transform_to_xyz | ( | CubitVector & | xyz_location, |
const CubitVector & | uv_location | ||
) | [virtual] |
Implements ParamTool.
Definition at line 112 of file PeriodicParamTool.cpp.
{ double u = uv_location.x(); if (mirrorSurface) { u = -u; } if (u > uPeriod) { u = u - uPeriod; } double v = uv_location.y(); if (v > vPeriod) { v = v - vPeriod; } xyz_location = refSurf->position_from_u_v(u,v); return CUBIT_SUCCESS; }
CubitStatus PeriodicParamTool::uv_derivitives | ( | double | u_param, |
double | v_param, | ||
CubitVector & | du, | ||
CubitVector & | dv | ||
) | [virtual] |
Reimplemented from ParamTool.
Definition at line 142 of file PeriodicParamTool.cpp.
{ if (mirrorSurface) u_param = -u_param; if (u_param > uPeriod) u_param = u_param-uPeriod; if (v_param > vPeriod) v_param = v_param-vPeriod; refSurf->uv_derivitives(u_param, v_param, du, dv); return CUBIT_SUCCESS; }
bool PeriodicParamTool::mirrorSurface [private] |
Definition at line 54 of file PeriodicParamTool.hpp.
Surface* PeriodicParamTool::refSurf [private] |
Definition at line 49 of file PeriodicParamTool.hpp.
double PeriodicParamTool::uOffset [private] |
Definition at line 52 of file PeriodicParamTool.hpp.
double PeriodicParamTool::uPeriod [private] |
Definition at line 50 of file PeriodicParamTool.hpp.
double PeriodicParamTool::vOffset [private] |
Definition at line 53 of file PeriodicParamTool.hpp.
double PeriodicParamTool::vPeriod [private] |
Definition at line 51 of file PeriodicParamTool.hpp.