Triangle class
A Triangle is a polygon with 3 distinct, non-collinear vertices and no interior boundary.
class Triangle extends Polygon { /** * Creates a triangle with the [exterior]. * * [exterior] must be a non-null, closed linestring with exactly three * distinct, non-colienar points. * * Throws [ArgumentError] if the preconditions aren't met. */ Triangle(LineString exterior) : super.triangle(exterior); }
Extends
Geometry > Surface > Polygon > Triangle
Constructors
new Triangle(LineString exterior) #
Creates a triangle with the exterior.
exterior must be a non-null, closed linestring with exactly three distinct, non-colienar points.
Throws ArgumentError
if the preconditions aren't met.
Triangle(LineString exterior) : super.triangle(exterior);
Properties
final String asText #
A WKT representation of the geometry
@specification(name:"asText()") String get asText { var buffer = new StringBuffer(); var writer = new _WKTWriter(buffer); _writeTaggedWKT(writer, withZ: is3D, withM: isMeasured); return buffer.toString(); }
final Geometry boundary #
Returns the closure of the combinatorial boundary of this geometric object
@override Geometry get boundary { if (isEmpty) return new MultiLineString.empty(); if (interiorRings.isEmpty) return exteriorRing; var rings = []; rings.add(exteriorRing); rings.addAll(interiorRings); return new MultiLineString(rings); }
final dimension #
The inherent dimension of this geometric object, which must be less than or equal to the coordinate dimension. In non-homogeneous collections, this will return the largest topological dimension of the contained objects.
@override get dimension => 2;
final LineString exteriorRing #
The exterior ring of this polygon.
Replies an empty linestring if this polygon is empty.
@specification(name:"exteriorRing()") LineString get exteriorRing => _exterior == null ? new LineString.empty() : _exterior;
final String geometryType #
Returns the name of the instantiable subtype of Geometry of which this geometric object is an instantiable member. The name of the subtype of Geometry is returned as a string.
@override String get geometryType => "Polygon";
final Iterable<LineString> interiorRings #
The interior rings. Replies an empty iterable, if this polygon doesn't have interior rings.
Iterable<LineString> get interiorRings => _interiors== null ? [] : _interiors;
final bool is3D #
Replies true if this polygon isn't empty and if both the exterior and each of the interior rings are 3D.
@override bool get is3D { bool ret = _exterior == null ? false : _exterior.is3D; if (interiorRings.length == 0) return ret; ret = ret && interiorRings.every((r) => r.is3D); return ret; }
final bool isEmpty #
Returns 1 true if this geometric object is the empty Geometry.
@override bool get isEmpty => _exterior == null;
final bool isMeasured #
Replies true if this polygon isn't empty and if both the exterior and each of the interior rings are measured.
@override bool get isMeasured { bool ret = _exterior == null ? false : _exterior.isMeasured; if (interiorRings.length == 0) return ret; ret = ret && interiorRings.every((r) => r.isMeasured); return ret; }
final bool isSimple #
Returns true if this geometric object has no anomalous geometric points, such as self intersection or self tangency.
@specification(name:"isSimple()") bool get isSimple;
final int numInteriorRing #
the number of interior rings
@specification(name:"numInteriorRing()") int get numInteriorRing => _interiors == null ? 0 : _interiors.length;
Methods
LineString interiorRingN(int n) #
Replies the n-th interior ring.
Throws a RangeError
if
n is out of range
@specification(name:"interiorRingN()") LineString interiorRingN(int n) => interiorRings.elementAt(n);