/// <summary>
        /// Defines VolumetricEllipsoidalSourceBase class
        /// </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="sourceProfile">Source Profile {Flat / Gaussian}</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 VolumetricEllipsoidalSourceBase(
            double aParameter,
            double bParameter,
            double cParameter,
            ISourceProfile sourceProfile,
            Direction newDirectionOfPrincipalSourceAxis,
            Position translationFromOrigin,
            int initialTissueRegionIndex)
        {
            _rotationAndTranslationFlags = new SourceFlags(
                newDirectionOfPrincipalSourceAxis != SourceDefaults.DefaultDirectionOfPrincipalSourceAxis.Clone(),
                translationFromOrigin != SourceDefaults.DefaultPosition.Clone(),
                false);

            _aParameter    = aParameter;
            _bParameter    = bParameter;
            _cParameter    = cParameter;
            _sourceProfile = sourceProfile;
            _newDirectionOfPrincipalSourceAxis = newDirectionOfPrincipalSourceAxis.Clone();
            _translationFromOrigin             = translationFromOrigin.Clone();
            _initialTissueRegionIndex          = initialTissueRegionIndex;
        }
        /// <summary>
        /// Defines RectangularSourceBase class
        /// </summary>
        /// <param name="rectLengthX">The length of the Rectangular Source</param>
        /// <param name="rectWidthY">The width of the Rectangular Source</param>
        /// <param name="sourceProfile">Source Profile {Flat / Gaussian}</param>
        /// <param name="newDirectionOfPrincipalSourceAxis">New source axis direction</param>
        /// <param name="translationFromOrigin">New source location</param>
        /// <param name="beamRotationFromInwardNormal">Polar Azimuthal Rotational Angle of inward Normal</param>
        /// <param name="initialTissueRegionIndex">Initial tissue region index</param>
        protected RectangularSourceBase(
            double rectLengthX,
            double rectWidthY,
            ISourceProfile sourceProfile,
            Direction newDirectionOfPrincipalSourceAxis,
            Position translationFromOrigin,
            PolarAzimuthalAngles beamRotationFromInwardNormal,
            int initialTissueRegionIndex)
        {
            _rotationAndTranslationFlags = new SourceFlags(
                newDirectionOfPrincipalSourceAxis != SourceDefaults.DefaultDirectionOfPrincipalSourceAxis.Clone(),
                translationFromOrigin != SourceDefaults.DefaultPosition.Clone(),
                beamRotationFromInwardNormal != SourceDefaults.DefaultBeamRoationFromInwardNormal.Clone());

            _rectLengthX   = rectLengthX;
            _rectWidthY    = rectWidthY;
            _sourceProfile = sourceProfile;
            _newDirectionOfPrincipalSourceAxis = newDirectionOfPrincipalSourceAxis.Clone();
            _translationFromOrigin             = translationFromOrigin.Clone();
            _beamRotationFromInwardNormal      = beamRotationFromInwardNormal.Clone();
            _initialTissueRegionIndex          = initialTissueRegionIndex;
        }
 /// <summary>
 /// Initializes a new instance of CustomRectangularSourceInput class
 /// </summary>
 /// <param name="rectLengthX">The length of the Rectangular Source</param>
 /// <param name="rectWidthY">The width of the Rectangular Source</param>
 /// <param name="sourceProfile">Source Profile {Flat / Gaussian}</param>
 /// <param name="polarAngleEmissionRange">Polar angle range</param>
 /// <param name="azimuthalAngleEmissionRange">Azimuthal angle range</param>
 /// <param name="newDirectionOfPrincipalSourceAxis">New source axis direction</param>
 /// <param name="translationFromOrigin">New source location</param>
 /// <param name="beamRotationFromInwardNormal">beam rotation angle</param>
 /// <param name="initialTissueRegionIndex">Initial tissue region index</param>
 public CustomRectangularSourceInput(
     double rectLengthX,
     double rectWidthY,
     ISourceProfile sourceProfile,
     DoubleRange polarAngleEmissionRange,
     DoubleRange azimuthalAngleEmissionRange,
     Direction newDirectionOfPrincipalSourceAxis,
     Position translationFromOrigin,
     PolarAzimuthalAngles beamRotationFromInwardNormal,
     int initialTissueRegionIndex)
 {
     SourceType                        = "CustomRectangular";
     RectLengthX                       = rectLengthX;
     RectWidthY                        = rectWidthY;
     SourceProfile                     = sourceProfile;
     PolarAngleEmissionRange           = polarAngleEmissionRange;
     AzimuthalAngleEmissionRange       = azimuthalAngleEmissionRange;
     NewDirectionOfPrincipalSourceAxis = newDirectionOfPrincipalSourceAxis;
     TranslationFromOrigin             = translationFromOrigin;
     BeamRotationFromInwardNormal      = beamRotationFromInwardNormal;
     InitialTissueRegionIndex          = initialTissueRegionIndex;
 }
