public final class ShapeField extends Object
Polygon
's and Line
's are decomposed into a triangular mesh using the Tessellator
utility class.
Each ShapeField.Triangle
is encoded by this base class and indexed as a seven dimension multi-value field.
Finding all shapes that intersect a range (e.g., bounding box), or target shape, at search time is efficient.
This class defines the static methods for encoding the three vertices of a tessellated triangles as a seven dimension point. The coordinates are converted from double precision values into 32 bit integers so they are sortable at index time.
Modifier and Type | Class and Description |
---|---|
static class |
ShapeField.DecodedTriangle
Represents a encoded triangle using
decodeTriangle(byte[], DecodedTriangle) . |
static class |
ShapeField.QueryRelation
Query Relation Types
|
static class |
ShapeField.Triangle
polygons are decomposed into tessellated triangles using
Tessellator
these triangles are encoded and inserted as separate indexed POINT fields |
Modifier and Type | Field and Description |
---|---|
protected static FieldType |
TYPE
tessellated triangles are seven dimensions; the first four are the bounding box index dimensions
|
Modifier and Type | Method and Description |
---|---|
static void |
decodeTriangle(byte[] t,
ShapeField.DecodedTriangle triangle)
Decode a triangle encoded by
encodeTriangle(byte[], int, int, boolean, int, int, boolean, int, int, boolean) . |
static void |
encodeTriangle(byte[] bytes,
int aY,
int aX,
boolean ab,
int bY,
int bX,
boolean bc,
int cY,
int cX,
boolean ca)
A triangle is encoded using 6 points and an extra point with encoded information in three bits of how to reconstruct it.
|
protected static final FieldType TYPE
public static void encodeTriangle(byte[] bytes, int aY, int aX, boolean ab, int bY, int bX, boolean bc, int cY, int cX, boolean ca)
public static void decodeTriangle(byte[] t, ShapeField.DecodedTriangle triangle)
encodeTriangle(byte[], int, int, boolean, int, int, boolean, int, int, boolean)
.Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.