MCPcopy Create free account
hub / github.com/PerroEngine/Perro / shift_node_picker

Function shift_node_picker

perro_editor/res/scripts/scene/editor_nodes.rs:1091–1106  ·  view source on GitHub ↗
(ctx: &mut ScriptContext<'_, API>, dir: isize)

Source from the content-addressed store, hash-verified

1089}
1090
1091pub fn apply_spawn_position(data: &mut SceneNodeData, state: &EditorState) {
1092 if data.node_type.is_a(perro_scene::NodeType::Node2D) {
1093 set_scene_vec2(data, "position", Vector2::new(state.cam2_x, state.cam2_y));
1094 } else if data.node_type.is_a(perro_scene::NodeType::Node3D) {
1095 set_scene_vec3(data, "position", viewport_spawn_3d(state));
1096 }
1097}
1098
1099pub fn viewport_spawn_3d(state: &EditorState) -> Vector3 {
1100 let origin = Vector3::new(state.cam_x, state.cam_y, state.cam_z);
1101 let rotation = Quaternion::from_euler_xyz(state.cam_pitch, state.cam_yaw, 0.0);
1102 let forward = rotation
1103 .rotate_vector3(Vector3::new(0.0, 0.0, -1.0))
1104 .normalized();
1105 let mut point = origin + forward * 6.0;
1106 if forward.y.abs() > 0.0001 {
1107 let t = -origin.y / forward.y;
1108 if t.is_finite() && t > 0.0 && t < 1000.0 {
1109 point = origin + forward * t;

Callers 1

update_editor_shortcutsFunction · 0.85

Calls 1

refresh_allFunction · 0.85

Tested by

no test coverage detected