|
@@ -55,187 +55,120 @@
|
|
|
|
|
|
class Camera;
|
|
|
|
|
|
-class EditorSpatialGizmo : public SpatialEditorGizmo {
|
|
|
+class LightSpatialGizmoPlugin : public EditorSpatialGizmoPlugin {
|
|
|
|
|
|
- GDCLASS(EditorSpatialGizmo, SpatialGizmo);
|
|
|
+ GDCLASS(LightSpatialGizmoPlugin, EditorSpatialGizmoPlugin);
|
|
|
|
|
|
- struct Instance {
|
|
|
-
|
|
|
- RID instance;
|
|
|
- Ref<ArrayMesh> mesh;
|
|
|
- RID skeleton;
|
|
|
- bool billboard;
|
|
|
- bool unscaled;
|
|
|
- bool can_intersect;
|
|
|
- bool extra_margin;
|
|
|
- Instance() {
|
|
|
-
|
|
|
- billboard = false;
|
|
|
- unscaled = false;
|
|
|
- can_intersect = false;
|
|
|
- extra_margin = false;
|
|
|
- }
|
|
|
-
|
|
|
- void create_instance(Spatial *p_base);
|
|
|
- };
|
|
|
-
|
|
|
- Vector<Vector3> collision_segments;
|
|
|
- Ref<TriangleMesh> collision_mesh;
|
|
|
-
|
|
|
- struct Handle {
|
|
|
- Vector3 pos;
|
|
|
- bool billboard;
|
|
|
- };
|
|
|
-
|
|
|
- Vector<Vector3> handles;
|
|
|
- Vector<Vector3> secondary_handles;
|
|
|
- float selectable_icon_size = -1.0f;
|
|
|
- bool billboard_handle;
|
|
|
+public:
|
|
|
+ bool has_gizmo(Spatial *p_spatial);
|
|
|
+ String get_name() const;
|
|
|
|
|
|
- bool valid;
|
|
|
- Spatial *base;
|
|
|
- Vector<Instance> instances;
|
|
|
- Spatial *spatial_node;
|
|
|
+ String get_handle_name(const EditorSpatialGizmo *p_gizmo, int p_idx) const;
|
|
|
+ Variant get_handle_value(EditorSpatialGizmo *p_gizmo, int p_idx) const;
|
|
|
+ void set_handle(EditorSpatialGizmo *p_gizmo, int p_idx, Camera *p_camera, const Point2 &p_point);
|
|
|
+ void commit_handle(EditorSpatialGizmo *p_gizmo, int p_idx, const Variant &p_restore, bool p_cancel = false);
|
|
|
+ void redraw(EditorSpatialGizmo *p_gizmo);
|
|
|
|
|
|
- void _set_spatial_node(Node *p_node) { set_spatial_node(Object::cast_to<Spatial>(p_node)); }
|
|
|
+ LightSpatialGizmoPlugin();
|
|
|
+};
|
|
|
|
|
|
-protected:
|
|
|
- void add_lines(const Vector<Vector3> &p_lines, const Ref<Material> &p_material, bool p_billboard = false);
|
|
|
- void add_mesh(const Ref<ArrayMesh> &p_mesh, bool p_billboard = false, const RID &p_skeleton = RID());
|
|
|
- void add_collision_segments(const Vector<Vector3> &p_lines);
|
|
|
- void add_collision_triangles(const Ref<TriangleMesh> &p_tmesh);
|
|
|
- void add_unscaled_billboard(const Ref<Material> &p_material, float p_scale = 1);
|
|
|
- void add_handles(const Vector<Vector3> &p_handles, bool p_billboard = false, bool p_secondary = false);
|
|
|
- void add_solid_box(Ref<Material> &p_material, Vector3 p_size, Vector3 p_position = Vector3());
|
|
|
+class AudioStreamPlayer3DSpatialGizmoPlugin : public EditorSpatialGizmoPlugin {
|
|
|
|
|
|
- void set_spatial_node(Spatial *p_node);
|
|
|
- const Spatial *get_spatial_node() const { return spatial_node; }
|
|
|
+ GDCLASS(AudioStreamPlayer3DSpatialGizmoPlugin, EditorSpatialGizmoPlugin);
|
|
|
|
|
|
- static void _bind_methods();
|
|
|
+public:
|
|
|
+ bool has_gizmo(Spatial *p_spatial);
|
|
|
+ String get_name() const;
|
|
|
|
|
|
- Ref<SpatialMaterial> create_material(const String &p_name, const Color &p_color, bool p_billboard = false, bool p_on_top = false, bool p_use_vertex_color = false);
|
|
|
- Ref<SpatialMaterial> create_icon_material(const String &p_name, const Ref<Texture> &p_texture, bool p_on_top = false, const Color &p_albedo = Color(1, 1, 1, 1));
|
|
|
+ String get_handle_name(const EditorSpatialGizmo *p_gizmo, int p_idx) const;
|
|
|
+ Variant get_handle_value(EditorSpatialGizmo *p_gizmo, int p_idx) const;
|
|
|
+ void set_handle(EditorSpatialGizmo *p_gizmo, int p_idx, Camera *p_camera, const Point2 &p_point);
|
|
|
+ void commit_handle(EditorSpatialGizmo *p_gizmo, int p_idx, const Variant &p_restore, bool p_cancel = false);
|
|
|
+ void redraw(EditorSpatialGizmo *p_gizmo);
|
|
|
|
|
|
-public:
|
|
|
- virtual Vector3 get_handle_pos(int p_idx) const;
|
|
|
- virtual bool intersect_frustum(const Camera *p_camera, const Vector<Plane> &p_frustum);
|
|
|
- virtual bool intersect_ray(Camera *p_camera, const Point2 &p_point, Vector3 &r_pos, Vector3 &r_normal, int *r_gizmo_handle = NULL, bool p_sec_first = false);
|
|
|
-
|
|
|
- void clear();
|
|
|
- void create();
|
|
|
- void transform();
|
|
|
- virtual void redraw();
|
|
|
- void free();
|
|
|
- virtual bool is_editable() const;
|
|
|
- virtual bool can_draw() const;
|
|
|
-
|
|
|
- EditorSpatialGizmo();
|
|
|
- ~EditorSpatialGizmo();
|
|
|
+ AudioStreamPlayer3DSpatialGizmoPlugin();
|
|
|
};
|
|
|
|
|
|
-class LightSpatialGizmo : public EditorSpatialGizmo {
|
|
|
-
|
|
|
- GDCLASS(LightSpatialGizmo, EditorSpatialGizmo);
|
|
|
+class CameraSpatialGizmoPlugin : public EditorSpatialGizmoPlugin {
|
|
|
|
|
|
- Light *light;
|
|
|
+ GDCLASS(CameraSpatialGizmoPlugin, EditorSpatialGizmoPlugin);
|
|
|
|
|
|
public:
|
|
|
- virtual String get_handle_name(int p_idx) const;
|
|
|
- virtual Variant get_handle_value(int p_idx) const;
|
|
|
- virtual void set_handle(int p_idx, Camera *p_camera, const Point2 &p_point);
|
|
|
- virtual void commit_handle(int p_idx, const Variant &p_restore, bool p_cancel = false);
|
|
|
+ bool has_gizmo(Spatial *p_spatial);
|
|
|
+ String get_name() const;
|
|
|
|
|
|
- void redraw();
|
|
|
- LightSpatialGizmo(Light *p_light = NULL);
|
|
|
-};
|
|
|
+ String get_handle_name(const EditorSpatialGizmo *p_gizmo, int p_idx) const;
|
|
|
+ Variant get_handle_value(EditorSpatialGizmo *p_gizmo, int p_idx) const;
|
|
|
+ void set_handle(EditorSpatialGizmo *p_gizmo, int p_idx, Camera *p_camera, const Point2 &p_point);
|
|
|
+ void commit_handle(EditorSpatialGizmo *p_gizmo, int p_idx, const Variant &p_restore, bool p_cancel = false);
|
|
|
+ void redraw(EditorSpatialGizmo *p_gizmo);
|
|
|
|
|
|
-class AudioStreamPlayer3DSpatialGizmo : public EditorSpatialGizmo {
|
|
|
+ CameraSpatialGizmoPlugin();
|
|
|
+};
|
|
|
|
|
|
- GDCLASS(AudioStreamPlayer3DSpatialGizmo, EditorSpatialGizmo);
|
|
|
+class MeshInstanceSpatialGizmoPlugin : public EditorSpatialGizmoPlugin {
|
|
|
|
|
|
- AudioStreamPlayer3D *player;
|
|
|
+ GDCLASS(MeshInstanceSpatialGizmoPlugin, EditorSpatialGizmoPlugin);
|
|
|
|
|
|
public:
|
|
|
- virtual String get_handle_name(int p_idx) const;
|
|
|
- virtual Variant get_handle_value(int p_idx) const;
|
|
|
- virtual void set_handle(int p_idx, Camera *p_camera, const Point2 &p_point);
|
|
|
- virtual void commit_handle(int p_idx, const Variant &p_restore, bool p_cancel = false);
|
|
|
+ bool has_gizmo(Spatial *p_spatial);
|
|
|
+ String get_name() const;
|
|
|
+ bool can_be_hidden() const;
|
|
|
+ void redraw(EditorSpatialGizmo *p_gizmo);
|
|
|
|
|
|
- void redraw();
|
|
|
- AudioStreamPlayer3DSpatialGizmo(AudioStreamPlayer3D *p_player = NULL);
|
|
|
+ MeshInstanceSpatialGizmoPlugin();
|
|
|
};
|
|
|
|
|
|
-class CameraSpatialGizmo : public EditorSpatialGizmo {
|
|
|
-
|
|
|
- GDCLASS(CameraSpatialGizmo, EditorSpatialGizmo);
|
|
|
+class Sprite3DSpatialGizmoPlugin : public EditorSpatialGizmoPlugin {
|
|
|
|
|
|
- Camera *camera;
|
|
|
+ GDCLASS(Sprite3DSpatialGizmoPlugin, EditorSpatialGizmoPlugin);
|
|
|
|
|
|
public:
|
|
|
- virtual String get_handle_name(int p_idx) const;
|
|
|
- virtual Variant get_handle_value(int p_idx) const;
|
|
|
- virtual void set_handle(int p_idx, Camera *p_camera, const Point2 &p_point);
|
|
|
- virtual void commit_handle(int p_idx, const Variant &p_restore, bool p_cancel = false);
|
|
|
+ bool has_gizmo(Spatial *p_spatial);
|
|
|
+ String get_name() const;
|
|
|
+ bool can_be_hidden() const;
|
|
|
+ void redraw(EditorSpatialGizmo *p_gizmo);
|
|
|
|
|
|
- void redraw();
|
|
|
- CameraSpatialGizmo(Camera *p_camera = NULL);
|
|
|
+ Sprite3DSpatialGizmoPlugin();
|
|
|
};
|
|
|
|
|
|
-class MeshInstanceSpatialGizmo : public EditorSpatialGizmo {
|
|
|
+class Position3DSpatialGizmoPlugin : public EditorSpatialGizmoPlugin {
|
|
|
|
|
|
- GDCLASS(MeshInstanceSpatialGizmo, EditorSpatialGizmo);
|
|
|
+ GDCLASS(Position3DSpatialGizmoPlugin, EditorSpatialGizmoPlugin);
|
|
|
|
|
|
- MeshInstance *mesh;
|
|
|
+ Ref<ArrayMesh> pos3d_mesh;
|
|
|
+ Vector<Vector3> cursor_points;
|
|
|
|
|
|
public:
|
|
|
- virtual bool can_draw() const;
|
|
|
- void redraw();
|
|
|
- MeshInstanceSpatialGizmo(MeshInstance *p_mesh = NULL);
|
|
|
-};
|
|
|
-
|
|
|
-class Sprite3DSpatialGizmo : public EditorSpatialGizmo {
|
|
|
-
|
|
|
- GDCLASS(Sprite3DSpatialGizmo, EditorSpatialGizmo);
|
|
|
-
|
|
|
- SpriteBase3D *sprite;
|
|
|
+ bool has_gizmo(Spatial *p_spatial);
|
|
|
+ String get_name() const;
|
|
|
+ void redraw(EditorSpatialGizmo *p_gizmo);
|
|
|
|
|
|
-public:
|
|
|
- virtual bool can_draw() const;
|
|
|
- void redraw();
|
|
|
- Sprite3DSpatialGizmo(SpriteBase3D *p_sprite = NULL);
|
|
|
+ Position3DSpatialGizmoPlugin();
|
|
|
};
|
|
|
|
|
|
-class Position3DSpatialGizmo : public EditorSpatialGizmo {
|
|
|
-
|
|
|
- GDCLASS(Position3DSpatialGizmo, EditorSpatialGizmo);
|
|
|
+class SkeletonSpatialGizmoPlugin : public EditorSpatialGizmoPlugin {
|
|
|
|
|
|
- Position3D *p3d;
|
|
|
+ GDCLASS(SkeletonSpatialGizmoPlugin, EditorSpatialGizmoPlugin);
|
|
|
|
|
|
public:
|
|
|
- void redraw();
|
|
|
- Position3DSpatialGizmo(Position3D *p_p3d = NULL);
|
|
|
-};
|
|
|
-
|
|
|
-class SkeletonSpatialGizmo : public EditorSpatialGizmo {
|
|
|
-
|
|
|
- GDCLASS(SkeletonSpatialGizmo, EditorSpatialGizmo);
|
|
|
+ bool has_gizmo(Spatial *p_spatial);
|
|
|
+ String get_name() const;
|
|
|
+ void redraw(EditorSpatialGizmo *p_gizmo);
|
|
|
|
|
|
- Skeleton *skel;
|
|
|
-
|
|
|
-public:
|
|
|
- void redraw();
|
|
|
- SkeletonSpatialGizmo(Skeleton *p_skel = NULL);
|
|
|
+ SkeletonSpatialGizmoPlugin();
|
|
|
};
|
|
|
|
|
|
-class PhysicalBoneSpatialGizmo : public EditorSpatialGizmo {
|
|
|
- GDCLASS(PhysicalBoneSpatialGizmo, EditorSpatialGizmo);
|
|
|
+class PhysicalBoneSpatialGizmoPlugin : public EditorSpatialGizmoPlugin {
|
|
|
|
|
|
- PhysicalBone *physical_bone;
|
|
|
+ GDCLASS(PhysicalBoneSpatialGizmoPlugin, EditorSpatialGizmoPlugin);
|
|
|
|
|
|
public:
|
|
|
- //virtual Transform get_global_gizmo_transform();
|
|
|
- virtual void redraw();
|
|
|
- PhysicalBoneSpatialGizmo(PhysicalBone *p_pb = NULL);
|
|
|
+ bool has_gizmo(Spatial *p_spatial);
|
|
|
+ String get_name() const;
|
|
|
+ void redraw(EditorSpatialGizmo *p_gizmo);
|
|
|
+
|
|
|
+ PhysicalBoneSpatialGizmoPlugin();
|
|
|
};
|
|
|
|
|
|
#if 0
|
|
@@ -251,154 +184,166 @@ public:
|
|
|
};
|
|
|
#endif
|
|
|
|
|
|
-class VisibilityNotifierGizmo : public EditorSpatialGizmo {
|
|
|
-
|
|
|
- GDCLASS(VisibilityNotifierGizmo, EditorSpatialGizmo);
|
|
|
+class RayCastSpatialGizmoPlugin : public EditorSpatialGizmoPlugin {
|
|
|
|
|
|
- VisibilityNotifier *notifier;
|
|
|
+ GDCLASS(RayCastSpatialGizmoPlugin, EditorSpatialGizmoPlugin);
|
|
|
|
|
|
public:
|
|
|
- virtual String get_handle_name(int p_idx) const;
|
|
|
- virtual Variant get_handle_value(int p_idx) const;
|
|
|
- virtual void set_handle(int p_idx, Camera *p_camera, const Point2 &p_point);
|
|
|
- virtual void commit_handle(int p_idx, const Variant &p_restore, bool p_cancel = false);
|
|
|
+ bool has_gizmo(Spatial *p_spatial);
|
|
|
+ String get_name() const;
|
|
|
+ void redraw(EditorSpatialGizmo *p_gizmo);
|
|
|
|
|
|
- void redraw();
|
|
|
- VisibilityNotifierGizmo(VisibilityNotifier *p_notifier = NULL);
|
|
|
+ RayCastSpatialGizmoPlugin();
|
|
|
};
|
|
|
|
|
|
-class ParticlesGizmo : public EditorSpatialGizmo {
|
|
|
-
|
|
|
- GDCLASS(ParticlesGizmo, EditorSpatialGizmo);
|
|
|
+class VehicleWheelSpatialGizmoPlugin : public EditorSpatialGizmoPlugin {
|
|
|
|
|
|
- Particles *particles;
|
|
|
+ GDCLASS(VehicleWheelSpatialGizmoPlugin, EditorSpatialGizmoPlugin);
|
|
|
|
|
|
public:
|
|
|
- virtual String get_handle_name(int p_idx) const;
|
|
|
- virtual Variant get_handle_value(int p_idx) const;
|
|
|
- virtual void set_handle(int p_idx, Camera *p_camera, const Point2 &p_point);
|
|
|
- virtual void commit_handle(int p_idx, const Variant &p_restore, bool p_cancel = false);
|
|
|
+ bool has_gizmo(Spatial *p_spatial);
|
|
|
+ String get_name() const;
|
|
|
+ void redraw(EditorSpatialGizmo *p_gizmo);
|
|
|
|
|
|
- void redraw();
|
|
|
- ParticlesGizmo(Particles *p_particles = NULL);
|
|
|
+ VehicleWheelSpatialGizmoPlugin();
|
|
|
};
|
|
|
|
|
|
-class ReflectionProbeGizmo : public EditorSpatialGizmo {
|
|
|
-
|
|
|
- GDCLASS(ReflectionProbeGizmo, EditorSpatialGizmo);
|
|
|
+class SoftBodySpatialGizmoPlugin : public EditorSpatialGizmoPlugin {
|
|
|
|
|
|
- ReflectionProbe *probe;
|
|
|
+ GDCLASS(SoftBodySpatialGizmoPlugin, EditorSpatialGizmoPlugin);
|
|
|
|
|
|
public:
|
|
|
- virtual String get_handle_name(int p_idx) const;
|
|
|
- virtual Variant get_handle_value(int p_idx) const;
|
|
|
- virtual void set_handle(int p_idx, Camera *p_camera, const Point2 &p_point);
|
|
|
- virtual void commit_handle(int p_idx, const Variant &p_restore, bool p_cancel = false);
|
|
|
+ bool has_gizmo(Spatial *p_spatial);
|
|
|
+ String get_name() const;
|
|
|
+ bool is_selectable_when_hidden() const;
|
|
|
+ void redraw(EditorSpatialGizmo *p_gizmo);
|
|
|
|
|
|
- void redraw();
|
|
|
- ReflectionProbeGizmo(ReflectionProbe *p_probe = NULL);
|
|
|
-};
|
|
|
+ String get_handle_name(const EditorSpatialGizmo *p_gizmo, int p_idx) const;
|
|
|
+ Variant get_handle_value(EditorSpatialGizmo *p_gizmo, int p_idx) const;
|
|
|
+ void commit_handle(EditorSpatialGizmo *p_gizmo, int p_idx, const Variant &p_restore, bool p_cancel);
|
|
|
+ bool is_gizmo_handle_highlighted(const EditorSpatialGizmo *p_gizmo, int idx) const;
|
|
|
|
|
|
-class GIProbeGizmo : public EditorSpatialGizmo {
|
|
|
+ SoftBodySpatialGizmoPlugin();
|
|
|
+};
|
|
|
|
|
|
- GDCLASS(GIProbeGizmo, EditorSpatialGizmo);
|
|
|
+class VisibilityNotifierGizmoPlugin : public EditorSpatialGizmoPlugin {
|
|
|
|
|
|
- GIProbe *probe;
|
|
|
+ GDCLASS(VisibilityNotifierGizmoPlugin, EditorSpatialGizmoPlugin);
|
|
|
|
|
|
public:
|
|
|
- virtual String get_handle_name(int p_idx) const;
|
|
|
- virtual Variant get_handle_value(int p_idx) const;
|
|
|
- virtual void set_handle(int p_idx, Camera *p_camera, const Point2 &p_point);
|
|
|
- virtual void commit_handle(int p_idx, const Variant &p_restore, bool p_cancel = false);
|
|
|
+ bool has_gizmo(Spatial *p_spatial);
|
|
|
+ String get_name() const;
|
|
|
+ void redraw(EditorSpatialGizmo *p_gizmo);
|
|
|
|
|
|
- void redraw();
|
|
|
- GIProbeGizmo(GIProbe *p_probe = NULL);
|
|
|
-};
|
|
|
+ String get_handle_name(const EditorSpatialGizmo *p_gizmo, int p_idx) const;
|
|
|
+ Variant get_handle_value(EditorSpatialGizmo *p_gizmo, int p_idx) const;
|
|
|
+ void set_handle(EditorSpatialGizmo *p_gizmo, int p_idx, Camera *p_camera, const Point2 &p_point);
|
|
|
+ void commit_handle(EditorSpatialGizmo *p_gizmo, int p_idx, const Variant &p_restore, bool p_cancel = false);
|
|
|
|
|
|
-class BakedIndirectLightGizmo : public EditorSpatialGizmo {
|
|
|
+ VisibilityNotifierGizmoPlugin();
|
|
|
+};
|
|
|
|
|
|
- GDCLASS(BakedIndirectLightGizmo, EditorSpatialGizmo);
|
|
|
+class ParticlesGizmoPlugin : public EditorSpatialGizmoPlugin {
|
|
|
|
|
|
- BakedLightmap *baker;
|
|
|
+ GDCLASS(ParticlesGizmoPlugin, EditorSpatialGizmoPlugin);
|
|
|
|
|
|
public:
|
|
|
- virtual String get_handle_name(int p_idx) const;
|
|
|
- virtual Variant get_handle_value(int p_idx) const;
|
|
|
- virtual void set_handle(int p_idx, Camera *p_camera, const Point2 &p_point);
|
|
|
- virtual void commit_handle(int p_idx, const Variant &p_restore, bool p_cancel = false);
|
|
|
+ bool has_gizmo(Spatial *p_spatial);
|
|
|
+ String get_name() const;
|
|
|
+ bool is_selectable_when_hidden() const;
|
|
|
+ void redraw(EditorSpatialGizmo *p_gizmo);
|
|
|
|
|
|
- void redraw();
|
|
|
- BakedIndirectLightGizmo(BakedLightmap *p_baker = NULL);
|
|
|
+ String get_handle_name(const EditorSpatialGizmo *p_gizmo, int p_idx) const;
|
|
|
+ Variant get_handle_value(EditorSpatialGizmo *p_gizmo, int p_idx) const;
|
|
|
+ void set_handle(EditorSpatialGizmo *p_gizmo, int p_idx, Camera *p_camera, const Point2 &p_point);
|
|
|
+ void commit_handle(EditorSpatialGizmo *p_gizmo, int p_idx, const Variant &p_restore, bool p_cancel = false);
|
|
|
+
|
|
|
+ ParticlesGizmoPlugin();
|
|
|
};
|
|
|
|
|
|
-class SoftBodySpatialGizmo : public EditorSpatialGizmo {
|
|
|
- GDCLASS(SoftBodySpatialGizmo, EditorSpatialGizmo);
|
|
|
+class ReflectionProbeGizmoPlugin : public EditorSpatialGizmoPlugin {
|
|
|
|
|
|
- class SoftBody *soft_body;
|
|
|
- //RID physics_sphere_shape; // Used for raycast that doesn't work, in this moment, with softbody
|
|
|
+ GDCLASS(ReflectionProbeGizmoPlugin, EditorSpatialGizmoPlugin);
|
|
|
|
|
|
public:
|
|
|
- void redraw();
|
|
|
- virtual bool intersect_ray(Camera *p_camera, const Point2 &p_point, Vector3 &r_pos, Vector3 &r_normal, int *r_gizmo_handle = NULL, bool p_sec_first = false);
|
|
|
- virtual void commit_handle(int p_idx, const Variant &p_restore, bool p_cancel);
|
|
|
+ bool has_gizmo(Spatial *p_spatial);
|
|
|
+ String get_name() const;
|
|
|
+ void redraw(EditorSpatialGizmo *p_gizmo);
|
|
|
|
|
|
- virtual bool is_gizmo_handle_highlighted(int idx) const;
|
|
|
+ String get_handle_name(const EditorSpatialGizmo *p_gizmo, int p_idx) const;
|
|
|
+ Variant get_handle_value(EditorSpatialGizmo *p_gizmo, int p_idx) const;
|
|
|
+ void set_handle(EditorSpatialGizmo *p_gizmo, int p_idx, Camera *p_camera, const Point2 &p_point);
|
|
|
+ void commit_handle(EditorSpatialGizmo *p_gizmo, int p_idx, const Variant &p_restore, bool p_cancel = false);
|
|
|
|
|
|
- SoftBodySpatialGizmo(SoftBody *p_soft_physics_body = NULL);
|
|
|
- ~SoftBodySpatialGizmo();
|
|
|
+ ReflectionProbeGizmoPlugin();
|
|
|
};
|
|
|
|
|
|
-class CollisionShapeSpatialGizmo : public EditorSpatialGizmo {
|
|
|
-
|
|
|
- GDCLASS(CollisionShapeSpatialGizmo, EditorSpatialGizmo);
|
|
|
+class GIProbeGizmoPlugin : public EditorSpatialGizmoPlugin {
|
|
|
|
|
|
- CollisionShape *cs;
|
|
|
+ GDCLASS(GIProbeGizmoPlugin, EditorSpatialGizmoPlugin);
|
|
|
|
|
|
public:
|
|
|
- virtual String get_handle_name(int p_idx) const;
|
|
|
- virtual Variant get_handle_value(int p_idx) const;
|
|
|
- virtual void set_handle(int p_idx, Camera *p_camera, const Point2 &p_point);
|
|
|
- virtual void commit_handle(int p_idx, const Variant &p_restore, bool p_cancel = false);
|
|
|
- void redraw();
|
|
|
- CollisionShapeSpatialGizmo(CollisionShape *p_cs = NULL);
|
|
|
-};
|
|
|
+ bool has_gizmo(Spatial *p_spatial);
|
|
|
+ String get_name() const;
|
|
|
+ void redraw(EditorSpatialGizmo *p_gizmo);
|
|
|
+
|
|
|
+ String get_handle_name(const EditorSpatialGizmo *p_gizmo, int p_idx) const;
|
|
|
+ Variant get_handle_value(EditorSpatialGizmo *p_gizmo, int p_idx) const;
|
|
|
+ void set_handle(EditorSpatialGizmo *p_gizmo, int p_idx, Camera *p_camera, const Point2 &p_point);
|
|
|
+ void commit_handle(EditorSpatialGizmo *p_gizmo, int p_idx, const Variant &p_restore, bool p_cancel = false);
|
|
|
|
|
|
-class CollisionPolygonSpatialGizmo : public EditorSpatialGizmo {
|
|
|
+ GIProbeGizmoPlugin();
|
|
|
+};
|
|
|
|
|
|
- GDCLASS(CollisionPolygonSpatialGizmo, EditorSpatialGizmo);
|
|
|
+class BakedIndirectLightGizmoPlugin : public EditorSpatialGizmoPlugin {
|
|
|
|
|
|
- CollisionPolygon *polygon;
|
|
|
+ GDCLASS(BakedIndirectLightGizmoPlugin, EditorSpatialGizmoPlugin);
|
|
|
|
|
|
public:
|
|
|
- void redraw();
|
|
|
- CollisionPolygonSpatialGizmo(CollisionPolygon *p_polygon = NULL);
|
|
|
-};
|
|
|
+ bool has_gizmo(Spatial *p_spatial);
|
|
|
+ String get_name() const;
|
|
|
+ void redraw(EditorSpatialGizmo *p_gizmo);
|
|
|
|
|
|
-class RayCastSpatialGizmo : public EditorSpatialGizmo {
|
|
|
+ String get_handle_name(const EditorSpatialGizmo *p_gizmo, int p_idx) const;
|
|
|
+ Variant get_handle_value(EditorSpatialGizmo *p_gizmo, int p_idx) const;
|
|
|
+ void set_handle(EditorSpatialGizmo *p_gizmo, int p_idx, Camera *p_camera, const Point2 &p_point);
|
|
|
+ void commit_handle(EditorSpatialGizmo *p_gizmo, int p_idx, const Variant &p_restore, bool p_cancel = false);
|
|
|
+
|
|
|
+ BakedIndirectLightGizmoPlugin();
|
|
|
+};
|
|
|
|
|
|
- GDCLASS(RayCastSpatialGizmo, EditorSpatialGizmo);
|
|
|
+class CollisionShapeSpatialGizmoPlugin : public EditorSpatialGizmoPlugin {
|
|
|
|
|
|
- RayCast *raycast;
|
|
|
+ GDCLASS(CollisionShapeSpatialGizmoPlugin, EditorSpatialGizmoPlugin);
|
|
|
|
|
|
public:
|
|
|
- void redraw();
|
|
|
- RayCastSpatialGizmo(RayCast *p_raycast = NULL);
|
|
|
-};
|
|
|
+ bool has_gizmo(Spatial *p_spatial);
|
|
|
+ String get_name() const;
|
|
|
+ void redraw(EditorSpatialGizmo *p_gizmo);
|
|
|
+
|
|
|
+ String get_handle_name(const EditorSpatialGizmo *p_gizmo, int p_idx) const;
|
|
|
+ Variant get_handle_value(EditorSpatialGizmo *p_gizmo, int p_idx) const;
|
|
|
+ void set_handle(EditorSpatialGizmo *p_gizmo, int p_idx, Camera *p_camera, const Point2 &p_point);
|
|
|
+ void commit_handle(EditorSpatialGizmo *p_gizmo, int p_idx, const Variant &p_restore, bool p_cancel = false);
|
|
|
|
|
|
-class VehicleWheelSpatialGizmo : public EditorSpatialGizmo {
|
|
|
+ CollisionShapeSpatialGizmoPlugin();
|
|
|
+};
|
|
|
|
|
|
- GDCLASS(VehicleWheelSpatialGizmo, EditorSpatialGizmo);
|
|
|
+class CollisionPolygonSpatialGizmoPlugin : public EditorSpatialGizmoPlugin {
|
|
|
|
|
|
- VehicleWheel *car_wheel;
|
|
|
+ GDCLASS(CollisionPolygonSpatialGizmoPlugin, EditorSpatialGizmoPlugin);
|
|
|
|
|
|
public:
|
|
|
- void redraw();
|
|
|
- VehicleWheelSpatialGizmo(VehicleWheel *p_car_wheel = NULL);
|
|
|
+ bool has_gizmo(Spatial *p_spatial);
|
|
|
+ String get_name() const;
|
|
|
+ void redraw(EditorSpatialGizmo *p_gizmo);
|
|
|
+
|
|
|
+ CollisionPolygonSpatialGizmoPlugin();
|
|
|
};
|
|
|
|
|
|
-class NavigationMeshSpatialGizmo : public EditorSpatialGizmo {
|
|
|
+class NavigationMeshSpatialGizmoPlugin : public EditorSpatialGizmoPlugin {
|
|
|
|
|
|
- GDCLASS(NavigationMeshSpatialGizmo, EditorSpatialGizmo);
|
|
|
+ GDCLASS(NavigationMeshSpatialGizmoPlugin, EditorSpatialGizmoPlugin);
|
|
|
|
|
|
struct _EdgeKey {
|
|
|
|
|
@@ -408,11 +353,12 @@ class NavigationMeshSpatialGizmo : public EditorSpatialGizmo {
|
|
|
bool operator<(const _EdgeKey &p_with) const { return from == p_with.from ? to < p_with.to : from < p_with.from; }
|
|
|
};
|
|
|
|
|
|
- NavigationMeshInstance *navmesh;
|
|
|
-
|
|
|
public:
|
|
|
- void redraw();
|
|
|
- NavigationMeshSpatialGizmo(NavigationMeshInstance *p_navmesh = NULL);
|
|
|
+ bool has_gizmo(Spatial *p_spatial);
|
|
|
+ String get_name() const;
|
|
|
+ void redraw(EditorSpatialGizmo *p_gizmo);
|
|
|
+
|
|
|
+ NavigationMeshSpatialGizmoPlugin();
|
|
|
};
|
|
|
|
|
|
class JointGizmosDrawer {
|
|
@@ -421,7 +367,7 @@ public:
|
|
|
static Basis look_body_toward(Vector3::Axis p_axis, const Transform &joint_transform, const Transform &body_transform);
|
|
|
static Basis look_body_toward_x(const Transform &p_joint_transform, const Transform &p_body_transform);
|
|
|
static Basis look_body_toward_y(const Transform &p_joint_transform, const Transform &p_body_transform);
|
|
|
- /// Special function just used for physics joints, it that returns a basis constrained toward Joint Z axis
|
|
|
+ /// Special function just used for physics joints, it returns a basis constrained toward Joint Z axis
|
|
|
/// with axis X and Y that are looking toward the body and oriented toward up
|
|
|
static Basis look_body_toward_z(const Transform &p_joint_transform, const Transform &p_body_transform);
|
|
|
|
|
@@ -430,66 +376,20 @@ public:
|
|
|
static void draw_cone(const Transform &p_offset, const Basis &p_base, real_t p_swing, real_t p_twist, Vector<Vector3> &r_points);
|
|
|
};
|
|
|
|
|
|
-class PinJointSpatialGizmo : public EditorSpatialGizmo {
|
|
|
-
|
|
|
- GDCLASS(PinJointSpatialGizmo, EditorSpatialGizmo);
|
|
|
-
|
|
|
- PinJoint *p3d;
|
|
|
-
|
|
|
-public:
|
|
|
- static void CreateGizmo(const Transform &p_offset, Vector<Vector3> &r_cursor_points);
|
|
|
-
|
|
|
- void redraw();
|
|
|
- PinJointSpatialGizmo(PinJoint *p_p3d = NULL);
|
|
|
-};
|
|
|
-
|
|
|
-class HingeJointSpatialGizmo : public EditorSpatialGizmo {
|
|
|
-
|
|
|
- GDCLASS(HingeJointSpatialGizmo, EditorSpatialGizmo);
|
|
|
-
|
|
|
- HingeJoint *p3d;
|
|
|
-
|
|
|
-public:
|
|
|
- static void CreateGizmo(const Transform &p_offset, const Transform &p_trs_joint, const Transform &p_trs_body_a, const Transform &p_trs_body_b, real_t p_limit_lower, real_t p_limit_upper, bool p_use_limit, Vector<Vector3> &r_common_points, Vector<Vector3> *r_body_a_points, Vector<Vector3> *r_body_b_points);
|
|
|
-
|
|
|
- void redraw();
|
|
|
- HingeJointSpatialGizmo(HingeJoint *p_p3d = NULL);
|
|
|
-};
|
|
|
-
|
|
|
-class SliderJointSpatialGizmo : public EditorSpatialGizmo {
|
|
|
-
|
|
|
- GDCLASS(SliderJointSpatialGizmo, EditorSpatialGizmo);
|
|
|
-
|
|
|
- SliderJoint *p3d;
|
|
|
-
|
|
|
-public:
|
|
|
- static void CreateGizmo(const Transform &p_offset, const Transform &p_trs_joint, const Transform &p_trs_body_a, const Transform &p_trs_body_b, real_t p_angular_limit_lower, real_t p_angular_limit_upper, real_t p_linear_limit_lower, real_t p_linear_limit_upper, Vector<Vector3> &r_points, Vector<Vector3> *r_body_a_points, Vector<Vector3> *r_body_b_points);
|
|
|
-
|
|
|
- void redraw();
|
|
|
- SliderJointSpatialGizmo(SliderJoint *p_p3d = NULL);
|
|
|
-};
|
|
|
-
|
|
|
-class ConeTwistJointSpatialGizmo : public EditorSpatialGizmo {
|
|
|
-
|
|
|
- GDCLASS(ConeTwistJointSpatialGizmo, EditorSpatialGizmo);
|
|
|
+class JointSpatialGizmoPlugin : public EditorSpatialGizmoPlugin {
|
|
|
|
|
|
- ConeTwistJoint *p3d;
|
|
|
+ GDCLASS(JointSpatialGizmoPlugin, EditorSpatialGizmoPlugin);
|
|
|
|
|
|
public:
|
|
|
- static void CreateGizmo(const Transform &p_offset, const Transform &p_trs_joint, const Transform &p_trs_body_a, const Transform &p_trs_body_b, real_t p_swing, real_t p_twist, Vector<Vector3> &r_points, Vector<Vector3> *r_body_a_points, Vector<Vector3> *r_body_b_points);
|
|
|
-
|
|
|
- void redraw();
|
|
|
- ConeTwistJointSpatialGizmo(ConeTwistJoint *p_p3d = NULL);
|
|
|
-};
|
|
|
-
|
|
|
-class Generic6DOFJointSpatialGizmo : public EditorSpatialGizmo {
|
|
|
-
|
|
|
- GDCLASS(Generic6DOFJointSpatialGizmo, EditorSpatialGizmo);
|
|
|
-
|
|
|
- Generic6DOFJoint *p3d;
|
|
|
-
|
|
|
-public:
|
|
|
- static void CreateGizmo(
|
|
|
+ bool has_gizmo(Spatial *p_spatial);
|
|
|
+ String get_name() const;
|
|
|
+ void redraw(EditorSpatialGizmo *p_gizmo);
|
|
|
+
|
|
|
+ static void CreatePinJointGizmo(const Transform &p_offset, Vector<Vector3> &r_cursor_points);
|
|
|
+ static void CreateHingeJointGizmo(const Transform &p_offset, const Transform &p_trs_joint, const Transform &p_trs_body_a, const Transform &p_trs_body_b, real_t p_limit_lower, real_t p_limit_upper, bool p_use_limit, Vector<Vector3> &r_common_points, Vector<Vector3> *r_body_a_points, Vector<Vector3> *r_body_b_points);
|
|
|
+ static void CreateSliderJointGizmo(const Transform &p_offset, const Transform &p_trs_joint, const Transform &p_trs_body_a, const Transform &p_trs_body_b, real_t p_angular_limit_lower, real_t p_angular_limit_upper, real_t p_linear_limit_lower, real_t p_linear_limit_upper, Vector<Vector3> &r_points, Vector<Vector3> *r_body_a_points, Vector<Vector3> *r_body_b_points);
|
|
|
+ static void CreateConeTwistJointGizmo(const Transform &p_offset, const Transform &p_trs_joint, const Transform &p_trs_body_a, const Transform &p_trs_body_b, real_t p_swing, real_t p_twist, Vector<Vector3> *r_body_a_points, Vector<Vector3> *r_body_b_points);
|
|
|
+ static void CreateGeneric6DOFJointGizmo(
|
|
|
const Transform &p_offset,
|
|
|
const Transform &p_trs_joint,
|
|
|
const Transform &p_trs_body_a,
|
|
@@ -516,26 +416,7 @@ public:
|
|
|
Vector<Vector3> *r_body_a_points,
|
|
|
Vector<Vector3> *r_body_b_points);
|
|
|
|
|
|
- void redraw();
|
|
|
- Generic6DOFJointSpatialGizmo(Generic6DOFJoint *p_p3d = NULL);
|
|
|
+ JointSpatialGizmoPlugin();
|
|
|
};
|
|
|
|
|
|
-class SpatialEditorGizmos {
|
|
|
-
|
|
|
-public:
|
|
|
- HashMap<String, Ref<SpatialMaterial> > material_cache;
|
|
|
-
|
|
|
- Ref<SpatialMaterial> handle2_material;
|
|
|
- Ref<SpatialMaterial> handle2_material_billboard;
|
|
|
- Ref<SpatialMaterial> handle_material;
|
|
|
- Ref<SpatialMaterial> handle_material_billboard;
|
|
|
- Ref<Texture> handle_t;
|
|
|
- Ref<ArrayMesh> pos3d_mesh;
|
|
|
- Ref<ArrayMesh> listener_line_mesh;
|
|
|
- static SpatialEditorGizmos *singleton;
|
|
|
-
|
|
|
- Ref<SpatialEditorGizmo> get_gizmo(Spatial *p_spatial);
|
|
|
-
|
|
|
- SpatialEditorGizmos();
|
|
|
-};
|
|
|
#endif // SPATIAL_EDITOR_GIZMOS_H
|