Skip to content

Commit 3ea19d0

Browse files
authored
Add Geometry uv and vertex_count methods (#99)
1 parent 4b2f9c5 commit 3ea19d0

File tree

2 files changed

+48
-3
lines changed

2 files changed

+48
-3
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
from mewnala import *
2+
3+
geometry = None
4+
5+
6+
def setup():
7+
global geometry
8+
size(640, 480)
9+
mode_3d()
10+
11+
geometry = Geometry()
12+
13+
geometry.normal(0.0, 0.0, 1.0)
14+
15+
geometry.uv(0.0, 0.0)
16+
geometry.vertex(-80.0, -80.0, 0.0)
17+
18+
geometry.uv(1.0, 0.0)
19+
geometry.vertex(80.0, -80.0, 0.0)
20+
21+
geometry.uv(0.5, 1.0)
22+
geometry.vertex(0.0, 80.0, 0.0)
23+
24+
geometry.index(0)
25+
geometry.index(1)
26+
geometry.index(2)
27+
28+
print("vertex_count =", geometry.vertex_count())
29+
30+
31+
def draw():
32+
background(220)
33+
camera_position(0.0, 0.0, 200.0)
34+
camera_look_at(0.0, 0.0, 0.0)
35+
draw_geometry(geometry)
36+
37+
38+
run()

crates/processing_pyo3/src/graphics.rs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
use crate::color::{ColorMode, extract_color_with_mode};
2-
use crate::color::{ColorMode, extract_color_with_mode};
3-
use crate::glfw::GlfwContext;
42
use crate::glfw::GlfwContext;
53
use crate::input;
64
use crate::math::{extract_vec2, extract_vec3, extract_vec4};
7-
use crate::math::{extract_vec2, extract_vec3, extract_vec4};
85
use bevy::{
96
color::{ColorToPacked, Srgba},
107
math::Vec4,
@@ -152,6 +149,12 @@ impl Geometry {
152149
geometry_vertex(self.entity, v).map_err(|e| PyRuntimeError::new_err(format!("{e}")))
153150
}
154151

152+
#[pyo3(signature = (*args))]
153+
pub fn uv(&self, args: &Bound<'_, PyTuple>) -> PyResult<()> {
154+
let v = extract_vec2(args)?;
155+
geometry_uv(self.entity, v.x, v.y).map_err(|e| PyRuntimeError::new_err(format!("{e}")))
156+
}
157+
155158
pub fn index(&self, i: u32) -> PyResult<()> {
156159
geometry_index(self.entity, i).map_err(|e| PyRuntimeError::new_err(format!("{e}")))
157160
}
@@ -161,6 +164,10 @@ impl Geometry {
161164
let v = extract_vec3(args)?;
162165
geometry_set_vertex(self.entity, i, v).map_err(|e| PyRuntimeError::new_err(format!("{e}")))
163166
}
167+
168+
pub fn vertex_count(&self) -> PyResult<u32> {
169+
geometry_vertex_count(self.entity).map_err(|e| PyRuntimeError::new_err(format!("{e}")))
170+
}
164171
}
165172

166173
#[pyclass(unsendable)]

0 commit comments

Comments
 (0)