Class ScaledElements<T>
Object
ScaledElements<T>
- Type Parameters:
T
- element-type.
A list of elements, with an
ObjectMask
representation, that have been scaled.
When scaling ObjectMask
s, so as to keep boundaries between objects exact, objects need
to be scaled collectively using a particular interpolation procedure rather than independently.
If any elements overlap with other elements, they are scaled separately independently of the others.
- Author:
- Owen Feehan
-
Constructor Summary
ConstructorsConstructorDescriptionScaledElements
(List<T> elements, ScaleFactor scaleFactor, ObjectScalingMethod scalingMethod, Optional<UnaryOperator<T>> preOperation, Optional<UnaryOperator<T>> postOperation, AccessObjectMask<T> access) Creates elements to be scaled. -
Method Summary
Modifier and TypeMethodDescriptionReturns the scaled-elements as a collection but without preserving the original element order.asListOrderPreserved
(List<T> unscaledElements) Returns a list of scaled-elements corresponding to a list of unscaled-elements.asMap()
The underlying map used to map an unscaled object to its scaled counterpart.scaledObjectFor
(T unscaledElement) Gets the scaled version of an element given the unscaled element.int
size()
Number of scaled-elements.
-
Constructor Details
-
ScaledElements
public ScaledElements(List<T> elements, ScaleFactor scaleFactor, ObjectScalingMethod scalingMethod, Optional<UnaryOperator<T>> preOperation, Optional<UnaryOperator<T>> postOperation, AccessObjectMask<T> access) throws CreateException Creates elements to be scaled.- Parameters:
elements
- element to be scaled (after possibly a preoperation).scaleFactor
- how much to scale the elements by.scalingMethod
- how the scaling is performed.preOperation
- operation applied to each element before it is scaled (e.g. flattening).postOperation
- operation applied to each element after it is scaled (e.g. flattening).access
- means of retrieving theObjectMask
that is associated withT
and to create new derived elements.- Throws:
CreateException
- if the internally needed data-structures cannot be successfully created.
-
-
Method Details
-
scaledObjectFor
Gets the scaled version of an element given the unscaled element.The unscaled element must be an identical to that passed into the constructor.
- Parameters:
unscaledElement
- the unscaled-element.- Returns:
- the corresponding scaled element.
- Throws:
GetOperationFailedException
- if the unscaled element was never passed to the constructor.
-
asCollectionOrderNotPreserved
Returns the scaled-elements as a collection but without preserving the original element order.The total number of objects is identical to the unscaled objects, just the order may differ.
- Returns:
- a collection with the scaled-objects.
-
asListOrderPreserved
Returns a list of scaled-elements corresponding to a list of unscaled-elements.- Parameters:
unscaledElements
- the list of unscaled-elements (all items must have been previously passed to the constructor, but the order need not be identical).- Returns:
- a newly created list where each elements is respectively the scaled-element for the corresponding input element.
-
asMap
The underlying map used to map an unscaled object to its scaled counterpart.- Returns:
- the underlying map, as used in this data-structure.
-
size
public int size()Number of scaled-elements.- Returns:
- the number of elements.
-