pub struct MultipleMaster {
axes: Vec<MasterAxis>,
num_masters: usize,
default_weights: Vec<Fixed>,
}Expand description
The design space of a multiple master font.
A multiple master font holds two to sixteen masters at the corners of a blend space with one to four axes. An instance is a weighted blend of the masters, and its weights come from a position in that space, given as blend coordinates from 0 to 1 on each axis or as design coordinates, which each axis maps to blend coordinates.
The conversions follow FreeType’s, including where its arithmetic departs from the specification, so that an instance draws as it does in FreeType.
Fields§
§axes: Vec<MasterAxis>§num_masters: usize§default_weights: Vec<Fixed>Implementations§
Source§impl MultipleMaster
impl MultipleMaster
Sourcepub fn axes(&self) -> &[MasterAxis]
pub fn axes(&self) -> &[MasterAxis]
Returns the axes.
Sourcepub fn num_masters(&self) -> usize
pub fn num_masters(&self) -> usize
Returns the number of masters, which is two to the power of the number of axes.
Sourcepub fn default_weights(&self) -> &[Fixed]
pub fn default_weights(&self) -> &[Fixed]
Returns the weights of the font’s default instance, one per master.
Sourcepub fn default_blend(&self, blend: &mut [Fixed])
pub fn default_blend(&self, blend: &mut [Fixed])
Writes the blend coordinates of the font’s default instance to
blend, one per axis.
Sourcepub fn weights_to_blend(&self, weights: &[Fixed], blend: &mut [Fixed])
pub fn weights_to_blend(&self, weights: &[Fixed], blend: &mut [Fixed])
Writes the blend coordinates that give rise to weights to blend,
one per axis.
The blend on an axis is the sum of the weights of the masters at its far end.
Sourcepub fn blend_to_weights(&self, blend: &[Fixed], weights: &mut [Fixed])
pub fn blend_to_weights(&self, blend: &[Fixed], weights: &mut [Fixed])
Writes the weights for the blend coordinates blend to weights, one
per master.
An axis without a coordinate takes the middle of its range.
Sourcepub fn design_to_blend(&self, design: &[Fixed], blend: &mut [Fixed])
pub fn design_to_blend(&self, design: &[Fixed], blend: &mut [Fixed])
Writes the blend coordinates for the design coordinates design to
blend, one per axis.
Each design coordinate is rounded to a whole number first. An axis
without a coordinate takes half its range above zero, (max - min) / 2, which is the middle only of a range that starts at zero. Both
follow FreeType’s T1_Set_Var_Design, as does
MasterAxis::design_to_blend.
Trait Implementations§
Source§impl Clone for MultipleMaster
impl Clone for MultipleMaster
Source§fn clone(&self) -> MultipleMaster
fn clone(&self) -> MultipleMaster
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more