#include <SmoothCurve.hpp>
Public Member Functions | |
SmoothCurve (Interface *mb, EntityHandle curve, GeomTopoTool *gTool) | |
virtual | ~SmoothCurve () |
virtual double | arc_length () |
virtual bool | is_parametric () |
Get the parametric status of the curve. More... | |
virtual bool | is_periodic (double &period) |
Get the periodic status of the curve. More... | |
virtual void | get_param_range (double &u_start, double &u_end) |
Get the parameter range of the curve. More... | |
virtual double | u_from_arc_length (double u_root, double arc_length) |
Compute the parameter value at a specified distance along the curve. More... | |
virtual bool | position_from_u (double u, double &x, double &y, double &z, double *tg=NULL) |
Evaluate the curve at a specified parameter value. More... | |
virtual void | move_to_curve (double &x, double &y, double &z) |
Move a point near the curve to the closest point on the curve. More... | |
virtual double | u_from_position (double x, double y, double z, EntityHandle &v, int &indexEdge) |
Get the u parameter value on the curve closest to x,y,z and the point on the curve. More... | |
virtual void | start_coordinates (double &x, double &y, double &z) |
Get the starting point of the curve. More... | |
virtual void | end_coordinates (double &x, double &y, double &z) |
Get the ending point of the curve. More... | |
void | compute_tangents_for_each_edge () |
void | compute_control_points_on_boundary_edges (double min_dot, std::map< EntityHandle, SmoothFace * > &mapSurfaces, Tag controlPointsTag, Tag markTag) |
ErrorCode | evaluate_smooth_edge (EntityHandle eh, double &tt, CartVect &outv, CartVect &out_tangent) |
Private Attributes | |
std::vector< EntityHandle > | _entities |
double | _leng |
std::vector< double > | _fractions |
Tag | _edgeTag |
Interface * | _mb |
EntityHandle | _set |
GeomTopoTool * | _gtt |
Definition at line 29 of file SmoothCurve.hpp.
moab::SmoothCurve::SmoothCurve | ( | Interface * | mb, |
EntityHandle | curve, | ||
GeomTopoTool * | gTool | ||
) |
Definition at line 16 of file SmoothCurve.cpp.
|
virtual |
Definition at line 25 of file SmoothCurve.cpp.
|
virtual |
void moab::SmoothCurve::compute_control_points_on_boundary_edges | ( | double | min_dot, |
std::map< EntityHandle, SmoothFace * > & | mapSurfaces, | ||
Tag | controlPointsTag, | ||
Tag | markTag | ||
) |
Definition at line 428 of file SmoothCurve.cpp.
References _edgeTag, _entities, _fractions, _gtt, _leng, _mb, _set, ErrorCode, moab::Interface::get_connectivity(), moab::Interface::get_coords(), moab::Interface::get_entities_by_type(), moab::GeomTopoTool::get_senses(), moab::CartVect::length(), MB_SUCCESS, MB_TYPE_DOUBLE, MBEDGE, moab::Interface::tag_get_data(), moab::Interface::tag_get_handle(), and moab::Interface::tag_set_data().
Referenced by moab::FBEngine::initializeSmoothing().
void moab::SmoothCurve::compute_tangents_for_each_edge | ( | ) |
Definition at line 377 of file SmoothCurve.cpp.
References _mb, _set, entities, ErrorCode, moab::Interface::get_entities_by_type(), MB_SUCCESS, MB_TYPE_DOUBLE, MBEDGE, moab::CartVect::normalize(), moab::Interface::tag_get_data(), moab::Interface::tag_get_handle(), moab::Interface::tag_set_data(), and TC.
Referenced by moab::FBEngine::initializeSmoothing().
|
virtual |
Get the ending point of the curve.
x | The x coordinate of the start point |
y | The y coordinate of the start point |
z | The z coordinate of the start point |
Definition at line 360 of file SmoothCurve.cpp.
References _entities, _mb, moab::Interface::get_connectivity(), and moab::Interface::get_coords().
ErrorCode moab::SmoothCurve::evaluate_smooth_edge | ( | EntityHandle | eh, |
double & | tt, | ||
CartVect & | outv, | ||
CartVect & | out_tangent | ||
) |
Definition at line 537 of file SmoothCurve.cpp.
References _edgeTag, _mb, ErrorCode, moab::Interface::get_connectivity(), moab::Interface::get_coords(), MB_SUCCESS, MB_TYPE_DOUBLE, moab::Interface::tag_get_data(), and moab::Interface::tag_get_handle().
Referenced by position_from_u().
|
virtual |
Get the parameter range of the curve.
u_start | The beginning curve parameter |
u_end | The ending curve parameter |
Definition at line 70 of file SmoothCurve.cpp.
Referenced by moab::FBEngine::getEntURange().
|
virtual |
Get the parametric status of the curve.
Definition at line 39 of file SmoothCurve.cpp.
|
virtual |
Get the periodic status of the curve.
period | The period of the curve if periodic. |
Definition at line 49 of file SmoothCurve.cpp.
References _leng, _mb, _set, moab::Interface::get_child_meshsets(), and moab::Range::size().
|
virtual |
Move a point near the curve to the closest point on the curve.
x | The x coordinate of the point |
y | The y coordinate of the point |
z | The z coordinate of the point |
Definition at line 144 of file SmoothCurve.cpp.
References position_from_u(), and u_from_position().
Referenced by moab::FBEngine::getEntClosestPt().
|
virtual |
Evaluate the curve at a specified parameter value.
u | The parameter at which to evaluate the curve |
x | The x coordinate of the evaluated point |
y | The y coordinate of the evaluated point |
z | The z coordinate of the evaluated point |
Definition at line 105 of file SmoothCurve.cpp.
References _entities, _fractions, ErrorCode, evaluate_smooth_edge(), and MB_SUCCESS.
Referenced by moab::FBEngine::getEntTgntU(), moab::FBEngine::getEntUtoXYZ(), and move_to_curve().
|
virtual |
Get the starting point of the curve.
x | The x coordinate of the start point |
y | The y coordinate of the start point |
z | The z coordinate of the start point |
Definition at line 339 of file SmoothCurve.cpp.
References _entities, _mb, moab::Interface::get_connectivity(), and moab::Interface::get_coords().
|
virtual |
Compute the parameter value at a specified distance along the curve.
u_root | The start parameter from which to compute the distance along the curve. |
arc_length | The distance to move along the curve. |
Definition at line 92 of file SmoothCurve.cpp.
References _leng.
|
virtual |
Get the u parameter value on the curve closest to x,y,z and the point on the curve.
x | The x coordinate of the point |
y | The y coordinate of the point |
z | The z coordinate of the point |
Definition at line 165 of file SmoothCurve.cpp.
References _edgeTag, _entities, _fractions, _mb, ErrorCode, moab::Interface::get_connectivity(), moab::Interface::get_coords(), length(), moab::CartVect::length_squared(), length_squared(), MB_SUCCESS, MB_TYPE_DOUBLE, moab::Interface::tag_get_data(), moab::Interface::tag_get_handle(), and moab::tolerance.
Referenced by move_to_curve(), and moab::FBEngine::split_edge_at_point().
|
private |
Definition at line 134 of file SmoothCurve.hpp.
Referenced by compute_control_points_on_boundary_edges(), evaluate_smooth_edge(), SmoothCurve(), and u_from_position().
|
private |
Definition at line 128 of file SmoothCurve.hpp.
Referenced by compute_control_points_on_boundary_edges(), end_coordinates(), position_from_u(), start_coordinates(), and u_from_position().
|
private |
Definition at line 130 of file SmoothCurve.hpp.
Referenced by compute_control_points_on_boundary_edges(), position_from_u(), and u_from_position().
|
private |
Definition at line 138 of file SmoothCurve.hpp.
Referenced by compute_control_points_on_boundary_edges().
|
private |
Definition at line 129 of file SmoothCurve.hpp.
Referenced by arc_length(), compute_control_points_on_boundary_edges(), is_periodic(), SmoothCurve(), and u_from_arc_length().
|
private |
Definition at line 136 of file SmoothCurve.hpp.
Referenced by compute_control_points_on_boundary_edges(), compute_tangents_for_each_edge(), end_coordinates(), evaluate_smooth_edge(), is_periodic(), start_coordinates(), and u_from_position().
|
private |
Definition at line 137 of file SmoothCurve.hpp.
Referenced by compute_control_points_on_boundary_edges(), compute_tangents_for_each_edge(), and is_periodic().