Segment¶
Description¶
A Contour object is a list of segments. A Segment is a list of points with some special attributes and methods.
Overview¶
Parents¶
Get or set the segment's parent contour object. |
|
Get the segment's parent glyph object. |
|
Get the segment's parent layer object. |
|
Get the segment's parent font object. |
Identification¶
Get the index of the segment. |
Attributes¶
Get or set the segment's type. |
|
Get or set the segment's smooth state. |
Points¶
Get a list of all points in the segment. |
|
Get the on-curve point in the segment. |
|
Get the off-curve points in the segment. |
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 coordinates in all the segment's points. |
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.BaseSegment(*args: Any, **kwargs: Any)[source]¶
Represent the basis for a segment object.
Parents¶
- BaseSegment.contour: dynamicProperty¶
Get or set the segment’s parent contour object.
The value must be a
BaseContourinstance orNone.- Returns:
The
BaseContourinstance containing the segment orNone.- Raises:
AssertionError – If attempting to set the contour when it has already been set.
Example:
>>> contour = segment.contour
- BaseSegment.glyph: dynamicProperty¶
Get the segment’s parent glyph object.
This property is read-only.
The value must be a
BaseGlyphinstance orNone.Example:
>>> glyph = segment.glyph
- BaseSegment.layer: dynamicProperty¶
Get the segment’s parent layer object.
This property is read-only.
Example:
>>> layer = segment.layer
Identification¶
Attributes¶
- BaseSegment.type: dynamicProperty¶
Get or set the segment’s type.
The value must be a
strcontaining one of the following alternatives:Type
Description
'move''line''curve''qcurve'An on-curve move to. An on-curve line to. An on-curve cubic curve to. An on-curve quadratic curve to.
- Returns:
A
strrepresenting the type of the segment.
Points¶
- BaseSegment.points: dynamicProperty¶
Get a list of all points in the segment.
This attribute is read-only.
- Returns:
A
tupleof :class`BasePoint` instances.
- BaseSegment.onCurve: dynamicProperty¶
Get the on-curve point in the segment.
This property is read-only.
Transformations¶
- BaseSegment.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))
- BaseSegment.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))
- BaseSegment.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))
- BaseSegment.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))
- BaseSegment.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¶
- BaseSegment.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()