package edu.stanford.rsl.conrad.phantom; import edu.stanford.rsl.conrad.geometry.shapes.simple.PointND; import edu.stanford.rsl.conrad.geometry.shapes.simple.Sphere; import edu.stanford.rsl.conrad.physics.PhysicalObject; import edu.stanford.rsl.conrad.physics.materials.database.MaterialsDB; import edu.stanford.rsl.conrad.utils.CONRAD; /** * Phantom to test forward and back projection resolution. * * Creates a several small spheres of high contrast at several locations in the scene. (Diameter 0.1 mm) * The material is set to Plexiglass (density of 1.95). * * @author Andreas Maier * */ public class SpherePhantom extends AnalyticPhantom { /** * */ private static final long serialVersionUID = 5781085850910993618L; @Override public String getBibtexCitation() { return CONRAD.CONRADBibtex; } @Override public String getMedlineCitation() { return CONRAD.CONRADMedline; } @Override public String getName() { return "Sphere Phantom"; } public SpherePhantom() { // Body of the phantom. double radius = 0.1; PointND center = new PointND(0,0,0); // center bead Sphere sp = new Sphere(radius, center); sp.setName("High Constrast Bead"); PhysicalObject po = new PhysicalObject(); po.setMaterial(MaterialsDB.getMaterialWithName("Plexiglass")); // D = 1.95 po.setShape(sp); add(po); // left center = new PointND(100,0,0); sp = new Sphere(radius, center); sp.setName("High Constrast Bead"); po = new PhysicalObject(); po.setMaterial(MaterialsDB.getMaterialWithName("Plexiglass")); // D = 1.95 po.setShape(sp); add(po); // right center = new PointND(-100,0,0); sp = new Sphere(radius, center); sp.setName("High Constrast Bead"); po = new PhysicalObject(); po.setMaterial(MaterialsDB.getMaterialWithName("Plexiglass")); // D = 1.95 po.setShape(sp); add(po); // top center = new PointND(0, -100,0); sp = new Sphere(radius, center); sp.setName("High Constrast Bead"); po = new PhysicalObject(); po.setMaterial(MaterialsDB.getMaterialWithName("Plexiglass")); // D = 1.95 po.setShape(sp); add(po); // bottom center = new PointND(0, 100,0); sp = new Sphere(radius, center); sp.setName("High Constrast Bead"); po = new PhysicalObject(); po.setMaterial(MaterialsDB.getMaterialWithName("Plexiglass")); // D = 1.95 po.setShape(sp); add(po); // down center = new PointND(0, 0, -100); sp = new Sphere(radius, center); sp.setName("High Constrast Bead"); po = new PhysicalObject(); po.setMaterial(MaterialsDB.getMaterialWithName("Plexiglass")); // D = 1.95 po.setShape(sp); add(po); // up center = new PointND(0, 0, 100); sp = new Sphere(radius, center); sp.setName("High Constrast Bead"); po = new PhysicalObject(); po.setMaterial(MaterialsDB.getMaterialWithName("Plexiglass")); // D = 1.95 po.setShape(sp); add(po); } } /* * Copyright (C) 2010-2014 Andreas Maier * CONRAD is developed as an Open Source project under the GNU General Public License (GPL). */