Пример #4
0
        /// <summary>
        /// Defines CircularSourceBase class
        /// </summary>
        /// <param name="innerRadius">The inner radius of the circular source</param>
        /// <param name="outerRadius">The outer radius of the circular source</param>
        /// <param name="sourceProfile">Source Profile {Flat / Gaussian}</param>
        /// <param name="newDirectionOfPrincipalSourceAxis">New source axis direction</param>
        /// <param name="translationFromOrigin">New source location</param>
        /// <param name="beamRotationFromInwardNormal">Polar Azimuthal Rotational Angle of inward Normal</param>
        /// <param name="initialTissueRegionIndex">Initial tissue region index</param>
        protected CircularSourceBase(
            double outerRadius,
            double innerRadius,
            ISourceProfile sourceProfile,
            Direction newDirectionOfPrincipalSourceAxis,
            Position translationFromOrigin,
            PolarAzimuthalAngles beamRotationFromInwardNormal,
            int initialTissueRegionIndex)
        {
            _rotationAndTranslationFlags = new SourceFlags(
                newDirectionOfPrincipalSourceAxis != SourceDefaults.DefaultDirectionOfPrincipalSourceAxis.Clone(),
                translationFromOrigin != SourceDefaults.DefaultPosition.Clone(),
                beamRotationFromInwardNormal != SourceDefaults.DefaultBeamRoationFromInwardNormal.Clone());

            _outerRadius   = outerRadius;
            _innerRadius   = innerRadius;
            _sourceProfile = sourceProfile;
            _newDirectionOfPrincipalSourceAxis = newDirectionOfPrincipalSourceAxis.Clone();
            _translationFromOrigin             = translationFromOrigin.Clone();
            _beamRotationFromInwardNormal      = beamRotationFromInwardNormal.Clone();
            _initialTissueRegionIndex          = initialTissueRegionIndex;
        }
Пример #5
0
 /// <summary>
 /// Initializes a new instance of CustomCircularSourceInput class
 /// </summary>
 /// <param name="outerRadius">The outer radius of the circular source</param>
 /// <param name="innerRadius">The inner radius of the circular source</param>
 /// <param name="sourceProfile">Source Profile {Flat / Gaussian}</param>
 /// <param name="polarAngleEmissionRange">Polar angle range</param>
 /// <param name="azimuthalAngleEmissionRange">Azimuthal angle 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 CustomCircularSourceInput(
     double outerRadius,
     double innerRadius,
     ISourceProfile sourceProfile,
     DoubleRange polarAngleEmissionRange,
     DoubleRange azimuthalAngleEmissionRange,
     Direction newDirectionOfPrincipalSourceAxis,
     Position translationFromOrigin,
     PolarAzimuthalAngles beamRotationFromInwardNormal,
     int initialTissueRegionIndex)
 {
     SourceType                        = "CustomCircular";
     OuterRadius                       = outerRadius;
     InnerRadius                       = innerRadius;
     SourceProfile                     = sourceProfile;
     PolarAngleEmissionRange           = polarAngleEmissionRange;
     AzimuthalAngleEmissionRange       = azimuthalAngleEmissionRange;
     NewDirectionOfPrincipalSourceAxis = newDirectionOfPrincipalSourceAxis;
     TranslationFromOrigin             = translationFromOrigin;
     BeamRotationFromInwardNormal      = beamRotationFromInwardNormal;
     InitialTissueRegionIndex          = initialTissueRegionIndex;
 }
