xmsstamper
1.0
|
Utility functions. More...
#include <XmUtil.h>
Static Public Member Functions | |
static void | ConvertXsPointsTo3d (const Pt3d &a_cl, const VecPt3d &a_pts, double a_maxX, double a_angle, VecPt3d2d &a_3dpts) |
Converts the left or right portion of a cross section data to 3d point locations using the angle from the center line and the max x value. More... | |
static void | EnsureVectorAtMaxX (VecPt3d &a_pts, double a_maxX) |
Makes sure the cross section goes to the maxX value. More... | |
static void | GetAnglesFromCenterLine (size_t a_idx, const VecPt3d &a_cl, double &a_leftAngle, double &a_rightAngle) |
Gets the angles of the left and right cross sections relative to the centerline. More... | |
static void | ScaleCrossSectionXvals (XmStampCrossSection &a_xs, double a_factor) |
Converts interpolated cross sections to 3d. More... | |
|
static |
Converts the left or right portion of a cross section data to 3d point locations using the angle from the center line and the max x value.
[in] | a_cl | The location on the centerline for these cross section points |
[in] | a_pts | The cross section points |
[in] | a_maxX | The max X value for this portion of the cross section |
[in] | a_angle | The angle of the cross section relative to the center line of the cross section |
[out] | a_3dpts | (x,y,z) points that are filled by the this method |
Definition at line 49 of file XmUtil.cpp.
References EnsureVectorAtMaxX(), xms::Pt3< T >::x, and xms::Pt3< T >::y.
Referenced by xms::XmStamperImpl::ConvertCrossSectionsTo3d(), xms::XmSlopedAbutmentUtilImpl::ConvertTo3d(), and xms::XmGuideBankUtilImpl::CrossSectionTo3dPts().
|
static |
Makes sure the cross section goes to the maxX value.
[in,out] | a_pts | 2d points |
[in] | a_maxX | Max x value |
Definition at line 94 of file XmUtil.cpp.
References xms::Pt3< T >::x, and xms::Pt3< T >::y.
Referenced by xms::XmGuideBankUtilImpl::AdjustEndCapCrossSection(), ConvertXsPointsTo3d(), xms::XmSlopedAbutmentUtilImpl::EnsureCrossSectionAtMaxX(), and XmUtilUnitTests::test_EnsureVectorAtMaxX().
|
static |
Gets the angles of the left and right cross sections relative to the centerline.
[in] | a_idx | Index of the current cross section |
[in] | a_cl | Array of locations defining center line |
[out] | a_leftAngle | The angle of the left cross section relative to the center line. |
[out] | a_rightAngle | The angle of the right cross section relative to the center line. |
Definition at line 153 of file XmUtil.cpp.
References gmBisectingAngle(), gmPerpendicularAngle(), and XM_ENSURE_TRUE.
Referenced by xms::XmStamperImpl::ConvertCrossSectionsTo3d(), and xms::XmGuideBankUtilImpl::CrossSectionTo3dPts().
|
static |
Converts interpolated cross sections to 3d.
[in,out] | a_xs | Cross section |
[in] | a_factor | Value multiplied to each X val |
Definition at line 80 of file XmUtil.cpp.
References xms::XmStampCrossSection::m_left, xms::XmStampCrossSection::m_leftMax, xms::XmStampCrossSection::m_right, and xms::XmStampCrossSection::m_rightMax.
Referenced by xms::XmGuideBankUtilImpl::GuideBankEndCap(), and xms::XmSlopedAbutmentUtilImpl::InterpolateCrossSections().