11#ifndef __stir_phantoms_Utah_H__
12#define __stir_phantoms_Utah_H__
52 inline const shared_ptr<Shape3D>& get_A_ptr()
const {
return A_ptr; }
54 inline const shared_ptr<Shape3D>& get_B_ptr()
const {
return B_ptr; }
57 inline const shared_ptr<Shape3D>&
get_full_B_ptr()
const {
return full_B_ptr; }
59 inline const shared_ptr<Shape3D>& get_C_ptr()
const {
return C_ptr; }
62 inline const shared_ptr<Shape3D>&
get_full_C_ptr()
const {
return full_C_ptr; }
64 inline const shared_ptr<Shape3D>& get_D_ptr()
const {
return D_ptr; }
66 inline const shared_ptr<Shape3D>& get_E_ptr()
const {
return E_ptr; }
74 inline shared_ptr<Shape3D> make_inside_B_ptr(
const float fraction)
const;
82 inline shared_ptr<Shape3D> make_inside_C_ptr(
const float fraction)
const;
84 inline void translate(
const CartesianCoordinate3D<float>& direction);
85 inline void scale(
const CartesianCoordinate3D<float>& scale3D);
88 shared_ptr<Shape3D> A_ptr;
89 shared_ptr<Shape3D> B_ptr;
90 shared_ptr<Shape3D> full_B_ptr;
91 shared_ptr<Shape3D> C_ptr;
92 shared_ptr<Shape3D> full_C_ptr;
93 shared_ptr<Shape3D> D_ptr;
94 shared_ptr<Shape3D> E_ptr;
124 shared_ptr<Shape3D> large_D_ptr = get_D_ptr()->clone();
127 shared_ptr<Shape3D> large_E_ptr = get_E_ptr()->clone();
148 B_ptr->translate(direction);
149 full_B_ptr->translate(direction);
150 C_ptr->translate(direction);
151 full_C_ptr->translate(direction);
152 D_ptr->translate(direction);
153 E_ptr->translate(direction);
157Utah_phantom::scale(
const CartesianCoordinate3D<float>& scale3D)
159 A_ptr->scale(scale3D);
160 B_ptr->scale(scale3D);
161 full_B_ptr->scale(scale3D);
162 C_ptr->scale(scale3D);
163 full_C_ptr->scale(scale3D);
164 D_ptr->scale(scale3D);
165 E_ptr->scale(scale3D);
Declaration of class stir::CombinedShape3D.
Declaration of class stir::EllipsoidalCylinder.
a templated class for 3-dimensional coordinates.
Definition CartesianCoordinate3D.h:53
A class that allows combining several shapes using logical operations.
Definition CombinedShape3D.h:49
void translate(const CartesianCoordinate3D< float > &direction)
translate the whole shape by shifting its origin
Definition CombinedShape3D.inl:52
Three-dimensional ellipsoidal cylinder.
Definition EllipsoidalCylinder.h:68
shared_ptr< Shape3D > make_inside_B_ptr(const float fraction) const
make a region inside B when fraction<1.
Definition Utah.h:116
shared_ptr< Shape3D > make_inside_C_ptr(const float fraction) const
make a region inside C when fraction<1.
Definition Utah.h:136
const shared_ptr< Shape3D > & get_full_B_ptr() const
get B without holes
Definition Utah.h:57
const shared_ptr< Shape3D > & get_full_C_ptr() const
get C without hole
Definition Utah.h:62
Utah_phantom()
Construct a Utah phantom.
Definition Utah.h:97