#pragma once #include "common.hpp" namespace kel { namespace lbm { namespace coll { template struct Spheroid { using ValueSchema = T; using Schema = sch::Struct< sch::Member,"radius"> >; }; } namespace sch { using namespace saw::schema; namespace impl { template struct rotation_type_helper; template struct rotation_type_helper { using Schema = Scalar; }; template struct rotation_type_helper { using Schema = Vector; }; } template using ParticleRigidBody = Struct< Member, "position">, Member, "position_old">, Member::Schema, "rotation">, Member::Schema, "rotation_old">, Member, "acceleration">, Member::Schema, "angular_acceleration"> >; template using Particle = Struct< Member, "rigid_body"> // Problem is that dynamic data would two layered // Member, "mask">, >; template> using ParticleGroup = Struct< Member, "mask">, Member, "collision">, Member,1u>, "mask_step">, Member,1u>, "density">, Member,1u>, "center_of_mass">, Member,1u>, "total_mass">, Member,1u>, "particles"> >; } } }