rdf4j-postgis  Version 0.1.0.0
IsObliqueTriangle Class Reference
Inheritance diagram for IsObliqueTriangle:
Collaboration diagram for IsObliqueTriangle:

Public Member Functions

String getURI ()
 
boolean attribute (Geometry geom)
 
Value evaluate (ValueFactory valueFactory, Value... args) throws ValueExprEvaluationException
 

Static Package Functions

static double lengthSquare (Coordinate p1, Coordinate p2)
 

Member Function Documentation

◆ attribute()

boolean attribute ( Geometry  geom)

Reimplemented from GeometricBinaryAttributeFunction.

24  {
25  if (geom instanceof Polygon) {
26  if(geom.getCoordinates().length==3) {
27  Coordinate A=geom.getCoordinates()[0];
28  Coordinate B=geom.getCoordinates()[1];
29  Coordinate C=geom.getCoordinates()[2];
30  double a2 = lengthSquare(B,C);
31  double b2 = lengthSquare(A,C);
32  double c2 = lengthSquare(A,B);
33 
34  // length of sides be a, b, c
35  double a = Math.sqrt(a2);
36  double b = Math.sqrt(b2);
37  double c = Math.sqrt(c2);
38 
39  // From Cosine law
40  double alpha = Math.acos((b2 + c2 - a2)/(2*b*c));
41  double betta = Math.acos((a2 + c2 - b2)/(2*a*c));
42  double gamma = Math.acos((a2 + b2 - c2)/(2*a*b));
43 
44  // Converting to degree
45  alpha = (alpha * 180 / Math.PI);
46  betta = (betta * 180 / Math.PI);
47  gamma = (gamma * 180 / Math.PI);
48 
49  if(alpha<90 && betta<90 && gamma<90)
50  return true;
51  return false;
52  }
53  }
54  return false;
55  }
static double lengthSquare(Coordinate p1, Coordinate p2)
Definition: IsObliqueTriangle.java:16

References IsObliqueTriangle.lengthSquare().

◆ evaluate()

Value evaluate ( ValueFactory  valueFactory,
Value...  args 
) throws ValueExprEvaluationException
inherited
17  {
18  if (args.length != 1) {
19  throw new ValueExprEvaluationException(getURI() + " requires exactly 1 arguments, got " + args.length);
20  }
21 
22  LiteralType l=LiteralRegistry.getLiteral(((Literal)args[0]).getDatatype().toString());
23  System.out.println(l);
24  if(l instanceof VectorLiteral) {
25  Geometry geom=((VectorLiteral)l).read(args[0].stringValue());
26  boolean result = attribute(geom);
27  return valueFactory.createLiteral(result);
28  }
29  throw new ValueExprEvaluationException("Argument given is not a geometry literal");
30 
31  }

References GeometricBinaryAttributeFunction.attribute(), and LiteralRegistry.getLiteral().

Referenced by IsCollectionTest.testGeometryCollectionIsCollection(), HasConnectedInteriorTest.testHasConnectedInteriorFalse(), HasConnectedInteriorTest.testHasConnectedInteriorTrue(), HasDuplicateRingsTest.testHasDuplicateRingsFalse(), HasDuplicateRingsTest.testHasDuplicateRingsTrue(), HasHorizontalCRSTest.testHasHorizontalCRSFalse(), HasHorizontalCRSTest.testHasHorizontalCRSTrue(), HasRepeatedPointsTest.testHasRepeatedPoints(), HasRepeatedPointsTest.testHasRepeatedPoints2(), HasSelfIntersectionsTest.testHasSelfIntersectionsFalse(), HasSelfIntersectionsTest.testHasSelfIntersectionsTrue(), Is3DTest.testIs3DFalse(), IsAcuteTest.testIsAcuteFalse(), IsAcuteTest.testIsAcuteTrue(), IsConvexTest.testIsConvexFalse(), IsConvexTest.testIsConvexTrue(), IsEmptyTest.testIsEmptyFalse(), IsEmptyTest.testIsEmptyTrue(), IsEquilateralTriangleTest.testIsEquilateralTriangleFalse(), IsEquilateralTriangleTest.testIsEquilateralTriangleTrue(), IsIsocelesTriangleTest.testIsIsocelesTriangleFalse(), IsIsocelesTriangleTest.testIsIsocelesTriangleTrue(), IsMeasuredTest.testIsMeasuredFalse(), IsMeasuredTest.testIsMeasuredTrue(), IsNodingValidTest.testIsNodingValuedTrue(), IsObliqueTriangleTest.testIsObliqueTriangleFalse(), IsObtuseTriangleTest.testIsObliqueTriangleFalse(), IsObliqueTriangleTest.testIsObliqueTriangleTrue(), IsObtuseTriangleTest.testIsObliqueTriangleTrue(), IsPlanarTest.testIsPlanarTrue(), IsPolygonCCWTest.testIsPolygonCCWFalse(), IsPolygonCCWTest.testIsPolygonCCWTrue(), IsPolygonCWTest.testIsPolygonCWFalse(), IsPolygonCWTest.testIsPolygonCWTrue(), IsRectangleTest.testIsRectangleFalse(), IsRectangleTest.testIsRectangleTrue(), IsRightTriangleTest.testIsRightTriangleFalse(), IsRightTriangleTest.testIsRightTriangleTrue(), IsSolidTest.testIsSolidFalse(), IsSquareTest.testIsSquareFalse(), IsSquareTest.testIsSquareTrue(), IsTriangleTest.testIsTriangleFalse(), IsTriangleTest.testIsTriangleTrue(), IsValidTest.testIsValidFalse(), IsValidTest.testIsValidTrue(), IsClosedTest.testLineStringClosed(), IsCollectionTest.testLineStringIsCollection(), IsRingTest.testLineStringIsNotRing(), IsRingTest.testLineStringIsRing(), IsClosedTest.testLineStringNotClosed(), IsCollectionTest.testMultiLineStringIsCollection(), IsClosedTest.testMultiLineStringNotClosed(), IsClosedTest.testmultiPointClosed(), IsCollectionTest.testMultiPointIsCollection(), IsCollectionTest.testMultiPolygonIsCollection(), IsClosedTest.testpointClosed(), IsCollectionTest.testPointIsCollection(), IsCollectionTest.testPolygonIsCollection(), SridHasFlippedAxisTest.testSridHasFlippedAxis(), SridIsGeographicTest.testSridIsGeographicFalse(), SridIsGeographicTest.testSridIsGeographicTrue(), SridIsProjectedTest.testSridIsProjectedTrue(), and SridIsVerticalTest.testSridIsVerticalTrue().

◆ getURI()

String getURI ( )
12  {
13  return POSTGIS.st_isOblique.stringValue();
14  }

References POSTGIS.st_isOblique.

◆ lengthSquare()

static double lengthSquare ( Coordinate  p1,
Coordinate  p2 
)
staticpackage
17  {
18  double xDiff = p1.x- p2.x;
19  double yDiff = p1.y- p2.y;
20  return xDiff*xDiff + yDiff*yDiff;
21  }

Referenced by IsObliqueTriangle.attribute().