Class Geometry
The Geometry class is used to define the "shape" of a Shape. A Geometry can be simple straight lines, rectangles, or ellipses. A Geometry can also be an arbitrarily complex path, consisting of a list of PathFigures.
A Geometry must not be modified once it has been used by a Shape. However, a Geometry may be shared by multiple Shapes.
It is commonplace to create Geometries using geometry path string syntax: Geometry Path Strings. However it is much more efficient to create Geometries programmatically. One way to do that is illustrated by several of the samples that evaluate JavaScript such as:
new go.Geometry() .add(new go.PathFigure(p.x, p.y) .add(new go.PathSegment(go.PathSegment.Arc, -sweep/2, sweep, 0, 0, radius+layerThickness, radius+layerThickness)) .add(new go.PathSegment(go.PathSegment.Line, q.x, q.y)) .add(new go.PathSegment(go.PathSegment.Arc, sweep/2, -sweep, 0, 0, radius, radius).close()));See samples that make use of Geometries in the samples index.
Constructor Summary Details
Name | Description |
---|---|
Geometry(type)
|
Construct an empty Geometry.More... The geometry type must be one of the following values: Geometry.Line, Geometry.Ellipse, Geometry.Rectangle, Geometry.Path.
|
Properties Summary Details
Name, Value Type | Description |
---|---|
bounds
{Rect}
|
This read-only property returns a rectangle that contains all points within the Geometry.More... The result will always contain the origin (0, 0). |
defaultStretch
{EnumValue}
1.5
|
Gets or sets the Shape.geometryStretch value the Shape should use by default when the Shape.geometryStretch value is GraphObject.None.More... The default value is GraphObject.Fill. Some figure generators return a Geometry with this property set to GraphObject.Uniform, in order to preserve its aspect ratio when used by a Shape that may have different sizes. |
endX
{number}
|
|
endY
{number}
|
|
figures
{List.
|
Gets or sets the List of PathFigures that describes the content of the path for Geometries of type Path. |
spot1
{Spot}
|
Gets or sets the spot an "Auto" Panel will use for the top-left corner of any panel content when the Shape.spot1 value is Spot.Default.More... The default value is Spot.TopLeft, at the top-left point of the bounds of the Shape. |
spot2
{Spot}
|
Gets or sets the spot an "Auto" Panel will use for the bottom-right corner of any panel content when the Shape.spot2 value is Spot.Default.More... The default value is Spot.BottomRight, at the bottom-right point of the bounds of the Shape. |
startX
{number}
|
|
startY
{number}
|
|
type
{EnumValue}
|
Gets or sets the type of the Geometry.More... The default type is Geometry.Path. Other permissible values are Geometry.Line, Geometry.Ellipse, or Geometry.Rectangle. |
Method Summary Details
Name, Return Type | Description |
---|---|
add(figure)
{Geometry}
1.5
|
Add a PathFigure to the figures list.More...
|
computeBoundsWithoutOrigin()
{Rect}
1.1
|
|
copy()
{Geometry}
|
Create a copy of this Geometry, with the same values and figures.
|
<static>
Geometry.fillPath(str)
{string}
1.1
|
Given a SVG or GoJS path string, returns a congruent path string with each pathfigure filled.More... For instance, "M0 0 L22 22 L33 0" would become "F M0 0 L22 22 L33 0".
|
normalize()
{Point}
1.1
|
Normalizes the Geometry points in place by ensuring the top-left bounds of the geometry lines up with (0, 0), returning the Point (x, y) amount it was shifted.More... After this method is called there will be no negative X or Y value for the Geometry's bounds, and no empty space at the top-left of the Geometry.
|
offset(x, y)
{Geometry}
1.1
|
|
<static>
Geometry.parse(str, filled)
{Geometry}
|
Produce a Geometry from a string that uses an SVG-like compact path geometry syntax.More...
The syntax accepts all SVG Path Syntax (SVG Path Syntax (w3.org)),
as well as three GoJS-specific tokens.
Specifically, the following tokens are allowed:
|
rotate(angle, x, y)
{Geometry}
1.1
|
Rotates the Geometry in place by a given angle, with optional x and y values to rotate the geometry about.More... If no x and y value are given, (0, 0) is used as the rotation point.
|
scale(x, y)
{Geometry}
1.1
|
Scales the Geometry in place by a given (x, y) scale factor.More...
If you want to flip a Geometry horizontally, call
|
<static>
Geometry.stringify(val)
{string}
1.1
|
This static function can be used to write out a Geometry as a string that can be read by Geometry.parse.More... The string produced by this method is a superset of the SVG path string rules that contains some additional GoJS-specific tokens. See the Introduction page on Geometry Parsing for more details.
|
Constants Summary Details
Name | Description |
---|---|
Ellipse
{EnumValue}
|
|
Line
{EnumValue}
|
|
Path
{EnumValue}
|
For drawing a complex path made of a list of PathFigures; a value for Geometry.type. |
Rectangle
{EnumValue}
|