xmsstamper
1.0
|
Implementaion of XmStampInterpCrossSection. More...
Public Member Functions | |
virtual void | InterpMissingCrossSections (XmStamperIo &a_) override |
Interpolates the missing cross sections. Modifys the m_cs member of the XmStamperIo class that is passed to this method. More... | |
virtual bool | ValidCrossSectionsExist (XmStamperIo &a_) override |
Interpolates the missing cross sections. Modifys the m_cs member of the XmStamperIo class that is passed to this method. More... | |
virtual void | InterpCs (XmStampCrossSection &a_prev, XmStampCrossSection &a_next, double a_percent, XmStampCrossSection &a_cs) override |
Interpolates a cross section from 2 other cross sections using a weight (a_percent) More... | |
int | FindFirstValidCrossSection () |
Finds the first valid cross section in the inputs. More... | |
int | FindLastValidCrossSection () |
Finds the last valid cross section in the inputs. More... | |
int | FindNextValidCrossSection (int a_idx) |
Finds the first valid cross section after a_idx in the inputs. More... | |
void | InterpCs (int a_prev, int a_next, double a_percent, XmStampCrossSection &a_cs) |
Interpolates a cross section from 2 other cross sections using a weight (a_percent) More... | |
void | InterpPts (VecPt3d &a_v1, int a_beg1, int a_end1, VecPt3d &a_v2, int a_beg2, int a_end2, double a_percent, VecPt3d &a_interpPts) |
Interpolates part of 2 cross sections to part of a new cross section. Separate interpolations are done for the cross section between the center line and the shoulder and then from the shoulder to boundary of the cross section. More... | |
void | CalcTvals (VecPt3d &a_v, int a_beg, int a_end, VecDbl &a_t) |
Calculates parametric t values from a vector of x,y coords based on x. More... | |
Pt3d | PtFromT (VecPt3d &a_v, int a_beg, VecDbl &a_t, double a_tval) |
Calculates the x,y location of the point at a_tval. More... | |
Public Attributes | |
BSHP< Observer > | m_observer |
progress observer | |
XmStamperIo * | m_io |
pointer to the inputs to the stamp operation | |
Additional Inherited Members | |
Static Public Member Functions inherited from xms::XmStampInterpCrossSection | |
static BSHP< XmStampInterpCrossSection > | New () |
Creates a XmStampInterpCrossSection class. More... | |
Implementaion of XmStampInterpCrossSection.
Definition at line 44 of file XmStampInterpCrossSection.cpp.
void xms::XmStampInterpCrossSectionImpl::CalcTvals | ( | VecPt3d & | a_v, |
int | a_beg, | ||
int | a_end, | ||
VecDbl & | a_t | ||
) |
Calculates parametric t values from a vector of x,y coords based on x.
[in] | a_v | vector of x,y |
[in] | a_beg | Index to the start of the section of a_v |
[in] | a_end | Index to the end of the section of a_v |
[out] | a_t | Vector of calculated t values |
Definition at line 339 of file XmStampInterpCrossSection.cpp.
Referenced by InterpPts().
int xms::XmStampInterpCrossSectionImpl::FindFirstValidCrossSection | ( | ) |
Finds the first valid cross section in the inputs.
Definition at line 171 of file XmStampInterpCrossSection.cpp.
References FindNextValidCrossSection().
Referenced by InterpMissingCrossSections(), and ValidCrossSectionsExist().
int xms::XmStampInterpCrossSectionImpl::FindLastValidCrossSection | ( | ) |
Finds the last valid cross section in the inputs.
Definition at line 180 of file XmStampInterpCrossSection.cpp.
References xms::XmStamperIo::m_cs, and m_io.
Referenced by InterpMissingCrossSections().
int xms::XmStampInterpCrossSectionImpl::FindNextValidCrossSection | ( | int | a_idx | ) |
Finds the first valid cross section after a_idx in the inputs.
[in] | a_idx | Index used to find the next valid cross section |
Definition at line 199 of file XmStampInterpCrossSection.cpp.
References xms::XmStamperIo::m_cs, and m_io.
Referenced by FindFirstValidCrossSection(), and InterpMissingCrossSections().
|
overridevirtual |
Interpolates a cross section from 2 other cross sections using a weight (a_percent)
[in] | a_prev | The first cross section used to interpolate. |
[in] | a_next | The second cross section used to interpolate. |
[in] | a_percent | Interpolation weight applied to the prev/next cross sections. |
[out] | a_cs | The newly interpolated cross section. |
Definition at line 241 of file XmStampInterpCrossSection.cpp.
References InterpPts(), xms::XmStampCrossSection::m_idxLeftShoulder, xms::XmStampCrossSection::m_idxRightShoulder, xms::XmStampCrossSection::m_left, xms::XmStampCrossSection::m_leftMax, xms::XmStampCrossSection::m_right, xms::XmStampCrossSection::m_rightMax, and XM_ENSURE_TRUE.
Referenced by InterpCs(), and InterpMissingCrossSections().
void xms::XmStampInterpCrossSectionImpl::InterpCs | ( | int | a_prev, |
int | a_next, | ||
double | a_percent, | ||
XmStampCrossSection & | a_cs | ||
) |
Interpolates a cross section from 2 other cross sections using a weight (a_percent)
[in] | a_prev | Index to the first cross section used to interpolate. |
[in] | a_next | Index to the second cross section used to interpolate. |
[in] | a_percent | Interpolation weight applied to the prev/next cross sections. |
[out] | a_cs | The newly interpolated cross section. |
Definition at line 224 of file XmStampInterpCrossSection.cpp.
References InterpCs(), xms::XmStamperIo::m_cs, and m_io.
|
overridevirtual |
Interpolates the missing cross sections. Modifys the m_cs member of the XmStamperIo class that is passed to this method.
[in,out] | a_ | The inputs and outputs for the feature stamp operation |
Definition at line 100 of file XmStampInterpCrossSection.cpp.
References FindFirstValidCrossSection(), FindLastValidCrossSection(), FindNextValidCrossSection(), gmXyDistance(), InterpCs(), xms::XmStamperIo::m_centerLine, xms::XmStamperIo::m_cs, and m_io.
Referenced by XmStampInterpCrossSectionUnitTests::test0(), XmStampInterpCrossSectionUnitTests::test1(), and XmStampInterpCrossSectionUnitTests::testCrossSectionTutorial().
void xms::XmStampInterpCrossSectionImpl::InterpPts | ( | VecPt3d & | a_v1, |
int | a_beg1, | ||
int | a_end1, | ||
VecPt3d & | a_v2, | ||
int | a_beg2, | ||
int | a_end2, | ||
double | a_percent, | ||
VecPt3d & | a_interpPts | ||
) |
Interpolates part of 2 cross sections to part of a new cross section. Separate interpolations are done for the cross section between the center line and the shoulder and then from the shoulder to boundary of the cross section.
[in] | a_v1 | pts from the first cross section |
[in] | a_beg1 | Index to the start of the section of a_v1 |
[in] | a_end1 | Index to the end of the section of a_v1 |
[in] | a_v2 | pts from the second cross section |
[in] | a_beg2 | Index to the start of the section of a_v2 |
[in] | a_end2 | Index to the end of the section of a_v2 |
[in] | a_percent | Interpolation weight applied to the prev/next cross sections. |
[out] | a_interpPts | Vector of newly interpolated points |
Definition at line 304 of file XmStampInterpCrossSection.cpp.
References CalcTvals(), PtFromT(), xms::Pt3< T >::x, and xms::Pt3< T >::y.
Referenced by InterpCs().
Pt3d xms::XmStampInterpCrossSectionImpl::PtFromT | ( | VecPt3d & | a_v, |
int | a_beg, | ||
VecDbl & | a_t, | ||
double | a_tval | ||
) |
Calculates the x,y location of the point at a_tval.
[in] | a_v | vector of x,y |
[in] | a_beg | Index to the start of the section of a_v |
[in] | a_t | Vector of calculated t values |
[in] | a_tval | Parametric tvalue |
Definition at line 360 of file XmStampInterpCrossSection.cpp.
References xms::Pt3< T >::x, and xms::Pt3< T >::y.
Referenced by InterpPts().
|
overridevirtual |
Interpolates the missing cross sections. Modifys the m_cs member of the XmStamperIo class that is passed to this method.
[in,out] | a_ | The inputs and outputs for the feature stamp operation |
Definition at line 159 of file XmStampInterpCrossSection.cpp.
References FindFirstValidCrossSection(), and m_io.