Class Ellipsoid
Object
Mark
MarkWithPosition
ConicBase
Ellipsoid
- All Implemented Interfaces:
Serializable
Represents a 3D ellipsoid mark with multiple sub-regions.
The ellipsoid has the following sub-marks:
- Sub-Mark 0: Center Ellipsoid (inner core)
- Sub-Mark 1: Ellipsoid with shell
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbox
(Dimensions dimensions, int regionID) Calculates the bounding box for a specific region of the mark.boxAllRegions
(Dimensions dimensions) Calculates the bounding box for all regions of the mark.double[]
Creates an array of radii in their original units.double[]
createRadiiArrayResolved
(Optional<Resolution> resolution) Creates an array of radii resolved to the given resolution.Creates a duplicate of this mark.boolean
equalsDeep
(Mark m) Checks if this mark is equal to another mark by comparing all attributes.EllipsoidMatrixCalculator
Calculator for ellipsoid-related matrices.static double
getEllipsoidSum
(double x, double y, double z, cern.colt.matrix.DoubleMatrix2D mat) Calculates the sum of squared coordinates relative to the ellipsoid's matrix.double
The distance to the inner core, expressed as a ratio of the radii.getName()
Returns the name of this mark type.The orientation of the ellipsoid.getRadii()
The radii of the ellipsoid in 3D.double
getShell()
The size of the shell, expressed as a ratio of the radii.final byte
isPointInside
(Point3i point) Determines if a point is inside the mark.int
Returns the number of dimensions of this mark.int
Returns the number of regions in this mark.Provides an optional quick overlap calculation method.void
scale
(ScaleFactor scaleFactor) Scales the mark in X and Y dimensions.void
setInnerCoreDistance
(double innerCoreDistance) The distance to the inner core, expressed as a ratio of the radii.void
setMarksExplicit
(Point3d position) Sets the mark's position explicitly.void
setMarksExplicit
(Point3d position, Orientation orientation) Sets the mark's position and orientation explicitly.void
setMarksExplicit
(Point3d pos, Orientation orientation, Point3d radii) Sets the mark's properties explicitly.void
setShell
(double shell) The size of the shell, expressed as a ratio of the radii.toString()
void
Updates internal calculations after a change in the mark's properties.double
volume
(int regionID) Calculates the volume of a specific region of the mark.Methods inherited from class org.anchoranalysis.mpp.mark.conic.ConicBase
radiiOrdered, radiiOrderedResolved
Methods inherited from class org.anchoranalysis.mpp.mark.MarkWithPosition
centerPoint, getPosition, positionString, setPosition
Methods inherited from class org.anchoranalysis.mpp.mark.Mark
deriveObject, equalsID, getIdentifier, identifier, setId
-
Constructor Details
-
Ellipsoid
public Ellipsoid()Creates a new Ellipsoid with default values. -
Ellipsoid
Creates a new Ellipsoid by copying an existing one.- Parameters:
src
- the Ellipsoid to copy from
-
-
Method Details
-
getName
Description copied from class:Mark
Returns the name of this mark type. -
getEllipsoidSum
public static double getEllipsoidSum(double x, double y, double z, cern.colt.matrix.DoubleMatrix2D mat) Calculates the sum of squared coordinates relative to the ellipsoid's matrix.- Parameters:
x
- x-coordinatey
- y-coordinatez
- z-coordinatemat
- the ellipsoid matrix- Returns:
- the sum of squared coordinates
-
isPointInside
Description copied from class:Mark
Determines if a point is inside the mark.- Specified by:
isPointInside
in classMark
- Parameters:
point
- the point to check- Returns:
- a byte representing the region membership of the point
-
duplicate
Description copied from class:Mark
Creates a duplicate of this mark. -
toString
-
volume
public double volume(int regionID) Description copied from class:Mark
Calculates the volume of a specific region of the mark. -
updateAfterMarkChange
public void updateAfterMarkChange()Updates internal calculations after a change in the mark's properties. -
box
Description copied from class:Mark
Calculates the bounding box for a specific region of the mark. -
quickOverlap
Description copied from class:Mark
Provides an optional quick overlap calculation method.- Overrides:
quickOverlap
in classMark
- Returns:
- an Optional containing a QuickOverlapCalculation, or empty if not available
-
setMarksExplicit
Description copied from class:ConicBase
Sets the mark's properties explicitly.- Specified by:
setMarksExplicit
in classConicBase
- Parameters:
pos
- the position of the markorientation
- the orientation of the markradii
- the radii of the mark
-
setMarksExplicit
Description copied from class:ConicBase
Sets the mark's position explicitly.- Specified by:
setMarksExplicit
in classConicBase
- Parameters:
position
- the position of the mark
-
createRadiiArray
public double[] createRadiiArray()Description copied from class:ConicBase
Creates an array of radii in their original units.- Specified by:
createRadiiArray
in classConicBase
- Returns:
- an array of radii
-
createRadiiArrayResolved
Description copied from class:ConicBase
Creates an array of radii resolved to the given resolution.- Specified by:
createRadiiArrayResolved
in classConicBase
- Parameters:
resolution
- an optional resolution to consider- Returns:
- an array of resolved radii
-
scale
Description copied from class:Mark
Scales the mark in X and Y dimensions.- Overrides:
scale
in classMarkWithPosition
- Parameters:
scaleFactor
- how much to scale by- Throws:
CheckedUnsupportedOperationException
- if scaling is not supported for this mark type
-
equalsDeep
Description copied from class:MarkWithPosition
Checks if this mark is equal to another mark by comparing all attributes.- Overrides:
equalsDeep
in classMarkWithPosition
- Parameters:
m
- the mark to compare with- Returns:
- true if the marks are equal, false otherwise
-
numberDimensions
public int numberDimensions()Description copied from class:Mark
Returns the number of dimensions of this mark.- Specified by:
numberDimensions
in classMark
- Returns:
- the number of dimensions
-
setMarksExplicit
Description copied from class:ConicBase
Sets the mark's position and orientation explicitly.- Specified by:
setMarksExplicit
in classConicBase
- Parameters:
position
- the position of the markorientation
- the orientation of the mark
-
numberRegions
public int numberRegions()Description copied from class:Mark
Returns the number of regions in this mark.- Specified by:
numberRegions
in classMark
- Returns:
- the number of regions
-
boxAllRegions
Description copied from class:Mark
Calculates the bounding box for all regions of the mark.- Specified by:
boxAllRegions
in classMark
- Parameters:
dimensions
- the dimensions of the space- Returns:
- the bounding box
-
getShell
public double getShell()The size of the shell, expressed as a ratio of the radii. -
setShell
public void setShell(double shell) The size of the shell, expressed as a ratio of the radii. -
getInnerCoreDistance
public double getInnerCoreDistance()The distance to the inner core, expressed as a ratio of the radii. -
setInnerCoreDistance
public void setInnerCoreDistance(double innerCoreDistance) The distance to the inner core, expressed as a ratio of the radii. -
getRadii
The radii of the ellipsoid in 3D. -
getOrientation
The orientation of the ellipsoid. -
getEllipsoidCalculator
public EllipsoidMatrixCalculator getEllipsoidCalculator()Calculator for ellipsoid-related matrices.
-