Skip to content

Commit 417588c

Browse files
committed
add gizmo
1 parent 3116aa8 commit 417588c

File tree

5 files changed

+48
-58
lines changed

5 files changed

+48
-58
lines changed

src/gizmo.rs

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
use bevy::prelude::*;
2+
3+
pub struct AxisGizmo {
4+
5+
}
6+
7+
pub fn add_axis_gizmo(
8+
commands: &mut Commands,
9+
mut meshes: ResMut<Assets<Mesh>>,
10+
mut materials: ResMut<Assets<StandardMaterial>>,
11+
transform: Transform
12+
) {
13+
commands
14+
.spawn(PbrBundle {
15+
mesh: meshes.add(Mesh::from(shape::Icosphere { radius: 0.1, subdivisions: 10 })),
16+
material: materials.add(Color::rgb(0.0, 0.0, 0.0).into()),
17+
transform: transform,
18+
..Default::default()
19+
}).with(AxisGizmo{})
20+
.with_children(|parent: &mut ChildBuilder| {
21+
parent
22+
.spawn(PbrBundle {
23+
mesh: meshes.add(Mesh::from(shape::Cube { size: 0.1 })),
24+
material: materials.add(Color::rgb(1.0, 0.0, 0.0).into()),
25+
transform: Transform::from_translation(Vec3::new(1.0, 0.0, 0.0)),
26+
..Default::default()
27+
})
28+
.spawn(PbrBundle {
29+
mesh: meshes.add(Mesh::from(shape::Cube { size: 0.1 })),
30+
material: materials.add(Color::rgb(0.0, 1.0, 0.0).into()),
31+
transform: Transform::from_translation(Vec3::new(0.0, 1.0, 0.0)),
32+
..Default::default()
33+
})
34+
.spawn(PbrBundle {
35+
mesh: meshes.add(Mesh::from(shape::Cube { size: 0.1 })),
36+
material: materials.add(Color::rgb(0.0, 0.0, 1.0).into()),
37+
transform: Transform::from_translation(Vec3::new(0.0, 0.0, 1.0)),
38+
..Default::default()
39+
});
40+
});
41+
}

src/lib.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
pub mod terrain;
22
pub mod rtin;
33
pub mod terrain_rtin;
4-
pub mod terrain_shader;
4+
pub mod terrain_shader;
5+
pub mod gizmo;

src/main.rs

Lines changed: 5 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
mod ui;
22

3-
use std::sync::mpsc;
4-
use bevy_terrain::{terrain::{terrain_example, Terrain}, terrain_shader::MyMaterialWithVertexColorSupport};
3+
use bevy_terrain::{gizmo::add_axis_gizmo, terrain::{terrain_example, Terrain}, terrain_shader::MyMaterialWithVertexColorSupport};
54
use bevy::prelude::*;
65
use bevy_fly_camera::{FlyCamera, FlyCameraPlugin};
76
use bevy_render::{
@@ -14,8 +13,7 @@ use ui::{ButtonMaterials, button_system, setup_ui, show_ui_system};
1413
use bevy::{
1514
render::{
1615
pipeline::{PipelineDescriptor, RenderPipeline},
17-
render_graph::{base, AssetRenderResourcesNode, RenderGraph},
18-
shader::{ShaderStage, ShaderStages},
16+
render_graph::{RenderGraph},
1917
},
2018
};
2119

@@ -63,40 +61,13 @@ fn setup(
6361
commands
6462
// terrain
6563
.spawn(MeshBundle {
66-
// mesh: meshes.add(Mesh::from(shape::Plane { size: 5.0 })),
6764
mesh: terrain_mesh_handle,
6865
render_pipelines: RenderPipelines::from_pipelines(vec![RenderPipeline::new(
6966
pipeline_handle,
7067
)]),
7168
transform: Transform::from_translation(Vec3::new(0.0, 0.0, 0.0)),
7269
..Default::default()
7370
}).with(Terrain{})
74-
// cube
75-
.spawn(PbrBundle {
76-
mesh: meshes.add(Mesh::from(shape::Cube { size: 0.1 })),
77-
material: materials.add(Color::rgb(1.0, 0.0, 0.0).into()),
78-
transform: Transform::from_translation(Vec3::new(4.0, 0.0, 0.0)),
79-
..Default::default()
80-
})
81-
.spawn(PbrBundle {
82-
mesh: meshes.add(Mesh::from(shape::Cube { size: 0.2 })),
83-
material: materials.add(Color::rgb(0.0, 0.0, 0.0).into()),
84-
transform: Transform::from_translation(Vec3::new(0.0, 0.0, 0.0)),
85-
..Default::default()
86-
})
87-
.spawn(PbrBundle {
88-
mesh: meshes.add(Mesh::from(shape::Cube { size: 0.1 })),
89-
material: materials.add(Color::rgb(0.0, 1.0, 0.0).into()),
90-
transform: Transform::from_translation(Vec3::new(0.0, 4.0, 0.0)),
91-
..Default::default()
92-
})
93-
.spawn(PbrBundle {
94-
mesh: meshes.add(Mesh::from(shape::Cube { size: 0.1 })),
95-
material: materials.add(Color::rgb(0.0, 0.0, 1.0).into()),
96-
transform: Transform::from_translation(Vec3::new(0.0, 0.0, 4.0)),
97-
..Default::default()
98-
})
99-
// light
10071
.spawn(LightBundle {
10172
transform: Transform::from_translation(Vec3::new(0.0, 4.0, 0.0)),
10273
..Default::default()
@@ -109,32 +80,10 @@ fn setup(
10980
})
11081
.with(FlyCamera::default());
11182

83+
add_axis_gizmo(commands, meshes, materials,
84+
Transform::from_translation(Vec3::new(0f32, 0f32, 0f32)));
85+
11286
setup_ui(commands,
11387
asset_server,
11488
button_materials);
11589
}
116-
117-
118-
fn make_terrain_mesh() -> Mesh {
119-
120-
let mut mesh = Mesh::new(PrimitiveTopology::TriangleList);
121-
122-
let vertices : Vec<[f32; 3]> = vec![
123-
[0.0, 0.0, 0.0],
124-
[0.0, 0.0, 1.0],
125-
[1.0, 0.0, 0.0],
126-
];
127-
let normals = vec![[0.0, 0.0, 1.0]; 3];
128-
129-
let indices = vec![0, 1, 2];
130-
let uvs = vec![[0.0, 0.0, 0.0]; vertices.len()];
131-
132-
mesh.set_attribute(
133-
Mesh::ATTRIBUTE_POSITION,
134-
VertexAttributeValues::Float3(vertices));
135-
mesh.set_attribute(Mesh::ATTRIBUTE_NORMAL, VertexAttributeValues::Float3(normals));
136-
mesh.set_attribute(Mesh::ATTRIBUTE_UV_0, VertexAttributeValues::Float3(uvs));
137-
mesh.set_indices(Some(Indices::U32(indices)));
138-
139-
mesh
140-
}

src/ui.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,6 @@ pub fn show_ui_system(
151151
mut camera_query: Query<
152152
&mut FlyCamera
153153
>,
154-
// mut text_query: Query<&mut Text>,
155154
mut ui_query: Query<(&mut Visible, &Menu)>
156155
) {
157156

terrain.png

-2.17 KB
Loading

0 commit comments

Comments
 (0)