/// <summary>
 /// Defines SurfaceEmittingSphericalSourceBase class
 /// </summary>
 /// <param name="radius">The radius of the sphere</param>
 /// <param name="polarAngleRangeToDefineSphericalSurface">polar angle range to define the emitting area of the sphere</param>
 /// <param name="azimuthalAngleRangeToDefineSphericalSurface">azimuthal angle range to define the emitting area of the sphere</param>
 /// <param name="newDirectionOfPrincipalSourceAxis">New source axis direction</param>
 /// <param name="translationFromOrigin">New source location</param>
 /// <param name="initialTissueRegionIndex">Initial tissue region index</param>
 protected SurfaceEmittingSphericalSourceBase(
     double radius,
     DoubleRange polarAngleRangeToDefineSphericalSurface,
     DoubleRange azimuthalAngleRangeToDefineSphericalSurface,
     Direction newDirectionOfPrincipalSourceAxis,
     Position translationFromOrigin,
     int initialTissueRegionIndex)
 {
     _radius = radius;
     _polarAngleRangeToDefineSphericalSurface     = polarAngleRangeToDefineSphericalSurface.Clone();
     _azimuthalAngleRangeToDefineSphericalSurface = azimuthalAngleRangeToDefineSphericalSurface.Clone();
     _newDirectionOfPrincipalSourceAxis           = newDirectionOfPrincipalSourceAxis.Clone();
     _translationFromOrigin    = translationFromOrigin.Clone();
     _initialTissueRegionIndex = initialTissueRegionIndex;
 }
Пример #2
0
 /// <summary>
 /// Initializes a new instance of the CustomLineSource class
 /// </summary>
 /// <param name="lineLength">The length of the line source</param>
 /// <param name="beamDiameterFWHM">Beam diameter FWHM (-1 for flat beam)</param>
 /// <param name="polarAngleEmissionRange">Polar angle emission range</param>
 /// <param name="azimuthalAngleEmissionRange">Azimuthal angle emission range</param>
 /// <param name="newDirectionOfPrincipalSourceAxis">New source axis direction</param>
 /// <param name="translationFromOrigin">New source location</param>
 /// <param name="beamRotationFromInwardNormal">Beam rotation from inward normal</param>
 /// <param name="initialTissueRegionIndex">Initial tissue region index</param>
 public CustomLineSource(
     double lineLength,
     double beamDiameterFWHM,
     DoubleRange polarAngleEmissionRange,
     DoubleRange azimuthalAngleEmissionRange,
     Direction newDirectionOfPrincipalSourceAxis = null,
     Position translationFromOrigin = null,
     PolarAzimuthalAngles beamRotationFromInwardNormal = null,
     int initialTissueRegionIndex = 0)
     : base(
         lineLength,
         beamDiameterFWHM,
         newDirectionOfPrincipalSourceAxis,
         translationFromOrigin,
         beamRotationFromInwardNormal,
         initialTissueRegionIndex)
 {
     _polarAngleEmissionRange     = polarAngleEmissionRange.Clone();
     _azimuthalAngleEmissionRange = azimuthalAngleEmissionRange.Clone();
 }
Пример #3
0
 /// <summary>
 /// Returns an instance of  Custom Ellipsoidal Source with a given source profile (Flat/Gaussian),
 /// polar and azimuthal angle range, new source axis direction, and translation,
 /// </summary>
 /// <param name="aParameter">"a" parameter of the ellipsoid source</param>
 /// <param name="bParameter">"b" parameter of the ellipsoid source</param>
 /// <param name="cParameter">"c" parameter of the ellipsoid source</param>
 /// <param name="beamDiameterFWHM">Beam diameter FWHM (-1 for flat beam)</param>
 /// <param name="polarAngleEmissionRange">Polar angle emission range</param>
 /// <param name="azimuthalAngleEmissionRange">Azimuthal angle emission range</param>
 /// <param name="newDirectionOfPrincipalSourceAxis">New source axis direction</param>
 /// <param name="translationFromOrigin">New source location</param>
 /// <param name="initialTissueRegionIndex">Initial tissue region index</param>
 public CustomVolumetricEllipsoidalSource(
     double aParameter,
     double bParameter,
     double cParameter,
     double beamDiameterFWHM,
     DoubleRange polarAngleEmissionRange,
     DoubleRange azimuthalAngleEmissionRange,
     Direction newDirectionOfPrincipalSourceAxis = null,
     Position translationFromOrigin = null,
     int initialTissueRegionIndex   = 0)
     : base(
         aParameter,
         bParameter,
         cParameter,
         beamDiameterFWHM,
         newDirectionOfPrincipalSourceAxis,
         translationFromOrigin,
         initialTissueRegionIndex)
 {
     _polarAngleEmissionRange     = polarAngleEmissionRange.Clone();
     _azimuthalAngleEmissionRange = azimuthalAngleEmissionRange.Clone();
 }
