summaryrefslogtreecommitdiff
path: root/servers/physics_server_3d.h
diff options
context:
space:
mode:
Diffstat (limited to 'servers/physics_server_3d.h')
-rw-r--r--servers/physics_server_3d.h15
1 files changed, 12 insertions, 3 deletions
diff --git a/servers/physics_server_3d.h b/servers/physics_server_3d.h
index b5113fd35f..89a7eeee96 100644
--- a/servers/physics_server_3d.h
+++ b/servers/physics_server_3d.h
@@ -125,6 +125,9 @@ public:
bool collide_with_bodies = true;
bool collide_with_areas = false;
+ bool hit_from_inside = false;
+ bool hit_back_faces = true;
+
bool pick_ray = false;
};
@@ -285,12 +288,15 @@ public:
//missing attenuation? missing better override?
enum AreaParameter {
+ AREA_PARAM_GRAVITY_OVERRIDE_MODE,
AREA_PARAM_GRAVITY,
AREA_PARAM_GRAVITY_VECTOR,
AREA_PARAM_GRAVITY_IS_POINT,
AREA_PARAM_GRAVITY_DISTANCE_SCALE,
AREA_PARAM_GRAVITY_POINT_ATTENUATION,
+ AREA_PARAM_LINEAR_DAMP_OVERRIDE_MODE,
AREA_PARAM_LINEAR_DAMP,
+ AREA_PARAM_ANGULAR_DAMP_OVERRIDE_MODE,
AREA_PARAM_ANGULAR_DAMP,
AREA_PARAM_PRIORITY,
AREA_PARAM_WIND_FORCE_MAGNITUDE,
@@ -312,9 +318,6 @@ public:
AREA_SPACE_OVERRIDE_REPLACE_COMBINE
};
- virtual void area_set_space_override_mode(RID p_area, AreaSpaceOverrideMode p_mode) = 0;
- virtual AreaSpaceOverrideMode area_get_space_override_mode(RID p_area) const = 0;
-
virtual void area_add_shape(RID p_area, RID p_shape, const Transform3D &p_transform = Transform3D(), bool p_disabled = false) = 0;
virtual void area_set_shape(RID p_area, int p_shape_idx, RID p_shape) = 0;
virtual void area_set_shape_transform(RID p_area, int p_shape_idx, const Transform3D &p_transform) = 0;
@@ -805,6 +808,12 @@ public:
void set_collide_with_areas(bool p_enable) { parameters.collide_with_areas = p_enable; }
bool is_collide_with_areas_enabled() const { return parameters.collide_with_areas; }
+ void set_hit_from_inside(bool p_enable) { parameters.hit_from_inside = p_enable; }
+ bool is_hit_from_inside_enabled() const { return parameters.hit_from_inside; }
+
+ void set_hit_back_faces(bool p_enable) { parameters.hit_back_faces = p_enable; }
+ bool is_hit_back_faces_enabled() const { return parameters.hit_back_faces; }
+
void set_exclude(const Vector<RID> &p_exclude);
Vector<RID> get_exclude() const;
};