#![warn(clippy::all)]
use super::articulation_link::ArticulationLink;
use physx_sys::PxContactPairPoint;
pub struct RigidActorUserData {
pub name: String,
pub has_collide: bool,
pub collision_points: Vec<PxContactPairPoint>,
}
impl Default for RigidActorUserData {
fn default() -> Self {
Self {
name: String::from(""),
has_collide: false,
collision_points: Vec::new(),
}
}
}
pub struct ArticulationBaseUserData {
pub links: Vec<ArticulationLink>,
}
impl Default for ArticulationBaseUserData {
fn default() -> Self {
Self { links: Vec::new() }
}
}
pub struct SceneUserData {
}
impl Default for SceneUserData {
fn default() -> Self {
Self {}
}
}
pub enum UserData {
RigidActor(RigidActorUserData),
ArticulationBase(ArticulationBaseUserData),
Scene(SceneUserData),
UserDefined(*mut std::ffi::c_void),
}
impl UserData {
pub fn new_rigid_actor() -> UserData {
UserData::RigidActor(RigidActorUserData::default())
}
pub fn new_articulation_base() -> UserData {
UserData::ArticulationBase(ArticulationBaseUserData::default())
}
pub fn new_scene() -> UserData {
UserData::Scene(SceneUserData::default())
}
}