/// <summary> /// Defines LineSourceBase class /// </summary> /// <param name="lineLength">The length of the line source</param> /// <param name="sourceProfile">Source profile type</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> protected LineSourceBase( double lineLength, ISourceProfile sourceProfile, Direction newDirectionOfPrincipalSourceAxis, Position translationFromOrigin, PolarAzimuthalAngles beamRotationFromInwardNormal, int initialTissueRegionIndex) { if (newDirectionOfPrincipalSourceAxis == null) { newDirectionOfPrincipalSourceAxis = SourceDefaults.DefaultDirectionOfPrincipalSourceAxis.Clone(); } if (translationFromOrigin == null) { translationFromOrigin = SourceDefaults.DefaultPosition.Clone(); } if (beamRotationFromInwardNormal == null) { beamRotationFromInwardNormal = SourceDefaults.DefaultBeamRoationFromInwardNormal.Clone(); } _rotationAndTranslationFlags = new SourceFlags( newDirectionOfPrincipalSourceAxis != SourceDefaults.DefaultDirectionOfPrincipalSourceAxis.Clone(), translationFromOrigin != SourceDefaults.DefaultPosition.Clone(), beamRotationFromInwardNormal != SourceDefaults.DefaultBeamRoationFromInwardNormal.Clone()); _lineLength = lineLength; _sourceProfile = sourceProfile; _newDirectionOfPrincipalSourceAxis = newDirectionOfPrincipalSourceAxis.Clone(); _translationFromOrigin = translationFromOrigin.Clone(); _beamRotationFromInwardNormal = beamRotationFromInwardNormal.Clone(); _initialTissueRegionIndex = initialTissueRegionIndex; }
/// <summary> /// Defines EllipticalSourceBase 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="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 EllipticalSourceBase( double aParameter, double bParameter, 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()); _aParameter = aParameter; _bParameter = bParameter; _sourceProfile = sourceProfile; _newDirectionOfPrincipalSourceAxis = newDirectionOfPrincipalSourceAxis.Clone(); _translationFromOrigin = translationFromOrigin.Clone(); _beamRotationFromInwardNormal = beamRotationFromInwardNormal.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> /// 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; }