diff --git a/src/assets/positionable_object.rs b/src/assets/positionable_object.rs index a4fa9b31f3..5af8231cf2 100644 --- a/src/assets/positionable_object.rs +++ b/src/assets/positionable_object.rs @@ -52,14 +52,18 @@ impl PositionableObject { } pub fn draw(&self, model_transform_id: Uniform) { - let mut transformation = Matrix4::identity(); - transformation.append_nonuniform_scaling_mut(&self.scale); - transformation.append_translation_mut(&self.translation); + let mut transformation = Matrix4::identity(); + let rotation = Matrix4::from_euler_angles(self.rotation.x, self.rotation.y, self.rotation.z); - //println!("matrix: {:?}", transformation); - //println!("translation: {:?}", &self.translation); + transformation.append_nonuniform_scaling_mut(&self.scale); + transformation = transformation * rotation; + transformation.append_translation_mut(&self.translation); - let mat_ptr = transformation.as_ptr(); + + //println!("matrix: {:?}", transformation); + //println!("translation: {:?}", &self.translation); + + let mat_ptr = transformation.as_ptr(); unsafe { gl::UniformMatrix4fv(model_transform_id.id(), 1, gl::FALSE, mat_ptr); diff --git a/src/point_cloud/point_cloud_renderer.rs b/src/point_cloud/point_cloud_renderer.rs index a7398cd775..a9ade146e3 100644 --- a/src/point_cloud/point_cloud_renderer.rs +++ b/src/point_cloud/point_cloud_renderer.rs @@ -324,8 +324,8 @@ impl PointCloudRenderer { let mut positionable_object = PositionableObject::new(renderable_object); - positionable_object.translate(0.0, 0.0, 5.0); - positionable_object.rotate(180.0, 0.0, 50.0); + positionable_object.translate(0.0, 0.0, 15.0); + positionable_object.rotate(10.0, 8.0, 50.0); positionable_object.scale(2.0, 1.0, 0.5); self.renderable_object = Some(positionable_object);