/** * Return the 3D area of all triangles * @return */ public double get3DArea(){ if(convertedInput != null) { List<DelaunayTriangle> delaunayTriangle = convertedInput.getTriangles(); double sum = 0; for (DelaunayTriangle triangle : delaunayTriangle) { sum += computeTriangleArea3D(triangle); } return sum; } else { return 0; } }
public void finalizeTriangulation() { _triUnit.addTriangles( _triList ); _triList.clear(); }
public void prepareTriangulation( Triangulatable t ) { _triUnit = t; _triangulationMode = t.getTriangulationMode(); t.prepareTriangulation( this ); }
protected void meshClean(DelaunayTriangle triangle) { DelaunayTriangle t1,t2; if( triangle != null ) { ArrayDeque<DelaunayTriangle> deque = new ArrayDeque<DelaunayTriangle>(); deque.addFirst(triangle); triangle.isInterior(true); while( !deque.isEmpty() ) { t1 = deque.removeFirst(); _triUnit.addTriangle( t1 ); for( int i=0; i<3; ++i ) { if( !t1.cEdge[i] ) { t2 = t1.neighbors[i]; if( t2 != null && !t2.isInterior()) { t2.isInterior(true); deque.addLast(t2); } } } } } }
/** * Return the 3D area of all triangles * @return */ public double get3DArea(){ if(convertedInput != null) { List<DelaunayTriangle> delaunayTriangle = convertedInput.getTriangles(); double sum = 0; for (DelaunayTriangle triangle : delaunayTriangle) { sum += computeTriangleArea3D(triangle); } return sum; } else { return 0; } }
/** * Return the 3D area of all triangles * @return */ public double get3DArea(){ if(convertedInput != null) { List<DelaunayTriangle> delaunayTriangle = convertedInput.getTriangles(); double sum = 0; for (DelaunayTriangle triangle : delaunayTriangle) { sum += computeTriangleArea3D(triangle); } return sum; } else { return 0; } }
/** * @return Unique triangles edges */ public MultiLineString getTrianglesSides() { List<DelaunayTriangle> delaunayTriangle = convertedInput.getTriangles(); // Remove duplicates edges thanks to this hash map of normalized line segments Set<LineSegment> segmentHashMap = new HashSet<LineSegment>(delaunayTriangle.size()); for(DelaunayTriangle triangle : delaunayTriangle) { TriangulationPoint[] pts = triangle.points; addSegment(segmentHashMap, pts[0], pts[1]); addSegment(segmentHashMap, pts[1], pts[2]); addSegment(segmentHashMap, pts[2], pts[0]); } LineString[] lineStrings = new LineString[segmentHashMap.size()]; int i = 0; for(LineSegment lineSegment : segmentHashMap) { lineStrings[i++] = lineSegment.toGeometry(gf); } return gf.createMultiLineString(lineStrings); }
/** * @return Unique triangles edges */ public MultiLineString getTrianglesSides() { List<DelaunayTriangle> delaunayTriangle = convertedInput.getTriangles(); // Remove duplicates edges thanks to this hash map of normalized line segments Set<LineSegment> segmentHashMap = new HashSet<LineSegment>(delaunayTriangle.size()); for(DelaunayTriangle triangle : delaunayTriangle) { TriangulationPoint[] pts = triangle.points; addSegment(segmentHashMap, pts[0], pts[1]); addSegment(segmentHashMap, pts[1], pts[2]); addSegment(segmentHashMap, pts[2], pts[0]); } LineString[] lineStrings = new LineString[segmentHashMap.size()]; int i = 0; for(LineSegment lineSegment : segmentHashMap) { lineStrings[i++] = lineSegment.toGeometry(gf); } return gf.createMultiLineString(lineStrings); }
/** * @return Unique triangles edges */ public MultiLineString getTrianglesSides() { List<DelaunayTriangle> delaunayTriangle = convertedInput.getTriangles(); // Remove duplicates edges thanks to this hash map of normalized line segments Set<LineSegment> segmentHashMap = new HashSet<LineSegment>(delaunayTriangle.size()); for(DelaunayTriangle triangle : delaunayTriangle) { TriangulationPoint[] pts = triangle.points; addSegment(segmentHashMap, pts[0], pts[1]); addSegment(segmentHashMap, pts[1], pts[2]); addSegment(segmentHashMap, pts[2], pts[0]); } LineString[] lineStrings = new LineString[segmentHashMap.size()]; int i = 0; for(LineSegment lineSegment : segmentHashMap) { lineStrings[i++] = lineSegment.toGeometry(gf); } return gf.createMultiLineString(lineStrings); }
public MultiPolygon getTriangles() { if(convertedInput != null) { List<DelaunayTriangle> delaunayTriangle = convertedInput.getTriangles(); // Convert into multi polygon Polygon[] polygons = new Polygon[delaunayTriangle.size()]; for (int idTriangle = 0; idTriangle < polygons.length; idTriangle++) { TriangulationPoint[] pts = delaunayTriangle.get(idTriangle).points; polygons[idTriangle] = gf.createPolygon(new Coordinate[]{toJts(isInput2D, pts[0]), toJts(isInput2D, pts[1]), toJts(isInput2D, pts[2]), toJts(isInput2D, pts[0])}); } return gf.createMultiPolygon(polygons); } else { return gf.createMultiPolygon(new Polygon[0]); } }
public MultiPolygon getTriangles() { if(convertedInput != null) { List<DelaunayTriangle> delaunayTriangle = convertedInput.getTriangles(); // Convert into multi polygon Polygon[] polygons = new Polygon[delaunayTriangle.size()]; for (int idTriangle = 0; idTriangle < polygons.length; idTriangle++) { TriangulationPoint[] pts = delaunayTriangle.get(idTriangle).points; polygons[idTriangle] = gf.createPolygon(new Coordinate[]{toJts(isInput2D, pts[0]), toJts(isInput2D, pts[1]), toJts(isInput2D, pts[2]), toJts(isInput2D, pts[0])}); } return gf.createMultiPolygon(polygons); } else { return gf.createMultiPolygon(new Polygon[0]); } }
public MultiPolygon getTriangles() { if(convertedInput != null) { List<DelaunayTriangle> delaunayTriangle = convertedInput.getTriangles(); // Convert into multi polygon Polygon[] polygons = new Polygon[delaunayTriangle.size()]; for (int idTriangle = 0; idTriangle < polygons.length; idTriangle++) { TriangulationPoint[] pts = delaunayTriangle.get(idTriangle).points; polygons[idTriangle] = gf.createPolygon(new Coordinate[]{toJts(isInput2D, pts[0]), toJts(isInput2D, pts[1]), toJts(isInput2D, pts[2]), toJts(isInput2D, pts[0])}); } return gf.createMultiPolygon(polygons); } else { return gf.createMultiPolygon(new Polygon[0]); } }