Guideline¶
Description¶
Guidelines are reference lines in a glyph that are not part of a contour or the generated font data. They are defined by a point and an angle; the guideline extends from the point in both directions on the specified angle. They are most often used to keep track of design information for a font (‘my overshoots should be here’) or to measure positions in a glyph (‘line the ends of my serifs on this line’). They can also be used as reference positions for doing things like assembling components. In most font editors, guidelines have a special appearance and can be edited.
glyph = CurrentGlyph()
for guideline in glyph.guidelines:
print(guideline)
Overview¶
Copy¶
Copy the current object into a new object of the same type. |
Parents¶
Get or set the guideline's parent glyph object. |
|
Get the guideline's parent layer object. |
|
Get the guideline's parent font object. |
Identification¶
Get or set the guideline's name. |
|
Get or set the guideline's color. |
|
Get the object's unique identifier. |
|
Get the guideline's index. |
Attributes¶
Get or set the guideline's x-coordinate. |
|
Get or set the guideline's y-coordinate. |
|
Get or set the guideline's angle. |
Transformations¶
Transform the object according to the given matrix. |
|
Move the object according to the given coordinates. |
|
Scale the object according to the given values. |
|
Rotate the object by the specified value. |
|
Skew the object by the given value. |
Normalization¶
Round the guideline's coordinate. |
Environment¶
Return the environment's native object wrapped by the current object. |
|
Tell the environment that something has changed in the object. |
Reference¶
- class fontParts.base.BaseGuideline(*args: Any, **kwargs: Any)[source]¶
Represent the basis for a guideline object.
This object is almost always created with
BaseGlyph.appendGuideline. An orphan guideline can be created like this:>>> guideline = RGuideline()
Copy¶
- BaseGuideline.copy() BaseObjectType¶
Copy the current object into a new object of the same type.
The returned object will not have a parent object.
- Returns:
A new
BaseObjectsubclass instance with the same attributes.
Parents¶
- BaseGuideline.glyph: dynamicProperty¶
Get or set the guideline’s parent glyph object.
The value must be a
BaseGlyphinstance orNone.- Returns:
- Raises:
AssertionError – If attempting to set the glyph when it has already been set.
Example:
>>> glyph = guideline.glyph
- BaseGuideline.layer: dynamicProperty¶
Get the guideline’s parent layer object.
This property is read-only.
Example:
>>> layer = guideline.layer
Identification¶
- BaseGuideline.name: dynamicProperty¶
Get or set the guideline’s name.
- BaseGuideline.color: dynamicProperty¶
Get or set the guideline’s color.
The value must be a Color or
None.- Returns:
A
Colorinstance representing the color of the guideline, orNone.
Example:
>>> guideline.color None >>> guideline.color = (1, 0, 0, 0.5)
- BaseGuideline.identifier¶
Get the object’s unique identifier.
This attribute is read-only. Use
IdentifierMixin.getIdentifierto request an identifier if it does not exist.- Returns:
The unique identifier assigned to the object as a
str, orNoneindicating the object has no identifier.
Example
>>> object.identifier 'ILHGJlygfds'
Attributes¶
- BaseGuideline.x: dynamicProperty¶
Get or set the guideline’s x-coordinate.
The value must be an
intor aflat.- Returns:
An
intor aflatrepresenting the x-coordinate of the guideline.
Example:
>>> guideline.x 100 >>> guideline.x = 101
- BaseGuideline.y: dynamicProperty¶
Get or set the guideline’s y-coordinate.
The value must be an
intor aflat.- Returns:
An
intor aflatrepresenting the y-coordinate of the guideline.
Example:
>>> guideline.y 100 >>> guideline.y = 101
- BaseGuideline.angle: dynamicProperty¶
Get or set the guideline’s angle.
The value must be
int,floatorNone. If set toNone, the angle is automatically derived based on the guideline’sxandyvalues:- Returns:
A
floatrepresenting the angle of the guideline.
Example:
>>> guideline.angle 45.0 >>> guideline.angle = 90
Transformations¶
- BaseGuideline.transformBy(matrix: list[int | float] | tuple[float, float, float, float, float, float], origin: list[int | float] | tuple[int | float, int | float] | None = None) None¶
Transform the object according to the given matrix.
- Parameters:
matrix – The Transformation Matrix to apply.
origin – The optional point at which the transformation should originate as a:ref:type-coordinate. Defaults to
None, representing an origin of(0, 0).
Example:
>>> obj.transformBy((0.5, 0, 0, 2.0, 10, 0)) >>> obj.transformBy((0.5, 0, 0, 2.0, 10, 0), origin=(500, 500))
- BaseGuideline.moveBy(value: list[int | float] | tuple[int | float, int | float]) None¶
Move the object according to the given coordinates.
- Parameters:
value – The x and y values to move the object by as a Coordinate.
Example:
>>> obj.moveBy((10, 0))
- BaseGuideline.scaleBy(value: int | float | list[int | float] | tuple[float, float], origin: list[int | float] | tuple[int | float, int | float] | None = None) None¶
Scale the object according to the given values.
- Parameters:
Example:
>>> obj.scaleBy(2.0) >>> obj.scaleBy((0.5, 2.0), origin=(500, 500))
- BaseGuideline.rotateBy(value: int | float, origin: list[int | float] | tuple[int | float, int | float] | None = None) None¶
Rotate the object by the specified value.
- Parameters:
value – The angle at which to rotate the object as an
intor afloat.origin – The optional point at which the rotation should originate as a Coordinate. Defaults to
None, representing an origin of(0, 0).
Example:
>>> obj.rotateBy(45) >>> obj.rotateBy(45, origin=(500, 500))
- BaseGuideline.skewBy(value: int | float | list[int | float] | tuple[float, float], origin: list[int | float] | tuple[int | float, int | float] | None = None) None¶
Skew the object by the given value.
- Parameters:
value – The value by which to skew the object as either a single
intorfloatcorresponding to the x direction, or atupleof twointorfloatvalues corresponding to the x and y directions.origin – The optional point at which the rotation should originate as a Coordinate. Defaults to
None, representing an origin of(0, 0).
Example:
>>> obj.skewBy(11) >>> obj.skewBy((25, 10), origin=(500, 500))
Normalization¶
Environment¶
- BaseGuideline.naked() Any¶
Return the environment’s native object wrapped by the current object.
- Raises:
NotImplementedError – If the method has not been overridden by a subclass.
Example:
>>> loweLevelObj = obj.naked()