Пример #6
0
 /// <summary>
 /// Initializes a new instance of CustomVolumetricCuboidalSourceInput class
 /// </summary>
 /// <param name="cubeLengthX">Length of the cuboid</param>
 /// <param name="cubeWidthY">Width of the cuboid</param>
 /// <param name="cubeHeightZ">Height of the cuboid</param>
 /// <param name="sourceProfile">Source Profile {Flat / Gaussian}</param>
 /// <param name="polarAngleEmissionRange">Polar angle range</param>
 /// <param name="azimuthalAngleEmissionRange">Azimuthal angle 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 CustomVolumetricCuboidalSourceInput(
     double cubeLengthX,
     double cubeWidthY,
     double cubeHeightZ,
     ISourceProfile sourceProfile,
     DoubleRange polarAngleEmissionRange,
     DoubleRange azimuthalAngleEmissionRange,
     Direction newDirectionOfPrincipalSourceAxis,
     Position translationFromOrigin,
     int initialTissueRegionIndex)
 {
     SourceType                        = "CustomVolumetricCubiodal";
     CubeLengthX                       = cubeLengthX;
     CubeWidthY                        = cubeWidthY;
     CubeHeightZ                       = cubeHeightZ;
     SourceProfile                     = sourceProfile;
     PolarAngleEmissionRange           = polarAngleEmissionRange;
     AzimuthalAngleEmissionRange       = azimuthalAngleEmissionRange;
     NewDirectionOfPrincipalSourceAxis = newDirectionOfPrincipalSourceAxis;
     TranslationFromOrigin             = translationFromOrigin;
     InitialTissueRegionIndex          = initialTissueRegionIndex;
 }
        /// <summary>
        /// Defines VolumetricCuboidalSourceBase class
        /// </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="sourceProfile">Source Profile {Flat / Gaussian}</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 VolumetricCuboidalSourceBase(
            double cubeLengthX,
            double cubeWidthY,
            double cubeHeightZ,
            ISourceProfile sourceProfile,
            Direction newDirectionOfPrincipalSourceAxis,
            Position translationFromOrigin,
            int initialTissueRegionIndex)
        {
            _rotationAndTranslationFlags = new SourceFlags(
                newDirectionOfPrincipalSourceAxis != SourceDefaults.DefaultDirectionOfPrincipalSourceAxis.Clone(),
                translationFromOrigin != SourceDefaults.DefaultPosition.Clone(),
                false);

            _cubeLengthX   = cubeLengthX;
            _cubeWidthY    = cubeWidthY;
            _cubeHeightZ   = cubeHeightZ;
            _sourceProfile = sourceProfile;
            _newDirectionOfPrincipalSourceAxis = newDirectionOfPrincipalSourceAxis.Clone();
            _translationFromOrigin             = translationFromOrigin.Clone();
            _initialTissueRegionIndex          = initialTissueRegionIndex;
        }
Пример #8
0
 /// <summary>
 /// Initializes a new instance of CustomEllipticalSourceInput class
 /// </summary>
 /// <param name="aParameter">"a" parameter of the ellipse source</param>
 /// <param name="bParameter">"b" parameter of the ellipse source</param>
 /// <param name="sourceProfile">Source Profile {Flat / Gaussian}</param>
 /// <param name="polarAngleEmissionRange">Polar angle range</param>
 /// <param name="azimuthalAngleEmissionRange">Azimuthal angle range</param>
 /// <param name="newDirectionOfPrincipalSourceAxis">New source axis direction</param>
 /// <param name="translationFromOrigin">New source location</param>
 /// <param name="beamRotationFromInwardNormal">beam rotation angle</param>
 /// <param name="initialTissueRegionIndex">Initial tissue region index</param>
 public CustomEllipticalSourceInput(
     double aParameter,
     double bParameter,
     ISourceProfile sourceProfile,
     DoubleRange polarAngleEmissionRange,
     DoubleRange azimuthalAngleEmissionRange,
     Direction newDirectionOfPrincipalSourceAxis,
     Position translationFromOrigin,
     PolarAzimuthalAngles beamRotationFromInwardNormal,
     int initialTissueRegionIndex)
 {
     SourceType                        = "CustomElliptical";
     AParameter                        = aParameter;
     BParameter                        = bParameter;
     SourceProfile                     = sourceProfile;
     PolarAngleEmissionRange           = polarAngleEmissionRange;
     AzimuthalAngleEmissionRange       = azimuthalAngleEmissionRange;
     NewDirectionOfPrincipalSourceAxis = newDirectionOfPrincipalSourceAxis;
     TranslationFromOrigin             = translationFromOrigin;
     BeamRotationFromInwardNormal      = beamRotationFromInwardNormal;
     InitialTissueRegionIndex          = initialTissueRegionIndex;
 }
Пример #9
0
 public static void Set(ISourceProfile target)
 {
     CheckTarget(target);
     Lookup[target.Guid] = target;
     Persist.AddOrUpdate(target);
 }
Пример #10
0
 public void Remove(ISourceProfile target)
 {
     Remove(target.Guid);
 }
Пример #11
0
 public ImportTask(ISourceProfile profile)
 {
     _profile = profile;
 }
Пример #12
0
 public static IImportTask CreateImportTask(ISourceProfile target)
 {
     return(new ImportTask(target));
 }