[ https://issues.apache.org/jira/browse/LUCENE-8581?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16707612#comment-16707612 ]
Nicholas Knize commented on LUCENE-8581: ---------------------------------------- Thanks [~ivera] {{setTriangleValue((aLon), (aLat), (bLon), (bLat), (cLon), (cLat));}} I think it would be good to keep the calls to {{encodeLatitude}} and {{encodeLongitude}} here. The tessellator already encodes polygon triangles, so there's no need to call the encode methods twice. {{setTriangleValue(t.getLon(0), t.getLat(0), t.getLon(1), t.getLat(1), t.getLon(2), t.getLat(2));}} Just keep the calls to {{getEncodedX}} {{getEncodedY}} to unnecessarily encode twice. {code:java} int ccw = GeoUtils.orient(aLon, aLat, bLon, bLat, cLon, cLat); if (ccw == 1) { throw new IllegalArgumentException("Orientation of the triangle cannot be clock-wise"); }{code} Encoding should be orientation agnostic, but congruent (order preserved). I think we should remove the orientation dependency. {code:java} if (minY == aY && minX == aX) { ...{code} For maintenance I'd really like to reduce this tree of conditionals. Its pretty hard to follow. However, I think we could do that in a separate issue/patch iteration (this is in sandbox after all). For now, lets at least make sure this code is well documented so it's clear what's going on. > Change LatLonShape encoding to use 4 BYTES Per Dimension > -------------------------------------------------------- > > Key: LUCENE-8581 > URL: https://issues.apache.org/jira/browse/LUCENE-8581 > Project: Lucene - Core > Issue Type: New Feature > Reporter: Nicholas Knize > Assignee: Ignacio Vera > Priority: Major > Attachments: LUCENE-8581.patch > > > {{LatLonShape}} tessellated triangles currently use a relatively naive > encoding with the first four dimensions as the bounding box of the triangle > and the last three dimensions as the vertices of the triangle. To encode the > {{x,y}} vertices in the last three dimensions requires {{bytesPerDim}} to be > set to 8, with 4 bytes for the x & y axis, respectively. We can reduce > {{bytesPerDim}} to 4 by encoding the index(es) of the vertices shared by the > bounding box along with the orientation of the triangle. This also opens the > door for supporting {{CONTAINS}} queries. -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org