56 #ifndef PLANEGEOMETRY_H_HEADER_INCLUDED_C1C68A2C
57 #define PLANEGEOMETRY_H_HEADER_INCLUDED_C1C68A2C
63 #include <vnl/vnl_cross.h>
67 template <
class TCoordRep,
unsigned int NPo
intDimension>
69 typedef Line<ScalarType, 3>
Line3D;
86 itkFactorylessNewMacro(
Self) itkCloneMacro(
Self)
96 virtual void IndexToWorld(
const Point2D &pt_units,
Point2D &pt_mm)
const;
98 virtual void WorldToIndex(
const Point2D &pt_mm,
Point2D &pt_units)
const;
149 virtual void InitializeStandardPlane(
const BaseGeometry *geometry3D,
150 PlaneOrientation planeorientation = Axial,
152 bool frontside =
true,
153 bool rotated =
false,
164 virtual void InitializeStandardPlane(
const BaseGeometry *geometry3D,
166 PlaneOrientation planeorientation = Axial,
167 bool frontside =
true,
168 bool rotated =
false);
188 virtual void InitializeStandardPlane(
ScalarType width,
191 PlaneOrientation planeorientation = Axial,
193 bool frontside =
true,
194 bool rotated =
false,
202 virtual void InitializeStandardPlane(
ScalarType width,
205 PlaneOrientation planeorientation = Axial,
207 bool frontside =
true,
208 bool rotated =
false,
223 virtual void InitializeStandardPlane(
ScalarType width,
241 virtual void InitializeStandardPlane(
ScalarType width,
255 virtual void InitializeStandardPlane(
const Vector3D &rightVector,
267 virtual void InitializeStandardPlane(
const VnlVector &rightVector,
277 virtual void InitializePlane(
const Point3D &origin,
const Vector3D &normal);
314 virtual bool IsAbove(
const Point3D &pt3d_mm,
bool considerBoundingBox =
false)
const;
336 return (pt3d_mm - GetOrigin()) * GetNormal() / len;
354 if (IsParallel(plane))
356 return SignedDistance(plane->
GetOrigin());
367 bool IntersectionLine(
const PlaneGeometry *plane, Line3D &crossline)
const;
389 double Angle(
const Line3D &
line)
const;
398 bool IntersectionPoint(
const Line3D &
line,
Point3D &intersectionPoint)
const;
409 bool IntersectionPointParam(
const Line3D &
line,
double &t)
const;
422 bool IsOnPlane(
const Point3D &point)
const;
428 bool IsOnPlane(
const Line3D &
line)
const;
448 virtual void ExecuteOperation(
Operation *operation)
override;
556 bool HasReferenceGeometry()
const;
565 virtual void PrintSelf(std::ostream &os, itk::Indent indent)
const override;
604 virtual bool operator!=(
const PlaneGeometry *)
const {
return false; };
const Point3D GetOrigin() const
Get the origin, e.g. the upper-left corner of the plane.
itk::SmartPointer< Self > Pointer
MITKCORE_EXPORT bool operator!=(const InteractionEvent &a, const InteractionEvent &b)
ScalarType SignedDistanceFromPlane(const Point3D &pt3d_mm) const
Signed distance of the point from the plane (bounding-box not considered)
Base class of all Operation-classes.
vnl_vector< ScalarType > VnlVector
Line< ScalarType, 3 > Line3D
DataCollection - Class to facilitate loading/accessing structured data.
ScalarType Distance(const Point3D &pt3d_mm) const
Distance of the point from the geometry (bounding-box not considered)
ScalarType SignedDistanceFromPlane(const PlaneGeometry *plane) const
Signed distance of the plane from another plane (bounding-box not considered)
MITKCORE_EXPORT bool operator==(const InteractionEvent &a, const InteractionEvent &b)
const mitk::BaseGeometry * m_ReferenceGeometry
#define mitkClassMacro(className, SuperClassName)
itk::AffineGeometryFrame< ScalarType, 3 >::TransformType AffineTransform3D
Describes a two-dimensional, rectangular plane.
ScalarType DistanceFromPlane(const PlaneGeometry *plane) const
Distance of the plane from another plane (bounding-box not considered)
virtual void PreSetSpacing(const mitk::Vector3D &aSpacing) override
PreSetSpacing.
BaseGeometry Describes the geometry of a data object.
BoundingBoxType::BoundsArrayType BoundsArrayType