Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
CityDoctor
CityDoctor2
Commits
2c9eea60
Commit
2c9eea60
authored
Jun 23, 2026
by
Numanoglu
Browse files
Refine AABB BVH heuristic exploration
parent
35a777b9
Changes
52
Hide whitespace changes
Inline
Side-by-side
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/
bht
/AABB.java
→
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/
aabb
/AABB.java
View file @
2c9eea60
package
de.hft.stuttgart.citydoctor2.datastructure.
bht
;
package
de.hft.stuttgart.citydoctor2.datastructure.
aabb
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/
bht
/AABBUtils.java
→
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/
aabb
/AABBUtils.java
View file @
2c9eea60
package
de.hft.stuttgart.citydoctor2.datastructure.
bht
;
package
de.hft.stuttgart.citydoctor2.datastructure.
aabb
;
import
java.util.HashSet
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.Set
;
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/
bht
/BinarySplitResult.java
→
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/
aabb
/BinarySplitResult.java
View file @
2c9eea60
package
de.hft.stuttgart.citydoctor2.datastructure.
bht
;
package
de.hft.stuttgart.citydoctor2.datastructure.
aabb
;
import
java.util.List
;
import
java.util.List
;
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/
bht
/BinarySplitters.java
→
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/
aabb
/BinarySplitters.java
View file @
2c9eea60
package
de.hft.stuttgart.citydoctor2.datastructure.
bht
;
package
de.hft.stuttgart.citydoctor2.datastructure.
aabb
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Comparator
;
import
java.util.Comparator
;
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/
bht
/BoundingVolumeHierarchyTree.java
→
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/
aabb
/BoundingVolumeHierarchyTree.java
View file @
2c9eea60
package
de.hft.stuttgart.citydoctor2.datastructure.
bht
;
package
de.hft.stuttgart.citydoctor2.datastructure.
aabb
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/
bht
/BvhBuildItem.java
→
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/
aabb
/BvhBuildItem.java
View file @
2c9eea60
package
de.hft.stuttgart.citydoctor2.datastructure.
bht
;
package
de.hft.stuttgart.citydoctor2.datastructure.
aabb
;
final
class
BvhBuildItem
<
E
>
{
final
class
BvhBuildItem
<
E
>
{
final
E
element
;
final
E
element
;
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/
bht
/Node.java
→
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/
aabb
/Node.java
View file @
2c9eea60
package
de.hft.stuttgart.citydoctor2.datastructure.
bht
;
package
de.hft.stuttgart.citydoctor2.datastructure.
aabb
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/
bht
/OctonarySplitResult.java
→
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/
aabb
/OctonarySplitResult.java
View file @
2c9eea60
package
de.hft.stuttgart.citydoctor2.datastructure.
bht
;
package
de.hft.stuttgart.citydoctor2.datastructure.
aabb
;
import
java.util.List
;
import
java.util.List
;
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/
bht
/OctonarySplitters.java
→
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/
aabb
/OctonarySplitters.java
View file @
2c9eea60
package
de.hft.stuttgart.citydoctor2.datastructure.
bht
;
package
de.hft.stuttgart.citydoctor2.datastructure.
aabb
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Comparator
;
import
java.util.Comparator
;
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/
bht
/Point3d.java
→
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/
aabb
/Point3d.java
View file @
2c9eea60
package
de.hft.stuttgart.citydoctor2.datastructure.
bht
;
package
de.hft.stuttgart.citydoctor2.datastructure.
aabb
;
import
org.locationtech.jts.geom.Coordinate
;
import
org.locationtech.jts.geom.Coordinate
;
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/
bht
/SplitStrategy.java
→
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/
aabb
/SplitStrategy.java
View file @
2c9eea60
package
de.hft.stuttgart.citydoctor2.datastructure.
bht
;
package
de.hft.stuttgart.citydoctor2.datastructure.
aabb
;
public
enum
SplitStrategy
{
public
enum
SplitStrategy
{
AUTO
,
AUTO
,
...
...
CityDoctorParent/CityDoctorModel/src/test/java/de/hft/stuttgart/citydoctor2/datastructure/
bht
/AABBTest.java
→
CityDoctorParent/CityDoctorModel/src/test/java/de/hft/stuttgart/citydoctor2/datastructure/
aabb
/AABBTest.java
View file @
2c9eea60
package
de.hft.stuttgart.citydoctor2.datastructure.
bht
;
package
de.hft.stuttgart.citydoctor2.datastructure.
aabb
;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.List
;
...
...
CityDoctorParent/CityDoctorModel/src/test/java/de/hft/stuttgart/citydoctor2/datastructure/
bht
/BoundingVolumeHierarchyTreeVariantsTest.java
→
CityDoctorParent/CityDoctorModel/src/test/java/de/hft/stuttgart/citydoctor2/datastructure/
aabb
/BoundingVolumeHierarchyTreeVariantsTest.java
View file @
2c9eea60
package
de.hft.stuttgart.citydoctor2.datastructure.
bht
;
package
de.hft.stuttgart.citydoctor2.datastructure.
aabb
;
import
static
org
.
junit
.
Assert
.
assertEquals
;
import
static
org
.
junit
.
Assert
.
assertEquals
;
import
static
org
.
junit
.
Assert
.
assertFalse
;
import
static
org
.
junit
.
Assert
.
assertFalse
;
...
...
CityDoctorParent/CityDoctorModel/src/test/java/de/hft/stuttgart/citydoctor2/datastructure/
bht
/TestHouseAABB.java
→
CityDoctorParent/CityDoctorModel/src/test/java/de/hft/stuttgart/citydoctor2/datastructure/
aabb
/TestHouseAABB.java
View file @
2c9eea60
package
de.hft.stuttgart.citydoctor2.datastructure.
bht
;
package
de.hft.stuttgart.citydoctor2.datastructure.
aabb
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
...
...
CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/
bht
/NestedRingsCheckAABB.java
→
CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/
aabb
/NestedRingsCheckAABB.java
View file @
2c9eea60
...
@@ -16,7 +16,7 @@
...
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Lesser General Public License
* You should have received a copy of the GNU Lesser General Public License
* along with CityDoctor2. If not, see <https://www.gnu.org/licenses/>.
* along with CityDoctor2. If not, see <https://www.gnu.org/licenses/>.
*/
*/
package
de.hft.stuttgart.citydoctor2.checks.
bht
;
package
de.hft.stuttgart.citydoctor2.checks.
aabb
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.Collections
;
...
@@ -38,8 +38,8 @@ import de.hft.stuttgart.citydoctor2.datastructure.LinearRing;
...
@@ -38,8 +38,8 @@ import de.hft.stuttgart.citydoctor2.datastructure.LinearRing;
import
de.hft.stuttgart.citydoctor2.datastructure.Polygon
;
import
de.hft.stuttgart.citydoctor2.datastructure.Polygon
;
import
de.hft.stuttgart.citydoctor2.datastructure.Vertex
;
import
de.hft.stuttgart.citydoctor2.datastructure.Vertex
;
import
de.hft.stuttgart.citydoctor2.datastructure.
bht
.AABB
;
import
de.hft.stuttgart.citydoctor2.datastructure.
aabb
.AABB
;
import
de.hft.stuttgart.citydoctor2.datastructure.
bht
.AABBUtils
;
import
de.hft.stuttgart.citydoctor2.datastructure.
aabb
.AABBUtils
;
/**
/**
* Checks whether a inner ring is completely contained in another inner ring
* Checks whether a inner ring is completely contained in another inner ring
...
...
CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/
bht
/RingSelfIntCheckAABB.java
→
CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/
aabb
/RingSelfIntCheckAABB.java
View file @
2c9eea60
...
@@ -16,7 +16,7 @@
...
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Lesser General Public License
* You should have received a copy of the GNU Lesser General Public License
* along with CityDoctor2. If not, see <https://www.gnu.org/licenses/>.
* along with CityDoctor2. If not, see <https://www.gnu.org/licenses/>.
*/
*/
package
de.hft.stuttgart.citydoctor2.checks.
bht
;
package
de.hft.stuttgart.citydoctor2.checks.
aabb
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.Collections
;
...
@@ -51,8 +51,8 @@ import de.hft.stuttgart.citydoctor2.math.Vector3d;
...
@@ -51,8 +51,8 @@ import de.hft.stuttgart.citydoctor2.math.Vector3d;
import
de.hft.stuttgart.citydoctor2.parser.ParserConfiguration
;
import
de.hft.stuttgart.citydoctor2.parser.ParserConfiguration
;
import
de.hft.stuttgart.citydoctor2.datastructure.
bht
.AABB
;
import
de.hft.stuttgart.citydoctor2.datastructure.
aabb
.AABB
;
import
de.hft.stuttgart.citydoctor2.datastructure.
bht
.AABBUtils
;
import
de.hft.stuttgart.citydoctor2.datastructure.
aabb
.AABBUtils
;
/**
/**
* Checks whether a ring self intersects. Also checks if a point is too close to
* Checks whether a ring self intersects. Also checks if a point is too close to
...
...
CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/
bht
/SolidSelfIntCheckAABB.java
→
CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/
aabb
/SolidSelfIntCheckAABB.java
View file @
2c9eea60
...
@@ -16,7 +16,7 @@
...
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Lesser General Public License
* You should have received a copy of the GNU Lesser General Public License
* along with CityDoctor2. If not, see <https://www.gnu.org/licenses/>.
* along with CityDoctor2. If not, see <https://www.gnu.org/licenses/>.
*/
*/
package
de.hft.stuttgart.citydoctor2.checks.
bht
;
package
de.hft.stuttgart.citydoctor2.checks.
aabb
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
...
@@ -39,8 +39,8 @@ import de.hft.stuttgart.citydoctor2.datastructure.GeometryType;
...
@@ -39,8 +39,8 @@ import de.hft.stuttgart.citydoctor2.datastructure.GeometryType;
import
de.hft.stuttgart.citydoctor2.datastructure.Polygon
;
import
de.hft.stuttgart.citydoctor2.datastructure.Polygon
;
import
de.hft.stuttgart.citydoctor2.utils.PolygonIntersection
;
import
de.hft.stuttgart.citydoctor2.utils.PolygonIntersection
;
import
de.hft.stuttgart.citydoctor2.datastructure.
bht
.AABB
;
import
de.hft.stuttgart.citydoctor2.datastructure.
aabb
.AABB
;
import
de.hft.stuttgart.citydoctor2.datastructure.
bht
.BoundingVolumeHierarchyTree
;
import
de.hft.stuttgart.citydoctor2.datastructure.
aabb
.BoundingVolumeHierarchyTree
;
/**
/**
* Check for self intersecting solids
* Check for self intersecting solids
...
...
CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/NestedRingsCheck.java
View file @
2c9eea60
...
@@ -39,9 +39,9 @@ import de.hft.stuttgart.citydoctor2.checks.util.CollectionUtils;
...
@@ -39,9 +39,9 @@ import de.hft.stuttgart.citydoctor2.checks.util.CollectionUtils;
import
de.hft.stuttgart.citydoctor2.datastructure.LinearRing
;
import
de.hft.stuttgart.citydoctor2.datastructure.LinearRing
;
import
de.hft.stuttgart.citydoctor2.datastructure.Polygon
;
import
de.hft.stuttgart.citydoctor2.datastructure.Polygon
;
import
de.hft.stuttgart.citydoctor2.datastructure.Vertex
;
import
de.hft.stuttgart.citydoctor2.datastructure.Vertex
;
import
de.hft.stuttgart.citydoctor2.datastructure.
bht
.AABB
;
import
de.hft.stuttgart.citydoctor2.datastructure.
aabb
.AABB
;
import
de.hft.stuttgart.citydoctor2.datastructure.
bht
.BoundingVolumeHierarchyTree
;
import
de.hft.stuttgart.citydoctor2.datastructure.
aabb
.BoundingVolumeHierarchyTree
;
import
de.hft.stuttgart.citydoctor2.datastructure.
bht
.SplitStrategy
;
import
de.hft.stuttgart.citydoctor2.datastructure.
aabb
.SplitStrategy
;
/**
/**
* Checks whether a inner ring is completely contained in another inner ring
* Checks whether a inner ring is completely contained in another inner ring
...
...
CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/RingSelfIntCheck.java
View file @
2c9eea60
...
@@ -42,9 +42,9 @@ import de.hft.stuttgart.citydoctor2.datastructure.Edge;
...
@@ -42,9 +42,9 @@ import de.hft.stuttgart.citydoctor2.datastructure.Edge;
import
de.hft.stuttgart.citydoctor2.datastructure.Geometry
;
import
de.hft.stuttgart.citydoctor2.datastructure.Geometry
;
import
de.hft.stuttgart.citydoctor2.datastructure.LinearRing
;
import
de.hft.stuttgart.citydoctor2.datastructure.LinearRing
;
import
de.hft.stuttgart.citydoctor2.datastructure.Vertex
;
import
de.hft.stuttgart.citydoctor2.datastructure.Vertex
;
import
de.hft.stuttgart.citydoctor2.datastructure.
bht
.AABB
;
import
de.hft.stuttgart.citydoctor2.datastructure.
aabb
.AABB
;
import
de.hft.stuttgart.citydoctor2.datastructure.
bht
.BoundingVolumeHierarchyTree
;
import
de.hft.stuttgart.citydoctor2.datastructure.
aabb
.BoundingVolumeHierarchyTree
;
import
de.hft.stuttgart.citydoctor2.datastructure.
bht
.SplitStrategy
;
import
de.hft.stuttgart.citydoctor2.datastructure.
aabb
.SplitStrategy
;
import
de.hft.stuttgart.citydoctor2.math.CovarianceMatrix
;
import
de.hft.stuttgart.citydoctor2.math.CovarianceMatrix
;
import
de.hft.stuttgart.citydoctor2.math.DistanceResult
;
import
de.hft.stuttgart.citydoctor2.math.DistanceResult
;
import
de.hft.stuttgart.citydoctor2.math.Matrix3x3d
;
import
de.hft.stuttgart.citydoctor2.math.Matrix3x3d
;
...
...
CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheck.java
View file @
2c9eea60
...
@@ -37,9 +37,9 @@ import de.hft.stuttgart.citydoctor2.checks.util.CollectionUtils;
...
@@ -37,9 +37,9 @@ import de.hft.stuttgart.citydoctor2.checks.util.CollectionUtils;
import
de.hft.stuttgart.citydoctor2.checks.util.SelfIntersectionUtil
;
import
de.hft.stuttgart.citydoctor2.checks.util.SelfIntersectionUtil
;
import
de.hft.stuttgart.citydoctor2.datastructure.Geometry
;
import
de.hft.stuttgart.citydoctor2.datastructure.Geometry
;
import
de.hft.stuttgart.citydoctor2.datastructure.GeometryType
;
import
de.hft.stuttgart.citydoctor2.datastructure.GeometryType
;
import
de.hft.stuttgart.citydoctor2.datastructure.
bht
.AABB
;
import
de.hft.stuttgart.citydoctor2.datastructure.
aabb
.AABB
;
import
de.hft.stuttgart.citydoctor2.datastructure.
bht
.BoundingVolumeHierarchyTree
;
import
de.hft.stuttgart.citydoctor2.datastructure.
aabb
.BoundingVolumeHierarchyTree
;
import
de.hft.stuttgart.citydoctor2.datastructure.
bht
.SplitStrategy
;
import
de.hft.stuttgart.citydoctor2.datastructure.
aabb
.SplitStrategy
;
import
de.hft.stuttgart.citydoctor2.parser.ParserConfiguration
;
import
de.hft.stuttgart.citydoctor2.parser.ParserConfiguration
;
import
de.hft.stuttgart.citydoctor2.utils.PolygonIntersection
;
import
de.hft.stuttgart.citydoctor2.utils.PolygonIntersection
;
...
...
Prev
1
2
3
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment