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;
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;
97 Utah_phantom::Utah_phantom()
116 Utah_phantom::make_inside_B_ptr(
const float fraction)
const 119 shared_ptr<Shape3D> small_full_B_ptr = get_full_B_ptr()->
clone();
124 shared_ptr<Shape3D> large_D_ptr = get_D_ptr()->clone();
127 shared_ptr<Shape3D> large_E_ptr = get_E_ptr()->clone();
136 Utah_phantom::make_inside_C_ptr(
const float fraction)
const 138 shared_ptr<Shape3D> small_full_C_ptr = get_full_C_ptr()->
clone();
140 shared_ptr<Shape3D> large_full_B_ptr = get_full_B_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);
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);
const shared_ptr< Shape3D > & get_full_C_ptr() const
get C without hole
Definition: Utah.h:62
Declaration of class stir::EllipsoidalCylinder.
void translate(const CartesianCoordinate3D< float > &direction)
translate the whole shape by shifting its origin
Definition: CombinedShape3D.inl:52
Shape3D * clone() const
Allocate a new Shape3D object which is a copy of the current one.
Definition: CombinedShape3D.inl:37
A class that represents a Utah phantom.
Definition: Utah.h:42
Declaration of class stir::CombinedShape3D.
const shared_ptr< Shape3D > & get_full_B_ptr() const
get B without holes
Definition: Utah.h:57
Three-dimensional ellipsoidal cylinder.
Definition: EllipsoidalCylinder.h:67
void scale_around_origin(const CartesianCoordinate3D< float > &scale3D)
scale the whole shape, keeping the centre at the same place
Definition: Shape3D.inl:44
A class that allows combining several shapes using logical operations.
Definition: CombinedShape3D.h:48