/// <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; }
/// <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(); }
/// <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(); }
/// <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; }