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);