pub enum SpotFunction {
Show 21 variants
SimpleDot,
InvertedSimpleDot,
DoubleDot,
InvertedDoubleDot,
CosineDot,
Double,
InvertedDouble,
Line,
LineX,
LineY,
Round,
Ellipse,
EllipseA,
InvertedEllipseA,
EllipseB,
EllipseC,
InvertedEllipseC,
Square,
Cross,
Rhomboid,
Diamond,
}Expand description
Spot functions, Table 6.1, Page 489 in Pdf Reference v1.7 The code is pseudo code, returning the grey component at (x, y).
Variants§
SimpleDot
1 - (pow(x, 2) + pow(y, 2))
InvertedSimpleDot
pow(x, 2) + pow(y, 2) - 1
DoubleDot
(sin(360 * x) / 2) + (sin(360 * y) / 2)
InvertedDoubleDot
- ((sin(360 * x) / 2) + (sin(360 * y) / 2))
CosineDot
(cos(180 * x) / 2) + (cos(180 * y) / 2)
Double
(sin(360 x (x / 2)) / 2) + (sin(360 * y) / 2)
InvertedDouble
- ((sin(360 x (x / 2)) / 2) + (sin(360 * y) / 2))
Line
- abs(y)
LineX
x
LineY
y
Round
ⓘ
if abs(x) + abs(y) <= 1 {
1 - (pow(x, 2) + pow(y, 2))
} else {
pow((abs(x) - 1), 2) + pow((abs(y) - 1), 2) - 1
}Ellipse
ⓘ
let w = (3 * abs(x)) + (4 * abs(y)) - 3;
if w < 0 {
1 - ((pow(x, 2) + pow((abs(y) / 0.75), 2)) / 4)
} else if w > 1 {
pow((pow((1 - abs(x), 2) + (1 - abs(y)) / 0.75), 2) / 4) - 1
} else {
0.5 - w
}EllipseA
1 - (pow(x, 2) + 0.9 * pow(y, 2))
InvertedEllipseA
pow(x, 2) + 0.9 * pow(y, 2) - 1
EllipseB
1 - sqrt(pow(x, 2) + (5 / 8) * pow(y, 2))
EllipseC
1 - (0.9 * pow(x, 2) + pow(y, 2))
InvertedEllipseC
0.9 * pow(x, 2) + pow(y, 2) - 1
Square
- max(abs(x), abs(y))
Cross
- min(abs(x), abs(y))
Rhomboid
(0.9 * abs(x) + abs(y)) / 2
Diamond
ⓘ
let t = abs(x) + abs(y);
if t <= 0.75 {
1 - (pow(x, 2) + pow(y, 2))
} else if t < 1.23 {
1 - (0.85 * abs(x) + abs(y))
} else {
pow((abs(x) - 1), 2) + pow((abs(y) - 1), 2) - 1
}Trait Implementations§
Source§impl Clone for SpotFunction
impl Clone for SpotFunction
Source§fn clone(&self) -> SpotFunction
fn clone(&self) -> SpotFunction
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SpotFunction
impl Debug for SpotFunction
Source§impl<'de> Deserialize<'de> for SpotFunction
impl<'de> Deserialize<'de> for SpotFunction
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for SpotFunction
impl PartialEq for SpotFunction
Source§impl Serialize for SpotFunction
impl Serialize for SpotFunction
impl Copy for SpotFunction
impl StructuralPartialEq for SpotFunction
Auto Trait Implementations§
impl Freeze for SpotFunction
impl RefUnwindSafe for SpotFunction
impl Send for SpotFunction
impl Sync for SpotFunction
impl Unpin for SpotFunction
impl UnsafeUnpin for SpotFunction
impl UnwindSafe for SpotFunction
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<U, T> ToOwnedObj<U> for Twhere
U: FromObjRef<T>,
impl<U, T> ToOwnedObj<U> for Twhere
U: FromObjRef<T>,
Source§fn to_owned_obj(&self, data: FontData<'_>) -> U
fn to_owned_obj(&self, data: FontData<'_>) -> U
Convert this type into
T, using the provided data to resolve any offsets.