Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rename camera near and far private members to avoid conflict with Windows.h defines #87164

Merged
merged 1 commit into from
Feb 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 32 additions & 32 deletions scene/3d/camera_3d.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,14 @@ void Camera3D::_update_camera_mode() {
force_change = true;
switch (mode) {
case PROJECTION_PERSPECTIVE: {
set_perspective(fov, near, far);
set_perspective(fov, _near, _far);

} break;
case PROJECTION_ORTHOGONAL: {
set_orthogonal(size, near, far);
set_orthogonal(size, _near, _far);
} break;
case PROJECTION_FRUSTUM: {
set_frustum(size, frustum_offset, near, far);
set_frustum(size, frustum_offset, _near, _far);
} break;
}
}
Expand Down Expand Up @@ -175,13 +175,13 @@ Projection Camera3D::_get_camera_projection(real_t p_near) const {

switch (mode) {
case PROJECTION_PERSPECTIVE: {
cm.set_perspective(fov, viewport_size.aspect(), p_near, far, keep_aspect == KEEP_WIDTH);
cm.set_perspective(fov, viewport_size.aspect(), p_near, _far, keep_aspect == KEEP_WIDTH);
} break;
case PROJECTION_ORTHOGONAL: {
cm.set_orthogonal(size, viewport_size.aspect(), p_near, far, keep_aspect == KEEP_WIDTH);
cm.set_orthogonal(size, viewport_size.aspect(), p_near, _far, keep_aspect == KEEP_WIDTH);
} break;
case PROJECTION_FRUSTUM: {
cm.set_frustum(size, viewport_size.aspect(), frustum_offset, p_near, far);
cm.set_frustum(size, viewport_size.aspect(), frustum_offset, p_near, _far);
} break;
}

Expand All @@ -190,54 +190,54 @@ Projection Camera3D::_get_camera_projection(real_t p_near) const {

Projection Camera3D::get_camera_projection() const {
ERR_FAIL_COND_V_MSG(!is_inside_tree(), Projection(), "Camera is not inside the scene tree.");
return _get_camera_projection(near);
return _get_camera_projection(_near);
}

void Camera3D::set_perspective(real_t p_fovy_degrees, real_t p_z_near, real_t p_z_far) {
if (!force_change && fov == p_fovy_degrees && p_z_near == near && p_z_far == far && mode == PROJECTION_PERSPECTIVE) {
if (!force_change && fov == p_fovy_degrees && p_z_near == _near && p_z_far == _far && mode == PROJECTION_PERSPECTIVE) {
return;
}

fov = p_fovy_degrees;
near = p_z_near;
far = p_z_far;
_near = p_z_near;
_far = p_z_far;
mode = PROJECTION_PERSPECTIVE;

RenderingServer::get_singleton()->camera_set_perspective(camera, fov, near, far);
RenderingServer::get_singleton()->camera_set_perspective(camera, fov, _near, _far);
update_gizmos();
force_change = false;
}

void Camera3D::set_orthogonal(real_t p_size, real_t p_z_near, real_t p_z_far) {
if (!force_change && size == p_size && p_z_near == near && p_z_far == far && mode == PROJECTION_ORTHOGONAL) {
if (!force_change && size == p_size && p_z_near == _near && p_z_far == _far && mode == PROJECTION_ORTHOGONAL) {
return;
}

size = p_size;

near = p_z_near;
far = p_z_far;
_near = p_z_near;
_far = p_z_far;
mode = PROJECTION_ORTHOGONAL;
force_change = false;

RenderingServer::get_singleton()->camera_set_orthogonal(camera, size, near, far);
RenderingServer::get_singleton()->camera_set_orthogonal(camera, size, _near, _far);
update_gizmos();
}

void Camera3D::set_frustum(real_t p_size, Vector2 p_offset, real_t p_z_near, real_t p_z_far) {
if (!force_change && size == p_size && frustum_offset == p_offset && p_z_near == near && p_z_far == far && mode == PROJECTION_FRUSTUM) {
if (!force_change && size == p_size && frustum_offset == p_offset && p_z_near == _near && p_z_far == _far && mode == PROJECTION_FRUSTUM) {
return;
}

size = p_size;
frustum_offset = p_offset;

near = p_z_near;
far = p_z_far;
_near = p_z_near;
_far = p_z_far;
mode = PROJECTION_FRUSTUM;
force_change = false;

RenderingServer::get_singleton()->camera_set_frustum(camera, size, frustum_offset, near, far);
RenderingServer::get_singleton()->camera_set_frustum(camera, size, frustum_offset, _near, _far);
update_gizmos();
}

Expand Down Expand Up @@ -309,9 +309,9 @@ Vector3 Camera3D::project_local_ray_normal(const Point2 &p_pos) const {
if (mode == PROJECTION_ORTHOGONAL) {
ray = Vector3(0, 0, -1);
} else {
Projection cm = _get_camera_projection(near);
Projection cm = _get_camera_projection(_near);
Vector2 screen_he = cm.get_viewport_half_extents();
ray = Vector3(((cpos.x / viewport_size.width) * 2.0 - 1.0) * screen_he.x, ((1.0 - (cpos.y / viewport_size.height)) * 2.0 - 1.0) * screen_he.y, -near).normalized();
ray = Vector3(((cpos.x / viewport_size.width) * 2.0 - 1.0) * screen_he.x, ((1.0 - (cpos.y / viewport_size.height)) * 2.0 - 1.0) * screen_he.y, -_near).normalized();
}

return ray;
Expand All @@ -338,7 +338,7 @@ Vector3 Camera3D::project_ray_origin(const Point2 &p_pos) const {
Vector3 ray;
ray.x = pos.x * (hsize)-hsize / 2;
ray.y = (1.0 - pos.y) * (vsize)-vsize / 2;
ray.z = -near;
ray.z = -_near;
ray = get_camera_transform().xform(ray);
return ray;
} else {
Expand All @@ -349,13 +349,13 @@ Vector3 Camera3D::project_ray_origin(const Point2 &p_pos) const {
bool Camera3D::is_position_behind(const Vector3 &p_pos) const {
Transform3D t = get_global_transform();
Vector3 eyedir = -t.basis.get_column(2).normalized();
return eyedir.dot(p_pos - t.origin) < near;
return eyedir.dot(p_pos - t.origin) < _near;
}

Vector<Vector3> Camera3D::get_near_plane_points() const {
ERR_FAIL_COND_V_MSG(!is_inside_tree(), Vector<Vector3>(), "Camera is not inside scene.");

Projection cm = _get_camera_projection(near);
Projection cm = _get_camera_projection(_near);

Vector3 endpoints[8];
cm.get_endpoints(Transform3D(), endpoints);
Expand All @@ -375,7 +375,7 @@ Point2 Camera3D::unproject_position(const Vector3 &p_pos) const {

Size2 viewport_size = get_viewport()->get_visible_rect().size;

Projection cm = _get_camera_projection(near);
Projection cm = _get_camera_projection(_near);

Plane p(get_camera_transform().xform_inv(p_pos), 1.0);

Expand Down Expand Up @@ -459,8 +459,8 @@ void Camera3D::_attributes_changed() {
ERR_FAIL_NULL(physical_attributes);

fov = physical_attributes->get_fov();
near = physical_attributes->get_near();
far = physical_attributes->get_far();
_near = physical_attributes->get_near();
_far = physical_attributes->get_far();
keep_aspect = KEEP_HEIGHT;
_update_camera_mode();
}
Expand Down Expand Up @@ -583,15 +583,15 @@ real_t Camera3D::get_size() const {
}

real_t Camera3D::get_near() const {
return near;
return _near;
}

Vector2 Camera3D::get_frustum_offset() const {
return frustum_offset;
}

real_t Camera3D::get_far() const {
return far;
return _far;
}

Camera3D::ProjectionType Camera3D::get_projection() const {
Expand All @@ -611,7 +611,7 @@ void Camera3D::set_size(real_t p_size) {
}

void Camera3D::set_near(real_t p_near) {
near = p_near;
_near = p_near;
_update_camera_mode();
}

Expand All @@ -621,7 +621,7 @@ void Camera3D::set_frustum_offset(Vector2 p_offset) {
}

void Camera3D::set_far(real_t p_far) {
far = p_far;
_far = p_far;
_update_camera_mode();
}

Expand Down Expand Up @@ -656,7 +656,7 @@ bool Camera3D::get_cull_mask_value(int p_layer_number) const {
Vector<Plane> Camera3D::get_frustum() const {
ERR_FAIL_COND_V(!is_inside_world(), Vector<Plane>());

Projection cm = _get_camera_projection(near);
Projection cm = _get_camera_projection(_near);

return cm.get_projection_planes(get_camera_transform());
}
Expand Down
10 changes: 3 additions & 7 deletions scene/3d/camera_3d.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,6 @@
#include "scene/resources/camera_attributes.h"
#include "scene/resources/environment.h"

#ifdef MINGW_ENABLED
#undef near
#undef far
#endif

class Camera3D : public Node3D {
GDCLASS(Camera3D, Node3D);

Expand Down Expand Up @@ -72,8 +67,9 @@ class Camera3D : public Node3D {
real_t fov = 75.0;
real_t size = 1.0;
Vector2 frustum_offset;
real_t near = 0.05;
real_t far = 4000.0;
// _ prefix to avoid conflict with Windows defines.
real_t _near = 0.05;
real_t _far = 4000.0;
real_t v_offset = 0.0;
real_t h_offset = 0.0;
KeepAspect keep_aspect = KEEP_HEIGHT;
Expand Down
2 changes: 1 addition & 1 deletion scene/main/viewport.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -885,7 +885,7 @@ void Viewport::_process_picking() {
if (camera_3d) {
Vector3 from = camera_3d->project_ray_origin(pos);
Vector3 dir = camera_3d->project_ray_normal(pos);
real_t far = camera_3d->far;
real_t far = camera_3d->get_far();

PhysicsDirectSpaceState3D *space = PhysicsServer3D::get_singleton()->space_get_direct_state(find_world_3d()->get_space());
if (space) {
Expand Down
Loading