|
@@ -80,7 +80,7 @@ public:
|
|
virtual Vector3 get_support(const Vector3 &p_normal) const;
|
|
virtual Vector3 get_support(const Vector3 &p_normal) const;
|
|
virtual void get_supports(const Vector3 &p_normal, int p_max, Vector3 *r_supports, int &r_amount, FeatureType &r_type) const = 0;
|
|
virtual void get_supports(const Vector3 &p_normal, int p_max, Vector3 *r_supports, int &r_amount, FeatureType &r_type) const = 0;
|
|
virtual Vector3 get_closest_point_to(const Vector3 &p_point) const = 0;
|
|
virtual Vector3 get_closest_point_to(const Vector3 &p_point) const = 0;
|
|
- virtual bool intersect_segment(const Vector3 &p_begin, const Vector3 &p_end, Vector3 &r_point, Vector3 &r_normal) const = 0;
|
|
|
|
|
|
+ virtual bool intersect_segment(const Vector3 &p_begin, const Vector3 &p_end, Vector3 &r_point, Vector3 &r_normal, bool p_hit_back_faces) const = 0;
|
|
virtual bool intersect_point(const Vector3 &p_point) const = 0;
|
|
virtual bool intersect_point(const Vector3 &p_point) const = 0;
|
|
virtual Vector3 get_moment_of_inertia(real_t p_mass) const = 0;
|
|
virtual Vector3 get_moment_of_inertia(real_t p_mass) const = 0;
|
|
|
|
|
|
@@ -126,7 +126,7 @@ public:
|
|
virtual Vector3 get_support(const Vector3 &p_normal) const override;
|
|
virtual Vector3 get_support(const Vector3 &p_normal) const override;
|
|
virtual void get_supports(const Vector3 &p_normal, int p_max, Vector3 *r_supports, int &r_amount, FeatureType &r_type) const override { r_amount = 0; }
|
|
virtual void get_supports(const Vector3 &p_normal, int p_max, Vector3 *r_supports, int &r_amount, FeatureType &r_type) const override { r_amount = 0; }
|
|
|
|
|
|
- virtual bool intersect_segment(const Vector3 &p_begin, const Vector3 &p_end, Vector3 &r_result, Vector3 &r_normal) const override;
|
|
|
|
|
|
+ virtual bool intersect_segment(const Vector3 &p_begin, const Vector3 &p_end, Vector3 &r_result, Vector3 &r_normal, bool p_hit_back_faces) const override;
|
|
virtual bool intersect_point(const Vector3 &p_point) const override;
|
|
virtual bool intersect_point(const Vector3 &p_point) const override;
|
|
virtual Vector3 get_closest_point_to(const Vector3 &p_point) const override;
|
|
virtual Vector3 get_closest_point_to(const Vector3 &p_point) const override;
|
|
virtual Vector3 get_moment_of_inertia(real_t p_mass) const override;
|
|
virtual Vector3 get_moment_of_inertia(real_t p_mass) const override;
|
|
@@ -153,7 +153,7 @@ public:
|
|
virtual Vector3 get_support(const Vector3 &p_normal) const override;
|
|
virtual Vector3 get_support(const Vector3 &p_normal) const override;
|
|
virtual void get_supports(const Vector3 &p_normal, int p_max, Vector3 *r_supports, int &r_amount, FeatureType &r_type) const override;
|
|
virtual void get_supports(const Vector3 &p_normal, int p_max, Vector3 *r_supports, int &r_amount, FeatureType &r_type) const override;
|
|
|
|
|
|
- virtual bool intersect_segment(const Vector3 &p_begin, const Vector3 &p_end, Vector3 &r_result, Vector3 &r_normal) const override;
|
|
|
|
|
|
+ virtual bool intersect_segment(const Vector3 &p_begin, const Vector3 &p_end, Vector3 &r_result, Vector3 &r_normal, bool p_hit_back_faces) const override;
|
|
virtual bool intersect_point(const Vector3 &p_point) const override;
|
|
virtual bool intersect_point(const Vector3 &p_point) const override;
|
|
virtual Vector3 get_closest_point_to(const Vector3 &p_point) const override;
|
|
virtual Vector3 get_closest_point_to(const Vector3 &p_point) const override;
|
|
|
|
|
|
@@ -180,7 +180,7 @@ public:
|
|
virtual void project_range(const Vector3 &p_normal, const Transform3D &p_transform, real_t &r_min, real_t &r_max) const override;
|
|
virtual void project_range(const Vector3 &p_normal, const Transform3D &p_transform, real_t &r_min, real_t &r_max) const override;
|
|
virtual Vector3 get_support(const Vector3 &p_normal) const override;
|
|
virtual Vector3 get_support(const Vector3 &p_normal) const override;
|
|
virtual void get_supports(const Vector3 &p_normal, int p_max, Vector3 *r_supports, int &r_amount, FeatureType &r_type) const override;
|
|
virtual void get_supports(const Vector3 &p_normal, int p_max, Vector3 *r_supports, int &r_amount, FeatureType &r_type) const override;
|
|
- virtual bool intersect_segment(const Vector3 &p_begin, const Vector3 &p_end, Vector3 &r_result, Vector3 &r_normal) const override;
|
|
|
|
|
|
+ virtual bool intersect_segment(const Vector3 &p_begin, const Vector3 &p_end, Vector3 &r_result, Vector3 &r_normal, bool p_hit_back_faces) const override;
|
|
virtual bool intersect_point(const Vector3 &p_point) const override;
|
|
virtual bool intersect_point(const Vector3 &p_point) const override;
|
|
virtual Vector3 get_closest_point_to(const Vector3 &p_point) const override;
|
|
virtual Vector3 get_closest_point_to(const Vector3 &p_point) const override;
|
|
|
|
|
|
@@ -205,7 +205,7 @@ public:
|
|
virtual void project_range(const Vector3 &p_normal, const Transform3D &p_transform, real_t &r_min, real_t &r_max) const override;
|
|
virtual void project_range(const Vector3 &p_normal, const Transform3D &p_transform, real_t &r_min, real_t &r_max) const override;
|
|
virtual Vector3 get_support(const Vector3 &p_normal) const override;
|
|
virtual Vector3 get_support(const Vector3 &p_normal) const override;
|
|
virtual void get_supports(const Vector3 &p_normal, int p_max, Vector3 *r_supports, int &r_amount, FeatureType &r_type) const override;
|
|
virtual void get_supports(const Vector3 &p_normal, int p_max, Vector3 *r_supports, int &r_amount, FeatureType &r_type) const override;
|
|
- virtual bool intersect_segment(const Vector3 &p_begin, const Vector3 &p_end, Vector3 &r_result, Vector3 &r_normal) const override;
|
|
|
|
|
|
+ virtual bool intersect_segment(const Vector3 &p_begin, const Vector3 &p_end, Vector3 &r_result, Vector3 &r_normal, bool p_hit_back_faces) const override;
|
|
virtual bool intersect_point(const Vector3 &p_point) const override;
|
|
virtual bool intersect_point(const Vector3 &p_point) const override;
|
|
virtual Vector3 get_closest_point_to(const Vector3 &p_point) const override;
|
|
virtual Vector3 get_closest_point_to(const Vector3 &p_point) const override;
|
|
|
|
|
|
@@ -234,7 +234,7 @@ public:
|
|
virtual void project_range(const Vector3 &p_normal, const Transform3D &p_transform, real_t &r_min, real_t &r_max) const override;
|
|
virtual void project_range(const Vector3 &p_normal, const Transform3D &p_transform, real_t &r_min, real_t &r_max) const override;
|
|
virtual Vector3 get_support(const Vector3 &p_normal) const override;
|
|
virtual Vector3 get_support(const Vector3 &p_normal) const override;
|
|
virtual void get_supports(const Vector3 &p_normal, int p_max, Vector3 *r_supports, int &r_amount, FeatureType &r_type) const override;
|
|
virtual void get_supports(const Vector3 &p_normal, int p_max, Vector3 *r_supports, int &r_amount, FeatureType &r_type) const override;
|
|
- virtual bool intersect_segment(const Vector3 &p_begin, const Vector3 &p_end, Vector3 &r_result, Vector3 &r_normal) const override;
|
|
|
|
|
|
+ virtual bool intersect_segment(const Vector3 &p_begin, const Vector3 &p_end, Vector3 &r_result, Vector3 &r_normal, bool p_hit_back_faces) const override;
|
|
virtual bool intersect_point(const Vector3 &p_point) const override;
|
|
virtual bool intersect_point(const Vector3 &p_point) const override;
|
|
virtual Vector3 get_closest_point_to(const Vector3 &p_point) const override;
|
|
virtual Vector3 get_closest_point_to(const Vector3 &p_point) const override;
|
|
|
|
|
|
@@ -263,7 +263,7 @@ public:
|
|
virtual void project_range(const Vector3 &p_normal, const Transform3D &p_transform, real_t &r_min, real_t &r_max) const override;
|
|
virtual void project_range(const Vector3 &p_normal, const Transform3D &p_transform, real_t &r_min, real_t &r_max) const override;
|
|
virtual Vector3 get_support(const Vector3 &p_normal) const override;
|
|
virtual Vector3 get_support(const Vector3 &p_normal) const override;
|
|
virtual void get_supports(const Vector3 &p_normal, int p_max, Vector3 *r_supports, int &r_amount, FeatureType &r_type) const override;
|
|
virtual void get_supports(const Vector3 &p_normal, int p_max, Vector3 *r_supports, int &r_amount, FeatureType &r_type) const override;
|
|
- virtual bool intersect_segment(const Vector3 &p_begin, const Vector3 &p_end, Vector3 &r_result, Vector3 &r_normal) const override;
|
|
|
|
|
|
+ virtual bool intersect_segment(const Vector3 &p_begin, const Vector3 &p_end, Vector3 &r_result, Vector3 &r_normal, bool p_hit_back_faces) const override;
|
|
virtual bool intersect_point(const Vector3 &p_point) const override;
|
|
virtual bool intersect_point(const Vector3 &p_point) const override;
|
|
virtual Vector3 get_closest_point_to(const Vector3 &p_point) const override;
|
|
virtual Vector3 get_closest_point_to(const Vector3 &p_point) const override;
|
|
|
|
|
|
@@ -288,7 +288,7 @@ public:
|
|
virtual void project_range(const Vector3 &p_normal, const Transform3D &p_transform, real_t &r_min, real_t &r_max) const override;
|
|
virtual void project_range(const Vector3 &p_normal, const Transform3D &p_transform, real_t &r_min, real_t &r_max) const override;
|
|
virtual Vector3 get_support(const Vector3 &p_normal) const override;
|
|
virtual Vector3 get_support(const Vector3 &p_normal) const override;
|
|
virtual void get_supports(const Vector3 &p_normal, int p_max, Vector3 *r_supports, int &r_amount, FeatureType &r_type) const override;
|
|
virtual void get_supports(const Vector3 &p_normal, int p_max, Vector3 *r_supports, int &r_amount, FeatureType &r_type) const override;
|
|
- virtual bool intersect_segment(const Vector3 &p_begin, const Vector3 &p_end, Vector3 &r_result, Vector3 &r_normal) const override;
|
|
|
|
|
|
+ virtual bool intersect_segment(const Vector3 &p_begin, const Vector3 &p_end, Vector3 &r_result, Vector3 &r_normal, bool p_hit_back_faces) const override;
|
|
virtual bool intersect_point(const Vector3 &p_point) const override;
|
|
virtual bool intersect_point(const Vector3 &p_point) const override;
|
|
virtual Vector3 get_closest_point_to(const Vector3 &p_point) const override;
|
|
virtual Vector3 get_closest_point_to(const Vector3 &p_point) const override;
|
|
|
|
|
|
@@ -366,7 +366,7 @@ public:
|
|
virtual void project_range(const Vector3 &p_normal, const Transform3D &p_transform, real_t &r_min, real_t &r_max) const override;
|
|
virtual void project_range(const Vector3 &p_normal, const Transform3D &p_transform, real_t &r_min, real_t &r_max) const override;
|
|
virtual Vector3 get_support(const Vector3 &p_normal) const override;
|
|
virtual Vector3 get_support(const Vector3 &p_normal) const override;
|
|
|
|
|
|
- virtual bool intersect_segment(const Vector3 &p_begin, const Vector3 &p_end, Vector3 &r_result, Vector3 &r_normal) const override;
|
|
|
|
|
|
+ virtual bool intersect_segment(const Vector3 &p_begin, const Vector3 &p_end, Vector3 &r_result, Vector3 &r_normal, bool p_hit_back_faces) const override;
|
|
virtual bool intersect_point(const Vector3 &p_point) const override;
|
|
virtual bool intersect_point(const Vector3 &p_point) const override;
|
|
virtual Vector3 get_closest_point_to(const Vector3 &p_point) const override;
|
|
virtual Vector3 get_closest_point_to(const Vector3 &p_point) const override;
|
|
|
|
|
|
@@ -429,7 +429,7 @@ public:
|
|
|
|
|
|
virtual void project_range(const Vector3 &p_normal, const Transform3D &p_transform, real_t &r_min, real_t &r_max) const override;
|
|
virtual void project_range(const Vector3 &p_normal, const Transform3D &p_transform, real_t &r_min, real_t &r_max) const override;
|
|
virtual Vector3 get_support(const Vector3 &p_normal) const override;
|
|
virtual Vector3 get_support(const Vector3 &p_normal) const override;
|
|
- virtual bool intersect_segment(const Vector3 &p_begin, const Vector3 &p_end, Vector3 &r_point, Vector3 &r_normal) const override;
|
|
|
|
|
|
+ virtual bool intersect_segment(const Vector3 &p_begin, const Vector3 &p_end, Vector3 &r_point, Vector3 &r_normal, bool p_hit_back_faces) const override;
|
|
virtual bool intersect_point(const Vector3 &p_point) const override;
|
|
virtual bool intersect_point(const Vector3 &p_point) const override;
|
|
|
|
|
|
virtual Vector3 get_closest_point_to(const Vector3 &p_point) const override;
|
|
virtual Vector3 get_closest_point_to(const Vector3 &p_point) const override;
|
|
@@ -456,7 +456,7 @@ struct GodotFaceShape3D : public GodotShape3D {
|
|
virtual void project_range(const Vector3 &p_normal, const Transform3D &p_transform, real_t &r_min, real_t &r_max) const override;
|
|
virtual void project_range(const Vector3 &p_normal, const Transform3D &p_transform, real_t &r_min, real_t &r_max) const override;
|
|
virtual Vector3 get_support(const Vector3 &p_normal) const override;
|
|
virtual Vector3 get_support(const Vector3 &p_normal) const override;
|
|
virtual void get_supports(const Vector3 &p_normal, int p_max, Vector3 *r_supports, int &r_amount, FeatureType &r_type) const override;
|
|
virtual void get_supports(const Vector3 &p_normal, int p_max, Vector3 *r_supports, int &r_amount, FeatureType &r_type) const override;
|
|
- virtual bool intersect_segment(const Vector3 &p_begin, const Vector3 &p_end, Vector3 &r_result, Vector3 &r_normal) const override;
|
|
|
|
|
|
+ virtual bool intersect_segment(const Vector3 &p_begin, const Vector3 &p_end, Vector3 &r_result, Vector3 &r_normal, bool p_hit_back_faces) const override;
|
|
virtual bool intersect_point(const Vector3 &p_point) const override;
|
|
virtual bool intersect_point(const Vector3 &p_point) const override;
|
|
virtual Vector3 get_closest_point_to(const Vector3 &p_point) const override;
|
|
virtual Vector3 get_closest_point_to(const Vector3 &p_point) const override;
|
|
|
|
|
|
@@ -495,7 +495,7 @@ struct GodotMotionShape3D : public GodotShape3D {
|
|
}
|
|
}
|
|
|
|
|
|
virtual void get_supports(const Vector3 &p_normal, int p_max, Vector3 *r_supports, int &r_amount, FeatureType &r_type) const override { r_amount = 0; }
|
|
virtual void get_supports(const Vector3 &p_normal, int p_max, Vector3 *r_supports, int &r_amount, FeatureType &r_type) const override { r_amount = 0; }
|
|
- virtual bool intersect_segment(const Vector3 &p_begin, const Vector3 &p_end, Vector3 &r_result, Vector3 &r_normal) const override { return false; }
|
|
|
|
|
|
+ virtual bool intersect_segment(const Vector3 &p_begin, const Vector3 &p_end, Vector3 &r_result, Vector3 &r_normal, bool p_hit_back_faces) const override { return false; }
|
|
virtual bool intersect_point(const Vector3 &p_point) const override { return false; }
|
|
virtual bool intersect_point(const Vector3 &p_point) const override { return false; }
|
|
virtual Vector3 get_closest_point_to(const Vector3 &p_point) const override { return p_point; }
|
|
virtual Vector3 get_closest_point_to(const Vector3 &p_point) const override { return p_point; }
|
|
|
|
|