Merge pull request #274 from besok/master

add defaults for the several structs
This commit is contained in:
Sébastien Crozet
2022-01-23 09:16:52 -08:00
committed by GitHub
12 changed files with 49 additions and 8 deletions

View File

@@ -52,10 +52,16 @@ pub struct Index {
generation: u32,
}
impl IndexedData for Index {
impl Default for Index {
fn default() -> Self {
Self::from_raw_parts(crate::INVALID_U32, crate::INVALID_U32)
}
}
impl IndexedData for Index {
fn default() -> Self {
Default::default()
}
fn index(&self) -> usize {
self.into_raw_parts().0 as usize

View File

@@ -125,7 +125,7 @@ impl<E> Edge<E> {
}
}
#[derive(Clone, Debug)]
#[derive(Clone, Debug, Default)]
#[cfg_attr(feature = "serde-serialize", derive(Serialize, Deserialize))]
pub struct Graph<N, E> {
pub(crate) nodes: Vec<Node<N>>,

View File

@@ -7,6 +7,12 @@ pub struct FixedJoint {
data: JointData,
}
impl Default for FixedJoint {
fn default() -> Self {
FixedJoint::new()
}
}
impl FixedJoint {
pub fn new() -> Self {
#[cfg(feature = "dim2")]

View File

@@ -18,7 +18,7 @@ use na::{
};
#[repr(C)]
#[derive(Copy, Clone, Debug)]
#[derive(Copy, Clone, Debug, Default)]
struct Force {
linear: Vector<Real>,
angular: AngVector<Real>,
@@ -91,7 +91,11 @@ pub struct Multibody {
coriolis_w: Vec<OMatrix<Real, AngDim, Dynamic>>,
i_coriolis_dt: Jacobian<Real>,
}
impl Default for Multibody {
fn default() -> Self {
Multibody::new()
}
}
impl Multibody {
/// Creates a new multibody with no link.
pub fn new() -> Self {

View File

@@ -75,6 +75,7 @@ impl Default for MultibodyJointLink {
}
}
#[derive(Default)]
/// A set of rigid bodies that can be handled by a physics pipeline.
#[cfg_attr(feature = "serde-serialize", derive(Serialize, Deserialize))]
#[derive(Clone)]

View File

@@ -8,6 +8,12 @@ pub struct SphericalJoint {
data: JointData,
}
impl Default for SphericalJoint {
fn default() -> Self {
SphericalJoint::new()
}
}
impl SphericalJoint {
pub fn new() -> Self {
let data =

View File

@@ -12,7 +12,7 @@ use crate::utils::{WAngularInertia, WCross, WDot};
use num::Zero;
/// The unique handle of a rigid body added to a `RigidBodySet`.
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Default)]
#[cfg_attr(feature = "serde-serialize", derive(Serialize, Deserialize))]
#[repr(transparent)]
pub struct RigidBodyHandle(pub crate::data::arena::Index);

View File

@@ -3,7 +3,7 @@ use na::{DVectorSlice, DVectorSliceMut};
use na::{Scalar, SimdRealField};
use std::ops::{AddAssign, Sub};
#[derive(Copy, Clone, Debug)]
#[derive(Copy, Clone, Debug, Default)]
#[repr(C)]
//#[repr(align(64))]
pub struct DeltaVel<N: Scalar + Copy> {

View File

@@ -29,6 +29,12 @@ pub struct JointGenericVelocityConstraint {
pub writeback_id: WritebackId,
}
impl Default for JointGenericVelocityConstraint {
fn default() -> Self {
JointGenericVelocityConstraint::invalid()
}
}
impl JointGenericVelocityConstraint {
pub fn invalid() -> Self {
Self {
@@ -314,6 +320,12 @@ pub struct JointGenericVelocityGroundConstraint {
pub writeback_id: WritebackId,
}
impl Default for JointGenericVelocityGroundConstraint {
fn default() -> Self {
JointGenericVelocityGroundConstraint::invalid()
}
}
impl JointGenericVelocityGroundConstraint {
pub fn invalid() -> Self {
Self {

View File

@@ -33,6 +33,12 @@ impl ColliderPair {
}
}
impl Default for ColliderPair {
fn default() -> Self {
ColliderPair::zero()
}
}
/// An event emitted by the broad-phase.
pub enum BroadPhasePairEvent {
/// A potential new collision pair has been detected by the broad-phase.

View File

@@ -6,7 +6,7 @@ use crate::pipeline::{ActiveEvents, ActiveHooks};
use std::ops::{Deref, DerefMut};
/// The unique identifier of a collider added to a collider set.
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Default)]
#[cfg_attr(feature = "serde-serialize", derive(Serialize, Deserialize))]
#[repr(transparent)]
pub struct ColliderHandle(pub crate::data::arena::Index);

View File

@@ -24,7 +24,7 @@ use std::collections::HashMap;
use std::sync::Arc;
#[cfg_attr(feature = "serde-serialize", derive(Serialize, Deserialize))]
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
#[derive(Copy, Clone, Debug, PartialEq, Eq, Default)]
struct ColliderGraphIndices {
contact_graph_index: ColliderGraphIndex,
intersection_graph_index: ColliderGraphIndex,