xmsstamper
1.0
|
Implementaion of XmBathymetryIntersector. More...
Public Member Functions | |
XmBathymetryIntersectorImpl (BSHP< TrTin > a_tin, BSHP< TrTin > a_stamp) | |
virtual void | IntersectCenterLine (XmStamperIo &a_io) override |
Intersects the center line from a feature stamp operation with the bathemetry. This can potentially create new points along the center line. More... | |
virtual void | DecomposeCenterLine (XmStamperIo &a_io, std::vector< XmStamperIo > &a_vIo) override |
Intersects the center line from a feature stamp operation with the bathemetry. This can potentially create new points along the center line. More... | |
virtual void | IntersectXsects (XmStamper3dPts &a_pts) override |
Intersects cross section points. When a cross section intersects the bathemetry it stops at that location and the rest of the cross section is discarded. More... | |
virtual void | IntersectEndCaps (XmStamperIo &a_io, XmStamper3dPts &a_pts) override |
Intersects end cap cross section points. When a cross section intersects the bathemetry it stops at that location and the rest of the cross section is discarded. More... | |
void | ClassifyPoints (VecPt3d &a_pts, VecInt &a_ptLocation) |
Intersects the center line from a feature stamp operation with the bathemetry. This can potentially create new points along the center line. More... | |
void | CreateIntersector () |
Creates a multi poly intersector if one does not exist. | |
void | Intersect3dPts (VecPt3d &a_pts) |
Intersects a line with a surface. More... | |
void | IntersectXsectSide (VecPt3d &a_cl, VecPt3d2d &a_side) |
Intersects left or right side of a cross section with bathymetry. More... | |
void | IntersectSlopedAbutment (XmStamperIo &a_io, XmStamper3dPts &a_pts, bool a_first) |
Intersects sloped abutment end cap cross section points. More... | |
void | IntersectGuideBank (XmStamperIo &a_io, XmStamper3dPts &a_pts, bool a_first) |
Intersects sloped abutment end cap cross section points. More... | |
Public Attributes | |
BSHP< TrTin > | m_tin |
TIN defining Bathemetry surface. | |
BSHP< TrTin > | m_stamp |
TIN of the stamp. | |
Pt3d | m_min |
min x,y,z of stamp | |
Pt3d | m_max |
max x,y,z of stamp | |
BSHP< GmMultiPolyIntersector > | m_intersect |
polygon intersector for intersecting objects with the bathemetry TIN | |
VecInt | m_triIds |
the ids of the triangles in the intersector | |
double | m_xyTol |
xy tolerance for geometry comparisons | |
Additional Inherited Members | |
Static Public Member Functions inherited from xms::XmBathymetryIntersector | |
static BSHP< XmBathymetryIntersector > | New (BSHP< TrTin > a_tin, BSHP< TrTin > a_stamp) |
Creates a XmStampInterpCrossSection class. More... | |
Implementaion of XmBathymetryIntersector.
Intersects bathemetry with feature stamp.
Definition at line 51 of file XmBathymetryIntersector.cpp.
xms::XmBathymetryIntersectorImpl::XmBathymetryIntersectorImpl | ( | BSHP< TrTin > | a_tin, |
BSHP< TrTin > | a_stamp | ||
) |
a_tin | The TIN that is intersected with cross sections and the center line of the stamp. | |
[in] | a_stamp | TIN of the stamp |
Definition at line 89 of file XmBathymetryIntersector.cpp.
References m_tin, m_xyTol, Mdist(), xms::Pt3< T >::x, and xms::Pt3< T >::y.
Intersects the center line from a feature stamp operation with the bathemetry. This can potentially create new points along the center line.
[in] | a_pts | point locations |
[out] | a_ptLocation | the location of the point relative to the TIN 1 (above), 0 (on), -1 (below) OR -2 (outside) |
Definition at line 269 of file XmBathymetryIntersector.cpp.
References CreateIntersector(), EQ_TOL(), gmBaryPrepare(), gmCartToBary(), m_intersect, m_tin, m_triIds, xms::Pt3< T >::x, xms::Pt3< T >::y, and xms::Pt3< T >::z.
Referenced by DecomposeCenterLine(), and XmBathymetryIntersectorUnitTests::testClassifyPoints().
|
overridevirtual |
Intersects the center line from a feature stamp operation with the bathemetry. This can potentially create new points along the center line.
[in] | a_io | XmStamperIo class used in the feature stamp operation |
[out] | a_vIo | array of Io classes that have split up the centerline based on where it intersects the bathemetry and removes sections of the center line based on the type of stamp: cut/fill. |
Definition at line 174 of file XmBathymetryIntersector.cpp.
References ClassifyPoints(), xms::XmStamperIo::m_centerLine, xms::XmStamperIo::m_cs, xms::XmStamperIo::m_firstEndCap, xms::XmStamperIo::m_lastEndCap, xms::XmStamperIo::m_stampingType, and m_xyTol.
Referenced by XmBathymetryIntersectorUnitTests::testDescomposeCenterLine().
void xms::XmBathymetryIntersectorImpl::Intersect3dPts | ( | VecPt3d & | a_pts | ) |
Intersects a line with a surface.
a_pts | ??? |
Definition at line 472 of file XmBathymetryIntersector.cpp.
References gmEqualPointsXY(), gmIntersectTriangleAndLineSegment(), m_intersect, m_tin, m_triIds, m_xyTol, xms::Pt3< T >::x, and xms::Pt3< T >::y.
Referenced by IntersectGuideBank(), and IntersectXsectSide().
|
overridevirtual |
Intersects the center line from a feature stamp operation with the bathemetry. This can potentially create new points along the center line.
[in,out] | a_io | XmStamperIo class used in the feature stamp operation |
Definition at line 114 of file XmBathymetryIntersector.cpp.
References CreateIntersector(), gmEqualPointsXY(), gmIntersectTriangleAndLineSegment(), xms::XmStamperIo::m_centerLine, xms::XmStamperIo::m_cs, m_intersect, m_tin, m_triIds, m_xyTol, xms::Pt3< T >::x, and xms::Pt3< T >::y.
Referenced by XmBathymetryIntersectorUnitTests::testDescomposeCenterLine(), and XmBathymetryIntersectorUnitTests::testIntersectCenterLine().
|
overridevirtual |
Intersects end cap cross section points. When a cross section intersects the bathemetry it stops at that location and the rest of the cross section is discarded.
[in] | a_io | Stamper io class |
[in,out] | a_pts | 3d points representing the cross sections |
Definition at line 330 of file XmBathymetryIntersector.cpp.
References CreateIntersector(), IntersectGuideBank(), IntersectSlopedAbutment(), xms::XmStamperIo::m_cs, xms::XmStamperIo::m_firstEndCap, m_intersect, xms::XmStamperIo::m_lastEndCap, xms::XmStamperEndCap::m_type, and XM_ENSURE_TRUE.
void xms::XmBathymetryIntersectorImpl::IntersectGuideBank | ( | XmStamperIo & | a_io, |
XmStamper3dPts & | a_pts, | ||
bool | a_first | ||
) |
Intersects sloped abutment end cap cross section points.
[in] | a_io | Xmamper io class |
[in,out] | a_pts | 3d points representing the cross sections |
[in] | a_first | flag indicating if this is the first end cap |
Definition at line 559 of file XmBathymetryIntersector.cpp.
References Intersect3dPts(), IntersectXsectSide(), xms::stXs3dPts::m_centerLine, xms::XmStamperIo::m_centerLine, xms::XmStamperIo::m_cs, xms::XmStamper3dPts::m_first_endcap, xms::XmStamper3dPts::m_last_endcap, xms::stXs3dPts::m_left, xms::stXs3dPts::m_right, and xms::XmStamper3dPts::m_xsPts.
Referenced by IntersectEndCaps().
void xms::XmBathymetryIntersectorImpl::IntersectSlopedAbutment | ( | XmStamperIo & | a_io, |
XmStamper3dPts & | a_pts, | ||
bool | a_first | ||
) |
Intersects sloped abutment end cap cross section points.
[in] | a_io | Stamper io class |
[in,out] | a_pts | 3d points representing the cross sections |
[in] | a_first | flag indicating if this is the first end cap |
Definition at line 516 of file XmBathymetryIntersector.cpp.
References IntersectXsectSide(), xms::XmStamperIo::m_centerLine, xms::XmStamperIo::m_cs, xms::XmStamper3dPts::m_first_endcap, xms::XmStamper3dPts::m_last_endcap, xms::stXs3dPts::m_left, xms::stXs3dPts::m_right, and xms::XmStamper3dPts::m_xsPts.
Referenced by IntersectEndCaps().
|
overridevirtual |
Intersects cross section points. When a cross section intersects the bathemetry it stops at that location and the rest of the cross section is discarded.
[in,out] | a_pts | 3d points representing the cross sections |
Definition at line 313 of file XmBathymetryIntersector.cpp.
References CreateIntersector(), IntersectXsectSide(), xms::stXs3dPts::m_centerLine, m_intersect, xms::stXs3dPts::m_left, xms::stXs3dPts::m_right, and xms::XmStamper3dPts::m_xsPts.
Referenced by XmBathymetryIntersectorUnitTests::testIntersectXsects().
Intersects left or right side of a cross section with bathymetry.
a_cl | ??? |
a_side | ??? |
Definition at line 355 of file XmBathymetryIntersector.cpp.
References Intersect3dPts(), and XM_ENSURE_TRUE.
Referenced by IntersectGuideBank(), IntersectSlopedAbutment(), and IntersectXsects().