.. java:import:: cern.jet.random Gamma .. java:import:: cern.jet.random Normal .. java:import:: cern.jet.random Poisson .. java:import:: ch.epfl.leb.sass.utils RNG .. java:import:: ch.epfl.leb.sass.utils.images ImageS .. java:import:: ch.epfl.leb.sass.utils.images.internal DefaultImageS .. java:import:: ch.epfl.leb.sass.models.psfs PSFBuilder .. java:import:: ch.epfl.leb.sass.models.components Laser .. java:import:: ch.epfl.leb.sass.models.components Stage .. java:import:: ch.epfl.leb.sass.models.components Camera .. java:import:: ch.epfl.leb.sass.models.components Objective .. java:import:: ch.epfl.leb.sass.models.components.internal DefaultStage .. java:import:: ch.epfl.leb.sass.models.components.internal DefaultLaser .. java:import:: ch.epfl.leb.sass.models.components.internal DefaultCamera .. java:import:: ch.epfl.leb.sass.models.components.internal DefaultObjective .. java:import:: ch.epfl.leb.sass.models.obstructors Obstructor .. java:import:: ch.epfl.leb.sass.models.fluorophores Fluorophore .. java:import:: ch.epfl.leb.sass.models.illuminations Illumination .. java:import:: ch.epfl.leb.sass.models.illuminations IlluminationBuilder .. java:import:: ch.epfl.leb.sass.models.backgrounds BackgroundCommand .. java:import:: ch.epfl.leb.sass.models.backgrounds BackgroundCommandBuilder .. java:import:: ch.epfl.leb.sass.models.obstructors.internal.commands ObstructorCommand .. java:import:: ch.epfl.leb.sass.models.obstructors.internal.commands ObstructorCommandBuilder .. java:import:: ch.epfl.leb.sass.models.fluorophores.commands FluorophoreCommand .. java:import:: ch.epfl.leb.sass.models.photophysics FluorophoreDynamics .. java:import:: ch.epfl.leb.sass.models.fluorophores.commands FluorophoreCommandBuilder .. java:import:: ch.epfl.leb.sass.models.photophysics FluorophoreDynamicsBuilder .. java:import:: java.util List .. java:import:: java.util Arrays .. java:import:: java.io Serializable .. java:import:: com.google.gson JsonArray .. java:import:: com.google.gson JsonElement Microscope ========== .. java:package:: ch.epfl.leb.sass.models :noindex: .. java:type:: public class Microscope implements Serializable Integrates all the components into one microscope. Constructors ------------ Microscope ^^^^^^^^^^ .. java:constructor:: public Microscope(DefaultCamera.Builder cameraBuilder, DefaultLaser.Builder laserBuilder, DefaultObjective.Builder objectiveBuilder, PSFBuilder psfBuilder, DefaultStage.Builder stageBuilder, FluorophoreCommandBuilder fluorBuilder, FluorophoreDynamicsBuilder fluorDynamicsBuilder, ObstructorCommandBuilder obstructorBuilder, BackgroundCommandBuilder backgroundBuilder, IlluminationBuilder illuminationBuilder) :outertype: Microscope Initializes the microscope for simulations. :param cameraBuilder: :param laserBuilder: :param objectiveBuilder: :param psfBuilder: :param stageBuilder: :param fluorBuilder: Positions fluorophore's within the field of view. :param fluorDynamicsBuilder: :param obstructorBuilder: Creates the obstructors, e.g. fiducials. :param backgroundBuilder: Creates the background signal on the image. :param illuminationBuilder: Creates the illumination profile. Methods ------- getFluorophores ^^^^^^^^^^^^^^^ .. java:method:: public List getFluorophores() :outertype: Microscope Returns references to the fluorophores in the sample. :return: The sample's Fluorophore objects. getFovSize ^^^^^^^^^^ .. java:method:: public double getFovSize() :outertype: Microscope Returns the size of the field-of-view in object space units. :return: size of current FOV in object space units. getLaserPower ^^^^^^^^^^^^^ .. java:method:: public double getLaserPower() :outertype: Microscope Return current power of the laser. :return: laser power getObjectSpacePixelSize ^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public double getObjectSpacePixelSize() :outertype: Microscope The size of a pixel after division by the objective magnification. :return: Length of one pixel side in object space units getOnEmitterCount ^^^^^^^^^^^^^^^^^ .. java:method:: public double getOnEmitterCount() :outertype: Microscope Returns the number of currently active emitters. :return: number of shining emitters getResolution ^^^^^^^^^^^^^ .. java:method:: public int[] getResolution() :outertype: Microscope Return the number of camera pixels in x and y. :return: 2D array with number of pixels in x and y. setLaserPower ^^^^^^^^^^^^^ .. java:method:: public void setLaserPower(double laserPower) :outertype: Microscope Modifies the laser power to desired value. :param laserPower: new laser power simulateFrame ^^^^^^^^^^^^^ .. java:method:: public ImageS simulateFrame() :outertype: Microscope Generates a new frame and moves the device state forward. First the obstructors are drawn on the frame, then the fluorophores, and finally noise. :return: A simulated image of the next camera frame. toJsonCamera ^^^^^^^^^^^^ .. java:method:: public JsonElement toJsonCamera() :outertype: Microscope Returns information about the camera. :return: A JsonElement containing information about the camera. toJsonFluorescence ^^^^^^^^^^^^^^^^^^ .. java:method:: public JsonElement toJsonFluorescence() :outertype: Microscope Returns information about the sample fluorophores. :return: A JsonObject containing information about the fluorophores. toJsonLaser ^^^^^^^^^^^ .. java:method:: public JsonElement toJsonLaser() :outertype: Microscope Returns information about the laser. :return: A JsonElement containing information about the laser. toJsonObjective ^^^^^^^^^^^^^^^ .. java:method:: public JsonElement toJsonObjective() :outertype: Microscope Returns information about the objective. :return: A JsonElement containing information about the stage. toJsonStage ^^^^^^^^^^^ .. java:method:: public JsonElement toJsonStage() :outertype: Microscope Returns information about the stage. :return: A JsonElement containing information about the stage.