implement Default for CollisionAttributes

This commit is contained in:
Quaternions 2023-10-03 19:45:01 -07:00
parent 50e9152ee2
commit b102319b33
2 changed files with 10 additions and 13 deletions

View File

@ -386,47 +386,44 @@ impl framework::Example for GlobalState {
println!("models.len = {:?}", indexed_models.len()); println!("models.len = {:?}", indexed_models.len());
indexed_models[0].instances.push(ModelInstance{ indexed_models[0].instances.push(ModelInstance{
transform:glam::Affine3A::from_translation(glam::vec3(10.,0.,-10.)), transform:glam::Affine3A::from_translation(glam::vec3(10.,0.,-10.)),
color:glam::Vec4::ONE, ..Default::default()
attributes:model::CollisionAttributes::contact(),
}); });
//quad monkeys //quad monkeys
indexed_models[1].instances.push(ModelInstance{ indexed_models[1].instances.push(ModelInstance{
transform:glam::Affine3A::from_translation(glam::vec3(10.,5.,10.)), transform:glam::Affine3A::from_translation(glam::vec3(10.,5.,10.)),
color:glam::Vec4::ONE, ..Default::default()
attributes:model::CollisionAttributes::contact(),
}); });
indexed_models[1].instances.push(ModelInstance{ indexed_models[1].instances.push(ModelInstance{
transform:glam::Affine3A::from_translation(glam::vec3(20.,5.,10.)), transform:glam::Affine3A::from_translation(glam::vec3(20.,5.,10.)),
color:glam::vec4(1.0,0.0,0.0,1.0), color:glam::vec4(1.0,0.0,0.0,1.0),
attributes:model::CollisionAttributes::contact(), ..Default::default()
}); });
indexed_models[1].instances.push(ModelInstance{ indexed_models[1].instances.push(ModelInstance{
transform:glam::Affine3A::from_translation(glam::vec3(10.,5.,20.)), transform:glam::Affine3A::from_translation(glam::vec3(10.,5.,20.)),
color:glam::vec4(0.0,1.0,0.0,1.0), color:glam::vec4(0.0,1.0,0.0,1.0),
attributes:model::CollisionAttributes::contact(), ..Default::default()
}); });
indexed_models[1].instances.push(ModelInstance{ indexed_models[1].instances.push(ModelInstance{
transform:glam::Affine3A::from_translation(glam::vec3(20.,5.,20.)), transform:glam::Affine3A::from_translation(glam::vec3(20.,5.,20.)),
color:glam::vec4(0.0,0.0,1.0,1.0), color:glam::vec4(0.0,0.0,1.0,1.0),
attributes:model::CollisionAttributes::contact(), ..Default::default()
}); });
//decorative monkey //decorative monkey
indexed_models[1].instances.push(ModelInstance{ indexed_models[1].instances.push(ModelInstance{
transform:glam::Affine3A::from_translation(glam::vec3(15.,10.,15.)), transform:glam::Affine3A::from_translation(glam::vec3(15.,10.,15.)),
color:glam::vec4(0.5,0.5,0.5,0.5), color:glam::vec4(0.5,0.5,0.5,0.5),
attributes:model::CollisionAttributes::Decoration, attributes:model::CollisionAttributes::Decoration,
..Default::default()
}); });
//teapot //teapot
indexed_models[2].instances.push(ModelInstance{ indexed_models[2].instances.push(ModelInstance{
transform:glam::Affine3A::from_scale_rotation_translation(glam::vec3(0.5, 1.0, 0.2),glam::quat(-0.22248298016985793,-0.839457167990537,-0.05603504040830783,-0.49261857546227916),glam::vec3(-10.,7.,10.)), transform:glam::Affine3A::from_scale_rotation_translation(glam::vec3(0.5, 1.0, 0.2),glam::quat(-0.22248298016985793,-0.839457167990537,-0.05603504040830783,-0.49261857546227916),glam::vec3(-10.,7.,10.)),
color:glam::Vec4::ONE, ..Default::default()
attributes:model::CollisionAttributes::contact(),
}); });
//ground //ground
indexed_models[3].instances.push(ModelInstance{ indexed_models[3].instances.push(ModelInstance{
transform:glam::Affine3A::from_translation(glam::vec3(0.,0.,0.))*glam::Affine3A::from_scale(glam::vec3(160.0, 1.0, 160.0)), transform:glam::Affine3A::from_translation(glam::vec3(0.,0.,0.))*glam::Affine3A::from_scale(glam::vec3(160.0, 1.0, 160.0)),
color:glam::Vec4::ONE, ..Default::default()
attributes:model::CollisionAttributes::contact(),
}); });
let camera_bind_group_layout = device.create_bind_group_layout(&wgpu::BindGroupLayoutDescriptor { let camera_bind_group_layout = device.create_bind_group_layout(&wgpu::BindGroupLayoutDescriptor {

View File

@ -173,8 +173,8 @@ pub enum CollisionAttributes{
general:GameMechanicAttributes, general:GameMechanicAttributes,
}, },
} }
impl CollisionAttributes{ impl std::default::Default for CollisionAttributes{
pub fn contact() -> Self { fn default() -> Self {
Self::Contact{ Self::Contact{
contacting:ContactingAttributes::default(), contacting:ContactingAttributes::default(),
general:GameMechanicAttributes::default() general:GameMechanicAttributes::default()