diff --git a/crates/processing_pyo3/assets b/crates/processing_pyo3/assets new file mode 120000 index 00000000..41aef43f --- /dev/null +++ b/crates/processing_pyo3/assets @@ -0,0 +1 @@ +../../assets \ No newline at end of file diff --git a/crates/processing_pyo3/examples/assets b/crates/processing_pyo3/examples/assets deleted file mode 120000 index 2978ef39..00000000 --- a/crates/processing_pyo3/examples/assets +++ /dev/null @@ -1 +0,0 @@ -../../../assets \ No newline at end of file diff --git a/crates/processing_pyo3/examples/camera_controllers.py b/crates/processing_pyo3/examples/camera_controllers.py new file mode 100644 index 00000000..7feae0f5 --- /dev/null +++ b/crates/processing_pyo3/examples/camera_controllers.py @@ -0,0 +1,46 @@ +from mewnala import * + +angle = 0.0 +mode = 0 + +def setup(): + size(800, 600) + mode_3d() + orbit_camera() + + dir_light = create_directional_light((1.0, 0.98, 0.95), 1500.0) + dir_light.position(300.0, 400.0, 300.0) + dir_light.look_at(0.0, 0.0, 0.0) + +def draw(): + global angle, mode + + if key_just_pressed(KEY_1): + mode_3d() + orbit_camera() + mode = 0 + if key_just_pressed(KEY_2): + mode_3d() + free_camera() + mode = 1 + if key_just_pressed(KEY_3): + mode_2d() + pan_camera() + mode = 2 + + background(13, 13, 18) + if mode < 2: + fill(255, 217, 145) + roughness(0.3) + metallic(0.8) + push_matrix() + rotate(angle) + box(100.0, 100.0, 100.0) + pop_matrix() + else: + fill(204, 77, 51) + rect(300.0, 200.0, 200.0, 200.0) + + angle += 0.02 + +run() diff --git a/crates/processing_pyo3/src/lib.rs b/crates/processing_pyo3/src/lib.rs index ee18d3ac..ffd56bb0 100644 --- a/crates/processing_pyo3/src/lib.rs +++ b/crates/processing_pyo3/src/lib.rs @@ -739,6 +739,12 @@ mod mewnala { graphics!(module).mode_3d() } + #[pyfunction] + #[pyo3(pass_module)] + fn mode_2d(module: &Bound<'_, PyModule>) -> PyResult<()> { + graphics!(module).mode_2d() + } + #[pyfunction] #[pyo3(pass_module, signature = (*args))] fn camera_position(module: &Bound<'_, PyModule>, args: &Bound<'_, PyTuple>) -> PyResult<()> {