summaryrefslogtreecommitdiff
path: root/servers/visual/visual_server_scene.h
diff options
context:
space:
mode:
Diffstat (limited to 'servers/visual/visual_server_scene.h')
-rw-r--r--servers/visual/visual_server_scene.h31
1 files changed, 20 insertions, 11 deletions
diff --git a/servers/visual/visual_server_scene.h b/servers/visual/visual_server_scene.h
index d30a2108a5..9e4701de65 100644
--- a/servers/visual/visual_server_scene.h
+++ b/servers/visual/visual_server_scene.h
@@ -120,9 +120,9 @@ public:
Camera() {
visible_layers = 0xFFFFFFFF;
- fov = 65;
+ fov = 70;
type = PERSPECTIVE;
- znear = 0.1;
+ znear = 0.05;
zfar = 100;
size = 1.0;
vaspect = false;
@@ -195,8 +195,9 @@ public:
SelfList<Instance> update_item;
- Rect3 aabb;
- Rect3 transformed_aabb;
+ AABB aabb;
+ AABB transformed_aabb;
+ AABB *custom_aabb; // <Zylann> would using aabb directly with a bool be better?
float extra_margin;
uint32_t object_ID;
@@ -228,8 +229,9 @@ public:
singleton->_instance_queue_update(this, false, true);
}
- Instance()
- : scenario_item(this), update_item(this) {
+ Instance() :
+ scenario_item(this),
+ update_item(this) {
octree_id = 0;
scenario = NULL;
@@ -251,12 +253,16 @@ public:
last_frame_pass = 0;
version = 1;
base_data = NULL;
+
+ custom_aabb = NULL;
}
~Instance() {
if (base_data)
memdelete(base_data);
+ if (custom_aabb)
+ memdelete(custom_aabb);
}
};
@@ -300,8 +306,8 @@ public:
int render_step;
- InstanceReflectionProbeData()
- : update_list(this) {
+ InstanceReflectionProbeData() :
+ update_list(this) {
reflection_dirty = true;
render_step = -1;
@@ -429,10 +435,11 @@ public:
SelfList<InstanceGIProbeData> update_element;
- InstanceGIProbeData()
- : update_element(this) {
+ InstanceGIProbeData() :
+ update_element(this) {
invalid = true;
base_version = 0;
+ dynamic.updating_stage = GI_UPDATE_STAGE_CHECK;
}
};
@@ -460,13 +467,15 @@ public:
virtual void instance_set_surface_material(RID p_instance, int p_surface, RID p_material);
virtual void instance_set_visible(RID p_instance, bool p_visible);
+ virtual void instance_set_custom_aabb(RID p_insatnce, AABB aabb);
+
virtual void instance_attach_skeleton(RID p_instance, RID p_skeleton);
virtual void instance_set_exterior(RID p_instance, bool p_enabled);
virtual void instance_set_extra_visibility_margin(RID p_instance, real_t p_margin);
// don't use these in a game!
- virtual Vector<ObjectID> instances_cull_aabb(const Rect3 &p_aabb, RID p_scenario = RID()) const;
+ virtual Vector<ObjectID> instances_cull_aabb(const AABB &p_aabb, RID p_scenario = RID()) const;
virtual Vector<ObjectID> instances_cull_ray(const Vector3 &p_from, const Vector3 &p_to, RID p_scenario = RID()) const;
virtual Vector<ObjectID> instances_cull_convex(const Vector<Plane> &p_convex, RID p_scenario = RID()) const;