[][src]Enum printpdf::types::plugins::graphics::extgstate::SpotFunction

pub enum SpotFunction {
    SimpleDot,
    InvertedSimpleDot,
    DoubleDot,
    InvertedDoubleDot,
    CosineDot,
    Double,
    InvertedDouble,
    Line,
    LineX,
    LineY,
    Round,
    Ellipse,
    EllipseA,
    InvertedEllipseA,
    EllipseB,
    EllipseC,
    InvertedEllipseC,
    Square,
    Cross,
    Rhomboid,
    Diamond,
}

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
This example is not tested
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
This example is not tested
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
This example is not tested
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

impl Clone for SpotFunction[src]

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl PartialEq<SpotFunction> for SpotFunction[src]

#[must_use] fn ne(&self, other: &Rhs) -> bool1.0.0[src]

This method tests for !=.

impl Copy for SpotFunction[src]

impl Debug for SpotFunction[src]

Auto Trait Implementations

Blanket Implementations

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> SetParameter for T

fn set<T>(&mut self, value: T) -> <T as Parameter<Self>>::Result where
    T: Parameter<Self>, 

Sets value as a parameter of self.