Пример #4
0
 /// <summary>
 /// Returns an instance of  Custom Cuboidal Source with a given source profile (Flat/Gaussian),
 /// polar and azimuthal angle range, new source axis direction, and translation.
 /// </summary>
 /// <param name="cubeLengthX">The length of the cuboid</param>
 /// <param name="cubeWidthY">The width of the cuboid</param>
 /// <param name="cubeHeightZ">The height of the cuboid</param>
 /// <param name="beamDiameterFWHM">Beam diameter FWHM (-1 for flat beam)</param>
 /// <param name="polarAngleEmissionRange">Polar angle emission range</param>
 /// <param name="azimuthalAngleEmissionRange">Azimuthal angle emission range</param>
 /// <param name="newDirectionOfPrincipalSourceAxis">New source axis direction</param>
 /// <param name="translationFromOrigin">New source location</param>
 /// <param name="initialTissueRegionIndex">Initial tissue region index</param>
 public CustomVolumetricCuboidalSource(
     double cubeLengthX,
     double cubeWidthY,
     double cubeHeightZ,
     double beamDiameterFWHM,
     DoubleRange polarAngleEmissionRange,
     DoubleRange azimuthalAngleEmissionRange,
     Direction newDirectionOfPrincipalSourceAxis = null,
     Position translationFromOrigin = null,
     int initialTissueRegionIndex   = 0)
     : base(
         cubeLengthX,
         cubeWidthY,
         cubeHeightZ,
         beamDiameterFWHM,
         newDirectionOfPrincipalSourceAxis,
         translationFromOrigin,
         initialTissueRegionIndex)
 {
     _polarAngleEmissionRange     = polarAngleEmissionRange.Clone();
     _azimuthalAngleEmissionRange = azimuthalAngleEmissionRange.Clone();
 }
        /// <summary>
        /// Defines SurfaceEmittingCuboidalSourceBase class
        /// </summary>
        /// <param name="cubeLengthX">The length of the cube (along x axis)</param>
        /// <param name="cubeWidthY">The width of the cube (along y axis)</param>
        /// <param name="cubeHeightZ">The height of the cube (along z axis)</param>
        /// <param name="beamDiameterFWHM">Beam diameter FWHM (-1 for flat beam)</param>
        /// <param name="polarAngleEmissionRange">Polar angle emission range {0 - 90degrees}</param>
        /// <param name="newDirectionOfPrincipalSourceAxis">New source axis direction</param>
        /// <param name="translationFromOrigin">New source location</param>
        /// <param name="initialTissueRegionIndex">Initial tissue region index</param>
        protected SurfaceEmittingCuboidalSourceBase(
            double cubeLengthX,
            double cubeWidthY,
            double cubeHeightZ,
            double beamDiameterFWHM,
            DoubleRange polarAngleEmissionRange,
            Direction newDirectionOfPrincipalSourceAxis,
            Position translationFromOrigin,
            int initialTissueRegionIndex)
        {
            _rotationAndTranslationFlags = new SourceFlags(
                newDirectionOfPrincipalSourceAxis != SourceDefaults.DefaultDirectionOfPrincipalSourceAxis.Clone(),
                translationFromOrigin != SourceDefaults.DefaultPosition.Clone(),
                false);

            _cubeLengthX      = cubeLengthX;
            _cubeWidthY       = cubeWidthY;
            _cubeHeightZ      = cubeHeightZ;
            _beamDiameterFWHM = beamDiameterFWHM;
            _newDirectionOfPrincipalSourceAxis = newDirectionOfPrincipalSourceAxis.Clone();
            _polarAngleEmissionRange           = polarAngleEmissionRange.Clone();
            _translationFromOrigin             = translationFromOrigin.Clone();
            _initialTissueRegionIndex          = initialTissueRegionIndex;
        }