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
3435cb22
Commit
3435cb22
authored
Feb 09, 2026
by
Luna Riegel
Browse files
Feat: Add skeleton of feature collision check
parent
723b8046
Changes
3
Hide whitespace changes
Inline
Side-by-side
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/CheckId.java
View file @
3435cb22
...
...
@@ -57,6 +57,7 @@ public record CheckId(String name) implements Serializable {
public
static
final
CheckId
C_GE_P_ORIENTATION_RINGS_SAME
=
new
CheckId
(
"C_GE_P_ORIENTATION_RINGS_SAME"
);
public
static
final
CheckId
C_SE_POLYGON_WITHOUT_SURFACE
=
new
CheckId
(
"C_SE_POLYGON_WITHOUT_SURFACE"
);
public
static
final
CheckId
C_TO_FEATURE_COLLISION
=
new
CheckId
(
"C_TO_FEATURE_COLLISION"
);
@Override
public
boolean
equals
(
Object
obj
)
{
if
(
this
==
obj
)
...
...
CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/Requirement.java
View file @
3435cb22
...
...
@@ -69,7 +69,8 @@ public class Requirement implements Serializable {
public
static
final
Requirement
R_SE_BS_IS_WALL
=
new
Requirement
(
"R_SE_BS_IS_WALL"
,
RequirementType
.
SEMANTIC
);
public
static
final
Requirement
R_SE_BS_IS_GROUND
=
new
Requirement
(
"R_SE_BS_IS_GROUND"
,
RequirementType
.
SEMANTIC
);
public
static
final
Requirement
R_SE_POLYGON_WITHOUT_SURFACE
=
new
Requirement
(
"R_SE_POLYGON_WITHOUT_SURFACE"
,
RequirementType
.
SEMANTIC
);
public
static
final
Requirement
R_TO_FEATURE_COLLISION
=
new
Requirement
(
"R_TO_FEATURE_COLLISION"
,
RequirementType
.
TOPOLOGY
);
static
{
// fill requirements with default parameters
ArrayList
<
DefaultParameter
>
defaultParameters
=
new
ArrayList
<>();
...
...
CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/topology/FeatureCollisionCheck.java
0 → 100644
View file @
3435cb22
package
de.hft.stuttgart.citydoctor2.checks.topology
;
import
de.hft.stuttgart.citydoctor2.check.Check
;
import
de.hft.stuttgart.citydoctor2.check.CheckId
;
import
de.hft.stuttgart.citydoctor2.check.Checkable
;
import
de.hft.stuttgart.citydoctor2.check.GlobalParameters
;
import
de.hft.stuttgart.citydoctor2.check.Requirement
;
import
de.hft.stuttgart.citydoctor2.check.RequirementType
;
import
de.hft.stuttgart.citydoctor2.checks.Checks
;
import
de.hft.stuttgart.citydoctor2.database.CityObjectCache
;
import
de.hft.stuttgart.citydoctor2.datastructure.CityObject
;
import
de.hft.stuttgart.citydoctor2.datastructure.LinearRing
;
import
de.hft.stuttgart.citydoctor2.parser.ParserConfiguration
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
public
class
FeatureCollisionCheck
extends
Check
{
private
static
final
List
<
CheckId
>
dependencies
;
private
double
epsilon
=
Checks
.
MIN_VERTEX_DISTANCE_DEFAULT
;
private
CityObjectCache
cache
;
static
{
ArrayList
<
CheckId
>
deps
=
new
ArrayList
<>();
deps
.
add
(
CheckId
.
C_GE_S_ALL_POLYGONS_WRONG_ORIENTATION
);
dependencies
=
Collections
.
unmodifiableList
(
deps
);
ArrayList
<
Class
<?
extends
Checkable
>>
classes
=
new
ArrayList
<>();
classes
.
add
(
LinearRing
.
class
);
}
@Override
public
List
<
CheckId
>
getDependencies
()
{
return
dependencies
;
}
@Override
public
Set
<
Requirement
>
appliesToRequirements
()
{
return
Set
.
of
(
Requirement
.
R_TO_FEATURE_COLLISION
);
}
@Override
public
CheckId
getCheckId
()
{
return
CheckId
.
C_TO_FEATURE_COLLISION
;
}
@Override
public
RequirementType
getType
()
{
return
RequirementType
.
TOPOLOGY
;
}
@Override
public
void
init
(
Map
<
CheckId
,
Map
<
String
,
String
>>
params
,
ParserConfiguration
config
,
CityObjectCache
cache
)
{
Map
<
String
,
String
>
localParameters
=
params
.
get
(
getCheckId
());
if
(
localParameters
==
null
)
{
// no parameters
return
;
}
String
epsilonString
=
localParameters
.
get
(
GlobalParameters
.
MIN_VERTEX_DISTANCE
);
if
(
epsilonString
!=
null
)
{
epsilon
=
Double
.
parseDouble
(
epsilonString
);
}
this
.
cache
=
cache
;
}
@Override
public
void
check
(
CityObject
co
){
}
@Override
public
Check
createNewInstance
()
{
return
new
FeatureCollisionCheck
();
}
}
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