diff options
Diffstat (limited to 'editor/spatial_editor_gizmos.h')
| -rw-r--r-- | editor/spatial_editor_gizmos.h | 327 |
1 files changed, 126 insertions, 201 deletions
diff --git a/editor/spatial_editor_gizmos.h b/editor/spatial_editor_gizmos.h index c44a98714..76564c5a9 100644 --- a/editor/spatial_editor_gizmos.h +++ b/editor/spatial_editor_gizmos.h @@ -29,35 +29,33 @@ #ifndef SPATIAL_EDITOR_GIZMOS_H #define SPATIAL_EDITOR_GIZMOS_H - #include "editor/plugins/spatial_editor_plugin.h" +#include "scene/3d/body_shape.h" +#include "scene/3d/camera.h" +#include "scene/3d/gi_probe.h" #include "scene/3d/light.h" #include "scene/3d/listener.h" -#include "scene/3d/camera.h" -#include "scene/3d/position_3d.h" -#include "scene/3d/test_cube.h" #include "scene/3d/mesh_instance.h" -#include "scene/3d/body_shape.h" -#include "scene/3d/room_instance.h" -#include "scene/3d/visibility_notifier.h" +#include "scene/3d/navigation_mesh.h" #include "scene/3d/portal.h" +#include "scene/3d/position_3d.h" #include "scene/3d/ray_cast.h" -#include "scene/3d/navigation_mesh.h" #include "scene/3d/reflection_probe.h" -#include "scene/3d/gi_probe.h" +#include "scene/3d/room_instance.h" +#include "scene/3d/test_cube.h" +#include "scene/3d/visibility_notifier.h" -#include "scene/3d/vehicle_body.h" #include "scene/3d/collision_polygon.h" #include "scene/3d/physics_joint.h" - +#include "scene/3d/vehicle_body.h" class Camera; -class EditorSpatialGizmo : public SpatialEditorGizmo { +class EditorSpatialGizmo : public SpatialEditorGizmo { - GDCLASS(EditorSpatialGizmo,SpatialGizmo); + GDCLASS(EditorSpatialGizmo, SpatialGizmo); - struct Instance{ + struct Instance { RID instance; Ref<Mesh> mesh; @@ -68,14 +66,13 @@ class EditorSpatialGizmo : public SpatialEditorGizmo { bool extra_margin; Instance() { - billboard=false; - unscaled=false; - can_intersect=false; - extra_margin=false; + billboard = false; + unscaled = false; + can_intersect = false; + extra_margin = false; } void create_instance(Spatial *p_base); - }; Vector<Vector3> collision_segments; @@ -96,22 +93,23 @@ class EditorSpatialGizmo : public SpatialEditorGizmo { Spatial *spatial_node; void _set_spatial_node(Node *p_node) { set_spatial_node(p_node->cast_to<Spatial>()); } + protected: - void add_lines(const Vector<Vector3> &p_lines,const Ref<Material>& p_material,bool p_billboard=false); - void add_mesh(const Ref<Mesh>& p_mesh,bool p_billboard=false,const RID& p_skeleton=RID()); + void add_lines(const Vector<Vector3> &p_lines, const Ref<Material> &p_material, bool p_billboard = false); + void add_mesh(const Ref<Mesh> &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_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 set_spatial_node(Spatial *p_node); static void _bind_methods(); -public: +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(const Camera *p_camera,const Point2& p_point, Vector3& r_pos, Vector3& r_normal,int *r_gizmo_handle=NULL,bool p_sec_first=false); + virtual bool intersect_frustum(const Camera *p_camera, const Vector<Plane> &p_frustum); + virtual bool intersect_ray(const 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(); @@ -123,358 +121,286 @@ public: ~EditorSpatialGizmo(); }; +class LightSpatialGizmo : public EditorSpatialGizmo { + GDCLASS(LightSpatialGizmo, EditorSpatialGizmo); -class LightSpatialGizmo : public EditorSpatialGizmo { - - GDCLASS(LightSpatialGizmo,EditorSpatialGizmo); - - Light* light; + Light *light; 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); + 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(); - LightSpatialGizmo(Light* p_light=NULL); - + LightSpatialGizmo(Light *p_light = NULL); }; -class CameraSpatialGizmo : public EditorSpatialGizmo { +class CameraSpatialGizmo : public EditorSpatialGizmo { - GDCLASS(CameraSpatialGizmo,EditorSpatialGizmo); + GDCLASS(CameraSpatialGizmo, EditorSpatialGizmo); - Camera* camera; + Camera *camera; 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); + 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(); - CameraSpatialGizmo(Camera* p_camera=NULL); - + CameraSpatialGizmo(Camera *p_camera = NULL); }; +class MeshInstanceSpatialGizmo : public EditorSpatialGizmo { + GDCLASS(MeshInstanceSpatialGizmo, EditorSpatialGizmo); -class MeshInstanceSpatialGizmo : public EditorSpatialGizmo { - - GDCLASS(MeshInstanceSpatialGizmo,EditorSpatialGizmo); - - MeshInstance* mesh; + MeshInstance *mesh; public: - void redraw(); - MeshInstanceSpatialGizmo(MeshInstance* p_mesh=NULL); - + MeshInstanceSpatialGizmo(MeshInstance *p_mesh = NULL); }; -class Position3DSpatialGizmo : public EditorSpatialGizmo { +class Position3DSpatialGizmo : public EditorSpatialGizmo { - GDCLASS(Position3DSpatialGizmo,EditorSpatialGizmo); + GDCLASS(Position3DSpatialGizmo, EditorSpatialGizmo); - Position3D* p3d; + Position3D *p3d; public: - void redraw(); - Position3DSpatialGizmo(Position3D* p_p3d=NULL); - + Position3DSpatialGizmo(Position3D *p_p3d = NULL); }; -class SkeletonSpatialGizmo : public EditorSpatialGizmo { +class SkeletonSpatialGizmo : public EditorSpatialGizmo { - GDCLASS(SkeletonSpatialGizmo,EditorSpatialGizmo); + GDCLASS(SkeletonSpatialGizmo, EditorSpatialGizmo); - Skeleton* skel; + Skeleton *skel; public: - void redraw(); - SkeletonSpatialGizmo(Skeleton* p_skel=NULL); - + SkeletonSpatialGizmo(Skeleton *p_skel = NULL); }; +class TestCubeSpatialGizmo : public EditorSpatialGizmo { -class TestCubeSpatialGizmo : public EditorSpatialGizmo { + GDCLASS(TestCubeSpatialGizmo, EditorSpatialGizmo); - GDCLASS(TestCubeSpatialGizmo,EditorSpatialGizmo); - - TestCube* tc; + TestCube *tc; public: void redraw(); - TestCubeSpatialGizmo(TestCube* p_tc=NULL); - + TestCubeSpatialGizmo(TestCube *p_tc = NULL); }; +class RoomSpatialGizmo : public EditorSpatialGizmo { -class RoomSpatialGizmo : public EditorSpatialGizmo { - - GDCLASS(RoomSpatialGizmo,EditorSpatialGizmo); - + GDCLASS(RoomSpatialGizmo, EditorSpatialGizmo); struct _EdgeKey { Vector3 from; Vector3 to; - bool operator<(const _EdgeKey& p_with) const { return from==p_with.from ? to < p_with.to : from < p_with.from; } + bool operator<(const _EdgeKey &p_with) const { return from == p_with.from ? to < p_with.to : from < p_with.from; } }; - - - Room* room; + Room *room; public: - void redraw(); - RoomSpatialGizmo(Room* p_room=NULL); - + RoomSpatialGizmo(Room *p_room = NULL); }; +class PortalSpatialGizmo : public EditorSpatialGizmo { -class PortalSpatialGizmo : public EditorSpatialGizmo { - - GDCLASS(PortalSpatialGizmo,EditorSpatialGizmo); + GDCLASS(PortalSpatialGizmo, EditorSpatialGizmo); - Portal* portal; + Portal *portal; public: - void redraw(); - PortalSpatialGizmo(Portal* p_portal=NULL); - + PortalSpatialGizmo(Portal *p_portal = NULL); }; +class VisibilityNotifierGizmo : public EditorSpatialGizmo { -class VisibilityNotifierGizmo : public EditorSpatialGizmo { - - GDCLASS(VisibilityNotifierGizmo ,EditorSpatialGizmo); + GDCLASS(VisibilityNotifierGizmo, EditorSpatialGizmo); - - VisibilityNotifier* notifier; + VisibilityNotifier *notifier; 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); + 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(); - VisibilityNotifierGizmo(VisibilityNotifier* p_notifier=NULL); - + VisibilityNotifierGizmo(VisibilityNotifier *p_notifier = NULL); }; +class ReflectionProbeGizmo : public EditorSpatialGizmo { -class ReflectionProbeGizmo : public EditorSpatialGizmo { + GDCLASS(ReflectionProbeGizmo, EditorSpatialGizmo); - GDCLASS(ReflectionProbeGizmo ,EditorSpatialGizmo); - - - ReflectionProbe* probe; + ReflectionProbe *probe; 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); + 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(); - ReflectionProbeGizmo(ReflectionProbe* p_notifier=NULL); - + ReflectionProbeGizmo(ReflectionProbe *p_notifier = NULL); }; -class GIProbeGizmo : public EditorSpatialGizmo { - - GDCLASS(GIProbeGizmo ,EditorSpatialGizmo); +class GIProbeGizmo : public EditorSpatialGizmo { + GDCLASS(GIProbeGizmo, EditorSpatialGizmo); - GIProbe* probe; + GIProbe *probe; 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); + 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(); - GIProbeGizmo(GIProbe* p_notifier=NULL); - + GIProbeGizmo(GIProbe *p_notifier = NULL); }; +class CollisionShapeSpatialGizmo : public EditorSpatialGizmo { -class CollisionShapeSpatialGizmo : public EditorSpatialGizmo { - - GDCLASS(CollisionShapeSpatialGizmo,EditorSpatialGizmo); + GDCLASS(CollisionShapeSpatialGizmo, EditorSpatialGizmo); - CollisionShape* cs; + CollisionShape *cs; 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); + 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); - + CollisionShapeSpatialGizmo(CollisionShape *p_cs = NULL); }; +class CollisionPolygonSpatialGizmo : public EditorSpatialGizmo { -class CollisionPolygonSpatialGizmo : public EditorSpatialGizmo { + GDCLASS(CollisionPolygonSpatialGizmo, EditorSpatialGizmo); - GDCLASS(CollisionPolygonSpatialGizmo,EditorSpatialGizmo); - - CollisionPolygon* polygon; + CollisionPolygon *polygon; public: - void redraw(); - CollisionPolygonSpatialGizmo(CollisionPolygon* p_polygon=NULL); - + CollisionPolygonSpatialGizmo(CollisionPolygon *p_polygon = NULL); }; +class RayCastSpatialGizmo : public EditorSpatialGizmo { + GDCLASS(RayCastSpatialGizmo, EditorSpatialGizmo); -class RayCastSpatialGizmo : public EditorSpatialGizmo { - - GDCLASS(RayCastSpatialGizmo,EditorSpatialGizmo); - - RayCast* raycast; + RayCast *raycast; public: - void redraw(); - RayCastSpatialGizmo(RayCast* p_raycast=NULL); - + RayCastSpatialGizmo(RayCast *p_raycast = NULL); }; +class VehicleWheelSpatialGizmo : public EditorSpatialGizmo { + GDCLASS(VehicleWheelSpatialGizmo, EditorSpatialGizmo); -class VehicleWheelSpatialGizmo : public EditorSpatialGizmo { - - GDCLASS(VehicleWheelSpatialGizmo,EditorSpatialGizmo); - - VehicleWheel* car_wheel; + VehicleWheel *car_wheel; public: - void redraw(); - VehicleWheelSpatialGizmo(VehicleWheel* p_car_wheel=NULL); - + VehicleWheelSpatialGizmo(VehicleWheel *p_car_wheel = NULL); }; +class NavigationMeshSpatialGizmo : public EditorSpatialGizmo { -class NavigationMeshSpatialGizmo : public EditorSpatialGizmo { - - GDCLASS(NavigationMeshSpatialGizmo,EditorSpatialGizmo); - + GDCLASS(NavigationMeshSpatialGizmo, EditorSpatialGizmo); struct _EdgeKey { Vector3 from; Vector3 to; - bool operator<(const _EdgeKey& p_with) const { return from==p_with.from ? to < p_with.to : from < p_with.from; } + bool operator<(const _EdgeKey &p_with) const { return from == p_with.from ? to < p_with.to : from < p_with.from; } }; - - - NavigationMeshInstance* navmesh; + NavigationMeshInstance *navmesh; public: - void redraw(); - NavigationMeshSpatialGizmo(NavigationMeshInstance* p_navmesh=NULL); - + NavigationMeshSpatialGizmo(NavigationMeshInstance *p_navmesh = NULL); }; +class PinJointSpatialGizmo : public EditorSpatialGizmo { -class PinJointSpatialGizmo : public EditorSpatialGizmo { - - GDCLASS(PinJointSpatialGizmo,EditorSpatialGizmo); + GDCLASS(PinJointSpatialGizmo, EditorSpatialGizmo); - PinJoint* p3d; + PinJoint *p3d; public: - void redraw(); - PinJointSpatialGizmo(PinJoint* p_p3d=NULL); - + PinJointSpatialGizmo(PinJoint *p_p3d = NULL); }; +class HingeJointSpatialGizmo : public EditorSpatialGizmo { -class HingeJointSpatialGizmo : public EditorSpatialGizmo { - - GDCLASS(HingeJointSpatialGizmo,EditorSpatialGizmo); + GDCLASS(HingeJointSpatialGizmo, EditorSpatialGizmo); - HingeJoint* p3d; + HingeJoint *p3d; public: - void redraw(); - HingeJointSpatialGizmo(HingeJoint* p_p3d=NULL); - + HingeJointSpatialGizmo(HingeJoint *p_p3d = NULL); }; -class SliderJointSpatialGizmo : public EditorSpatialGizmo { +class SliderJointSpatialGizmo : public EditorSpatialGizmo { - GDCLASS(SliderJointSpatialGizmo,EditorSpatialGizmo); + GDCLASS(SliderJointSpatialGizmo, EditorSpatialGizmo); - SliderJoint* p3d; + SliderJoint *p3d; public: - void redraw(); - SliderJointSpatialGizmo(SliderJoint* p_p3d=NULL); - + SliderJointSpatialGizmo(SliderJoint *p_p3d = NULL); }; -class ConeTwistJointSpatialGizmo : public EditorSpatialGizmo { +class ConeTwistJointSpatialGizmo : public EditorSpatialGizmo { - GDCLASS(ConeTwistJointSpatialGizmo,EditorSpatialGizmo); + GDCLASS(ConeTwistJointSpatialGizmo, EditorSpatialGizmo); - ConeTwistJoint* p3d; + ConeTwistJoint *p3d; public: - void redraw(); - ConeTwistJointSpatialGizmo(ConeTwistJoint* p_p3d=NULL); - + ConeTwistJointSpatialGizmo(ConeTwistJoint *p_p3d = NULL); }; +class Generic6DOFJointSpatialGizmo : public EditorSpatialGizmo { -class Generic6DOFJointSpatialGizmo : public EditorSpatialGizmo { + GDCLASS(Generic6DOFJointSpatialGizmo, EditorSpatialGizmo); - GDCLASS(Generic6DOFJointSpatialGizmo,EditorSpatialGizmo); - - Generic6DOFJoint* p3d; + Generic6DOFJoint *p3d; public: - void redraw(); - Generic6DOFJointSpatialGizmo(Generic6DOFJoint* p_p3d=NULL); - + Generic6DOFJointSpatialGizmo(Generic6DOFJoint *p_p3d = NULL); }; - -class SpatialEditorGizmos { +class SpatialEditorGizmos { public: - - Ref<FixedSpatialMaterial> create_line_material(const Color& p_base_color); - Ref<FixedSpatialMaterial> create_solid_material(const Color& p_base_color); + Ref<FixedSpatialMaterial> create_line_material(const Color &p_base_color); + Ref<FixedSpatialMaterial> create_solid_material(const Color &p_base_color); Ref<FixedSpatialMaterial> handle2_material; Ref<FixedSpatialMaterial> handle_material; Ref<FixedSpatialMaterial> light_material; @@ -513,7 +439,6 @@ public: Ref<TriangleMesh> test_cube_tm; - Ref<SpatialEditorGizmo> get_gizmo(Spatial *p_spatial); SpatialEditorGizmos(); |
