Optional
type: GeometryTypeConstruct an empty Geometry. The geometry type must be a GeometryType. The default type is GeometryType.Path.
Readonly
boundsThis read-only property returns a rectangle that contains all points within the Geometry. The result will always contain the origin (0, 0).
Gets or sets the Shape.geometryStretch value the Shape should use by default when the Shape.geometryStretch value is GeometryStretch.None. The default value is GeometryStretch.Fill. Some figure generators return a Geometry with this property set to GeometryStretch.Uniform, in order to preserve its aspect ratio when used by a Shape that may have different sizes.
Gets or sets the List of PathFigures that describes the content of the path for Geometries of type Path.
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. The default value is Spot.TopLeft, at the top-left point of the bounds of the Shape.
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. The default value is Spot.BottomRight, at the bottom-right point of the bounds of the Shape.
Gets or sets the type of the Geometry. The default type is GeometryType.Path.
Add a PathFigure to the figures list.
a newly allocated unshared PathFigure that will become owned by this Geometry
this
Virtual
copyReturns the point at the fractional distance (0-1) along this Geometry's path.
A fractional amount between 0 and 1, inclusive.
Optional
result: Pointan optional Point that is modified and returned; otherwise it allocates and returns a new Point.
the Point, in local coordinates, of the fractional distance along the path.
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. 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.
Rotates the Geometry in place by a given angle, with optional x and y values to rotate the geometry about. If no x and y value are given, (0, 0) is used as the rotation point.
The angle to rotate by.
Optional
x: numberThe optional X point to rotate the geometry about. If no point is given, this value is 0.
Optional
y: numberThe optional Y point to rotate the geometry about. If no point is given, this value is 0.
this
Scales the Geometry in place by a given (x, y) scale factor.
If you want to flip a Geometry horizontally, call geo.scale(-1, 1)
.
If you want to flip a Geometry vertically, call geo.scale(1, -1)
.
The x-axis scale factor.
The y-axis scale factor.
this
Static
fillStatic
parseProduce a Geometry from a string that uses an SVG-like compact path geometry syntax. 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:
M (x,y)+
- Move commandsL (x,y)+, H (x)+, V (y)+
Lines commands, including horizontal and vertical linesC (x1 y1 x2 y2 x y)+, S (x2 y2 x y)+
Cubic bezier curvesQ (x1 y1 x y)+, T (x y)+
Quadratic bezier curvesA (rx ry x-axis-rotation large-arc-flag clockwise-flag x y)+
Arcs (following SVG arc conventions)Z
Denotes that the previous subpath is closedAdditionally there are some tokens specific to GoJS:
B (startAngle, sweepAngle, centerX, centerY, radius)+
Arcs following GoJS canvas arc conventionsX
Used before M-commands to denote separate PathFigures instead of a subpathF
Denotes whether the current PathFigure is filled (true if F is present)F0
(instead of F
) Denotes that the PathFigure should use the even-odd fill rule instead of the nonzero winding number rule (setting PathFigure.isEvenOdd)U
Denotes that the PathFigure is not shadowedSee the Introduction page on Geometry Parsing for more details.
Optional
filled: booleanwhether figures should be filled. If true, all PathFigures in the string will be filled regardless of the presence of an "F" command or not. If false, all PathFigures will determine their own filled state by the presence of an "F" command or not. Default is false.
Static
stringifyThis static function can be used to write out a Geometry as a string that can be read by Geometry.parse.
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.
a Geometry to be rendered as a string
Static
stringifyThis static function returns a function that can be used as a back converter for a Binding to write out a Geometry as a string with its numbers at a fixed number of digits after the decimal point.
This is useful for limiting the size of JSON output and making it more legible. It might also be useful for regression testing.
must be a non-negative integer
a function that converts a Geometry to a string without so many decimals
This static function returns a function that can be used as a back converter for a Binding to write out a Geometry as a string with its numbers at a fixed number of digits after the decimal point.
This is useful for limiting the size of JSON output and making it more legible. It might also be useful for regression testing.
a function that converts a Geometry to a string without so many decimals
Static
Readonly
EllipseStatic
Readonly
LineStatic
Readonly
PathStatic
Readonly
Rectangle
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:
See samples that make use of Geometries in the samples index.