Add production bathymetric sonar slice
This commit is contained in:
1 parent
a18e82eb44
commit
7613daee84
28 files changed
+1825
-87
No files matched your search
@@ -0,0 +1,39 @@
|
||||
class_name SonarContact
|
||||
extends RefCounted
|
||||
|
||||
const SonarMaterial = preload("res://game/domain/sonar/sonar_material.gd")
|
||||
|
||||
var contact_id: StringName
|
||||
var material: SonarMaterial.Value
|
||||
var center_m: Vector3
|
||||
var bounds: AABB
|
||||
var maximum_intensity: float
|
||||
var sample_count: int
|
||||
|
||||
|
||||
func _init(
|
||||
p_contact_id: StringName,
|
||||
p_material: SonarMaterial.Value,
|
||||
p_center_m: Vector3,
|
||||
p_bounds: AABB,
|
||||
p_maximum_intensity: float,
|
||||
p_sample_count: int
|
||||
) -> void:
|
||||
contact_id = p_contact_id
|
||||
material = p_material
|
||||
center_m = p_center_m
|
||||
bounds = p_bounds
|
||||
maximum_intensity = p_maximum_intensity
|
||||
sample_count = p_sample_count
|
||||
|
||||
|
||||
func validation_error() -> String:
|
||||
if contact_id.is_empty():
|
||||
return "sonar contact id is empty"
|
||||
if material == SonarMaterial.Value.UNKNOWN or not SonarMaterial.is_valid(material):
|
||||
return "sonar contact material is invalid"
|
||||
if sample_count <= 0:
|
||||
return "sonar contact sample count must be positive"
|
||||
if not is_finite(maximum_intensity) or maximum_intensity < 0.0 or maximum_intensity > 1.0:
|
||||
return "sonar contact intensity must be between 0 and 1"
|
||||
return ""
|
||||
Reference in new issue
Block a user