Public Member Functions | Private Attributes

cmtk::VolumeClipping Class Reference
[cmtkBase Library]

Utility class for volume clipping. More...

#include <cmtkVolumeClipping.h>

Collaboration diagram for cmtk::VolumeClipping:
Collaboration graph
[legend]

List of all members.

Public Member Functions

void SetClippingBoundaries (const UniformVolume::CoordinateRegionType &region)
 Set clipping boundaries.
void SetDeltaX (const Vector3D &deltaX)
 Set clipped volumes spanning vector in x-direction.
void SetDeltaY (const Vector3D &deltaY)
 Set clipped volumes spanning vector in y-direction.
void SetDeltaZ (const Vector3D &deltaZ)
 Set clipped volumes spanning vector in z-direction.
int ClipX (Types::Coordinate &fromFactor, Types::Coordinate &toFactor, const Vector3D &offset, const Types::Coordinate initFromFactor=0, const Types::Coordinate initToFactor=1, const bool lowerClosed=false, const bool upperClosed=false) const
 Compute line-to-volume intersection.
int ClipY (Types::Coordinate &fromFactor, Types::Coordinate &toFactor, const Vector3D &offset, const Types::Coordinate initFromFactor=0, const Types::Coordinate initToFactor=1) const
 Compute plane-to-volume intersection.
int ClipZ (Types::Coordinate &fromFactor, Types::Coordinate &toFactor, const Vector3D &offset, const Types::Coordinate initFromFactor=0, const Types::Coordinate initToFactor=1) const
 Compute volume-to-volume intersection.

Private Attributes

UniformVolume::CoordinateRegionType m_ClippingRegion
 Clipping boundaries.
Vector3D DeltaX
 Spanning vector of the clipped volume in x-direction.
Vector3D DeltaY
 Spanning vector of the clipped volume in y-direction.
Vector3D DeltaZ
 Spanning vector of the clipped volume in z-direction.

Detailed Description

Utility class for volume clipping.

This class provides functions to compute intersections of volumes with lines, planes, and other volumes. Line-to-volume intersection can be computed by a single function call.

Plane to volume intersection is done by first computing a range of parallel lines that intersect the volume. Then, for each line the line to volume intersection has to be computed to determine the exact intersection.

Analog, for volume to volume intersection, first a range of parallel planes is determined. Those then have to be examined in separate as described before.

This class' main application is ray clipping for DRR computation and volume clipping for voxel based volume similarity computation. All member functions are static, so they can be used without contructing an object.

Author:
T. Rohlfing

Definition at line 67 of file cmtkVolumeClipping.h.


Member Function Documentation

void cmtk::VolumeClipping::SetDeltaX ( const Vector3D deltaX ) [inline]

Set clipped volumes spanning vector in x-direction.

Parameters:
deltaXThe direction vector of the rows in the volume to be clipped. The coordinate transformation applied to the clipped volume must have been applied to this vector previously inorder for the clipping to be performed correctly.

Definition at line 81 of file cmtkVolumeClipping.h.

void cmtk::VolumeClipping::SetDeltaY ( const Vector3D deltaY ) [inline]

Set clipped volumes spanning vector in y-direction.

Parameters:
deltaYThe direction vector of the columns in the volume to be clipped. This is the vector from the origin of the first row in each plane to the origin of the last row in that same plane. The coordinate transformation applied to the clipped volume must have been applied to this vector previously inorder for the clipping to be performed correctly.

Definition at line 94 of file cmtkVolumeClipping.h.

void cmtk::VolumeClipping::SetDeltaZ ( const Vector3D deltaZ ) [inline]

Set clipped volumes spanning vector in z-direction.

Parameters:
deltaZThe direction vector of the planes in the volume to be clipped. This is the vector from the origin of the first plane in the volume to the origin of the last plane. The coordinate transformation applied to the clipped volume must have been applied to this vector previously inorder for the clipping to be performed correctly.

Definition at line 107 of file cmtkVolumeClipping.h.


Member Data Documentation

Spanning vector of the clipped volume in x-direction.

Definition at line 183 of file cmtkVolumeClipping.h.

Spanning vector of the clipped volume in y-direction.

Definition at line 186 of file cmtkVolumeClipping.h.

Spanning vector of the clipped volume in z-direction.

Definition at line 189 of file cmtkVolumeClipping.h.

Clipping boundaries.

Definition at line 180 of file cmtkVolumeClipping.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines