aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCrozet Sébastien <developer@crozet.re>2020-10-05 16:51:32 +0200
committerCrozet Sébastien <developer@crozet.re>2020-10-05 16:51:32 +0200
commitbbfe926a11fdf4f4eb0ddbac0c777a202e07d269 (patch)
tree2dcf09a166718535da9ec449aa196cf4b48db465 /src
parentd8dfd864a453a9ead60f970549b2d289d7025364 (diff)
downloadrapier-bbfe926a11fdf4f4eb0ddbac0c777a202e07d269.tar.gz
rapier-bbfe926a11fdf4f4eb0ddbac0c777a202e07d269.tar.bz2
rapier-bbfe926a11fdf4f4eb0ddbac0c777a202e07d269.zip
Make the WQuadtree serializable.
Diffstat (limited to 'src')
-rw-r--r--src/geometry/wquadtree.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/geometry/wquadtree.rs b/src/geometry/wquadtree.rs
index 01b2092..17ecffe 100644
--- a/src/geometry/wquadtree.rs
+++ b/src/geometry/wquadtree.rs
@@ -8,6 +8,7 @@ use std::collections::VecDeque;
use std::ops::Range;
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
+#[cfg_attr(feature = "serde-serialize", derive(Serialize, Deserialize))]
struct NodeIndex {
index: u32, // Index of the addressed node in the `nodes` array.
lane: u8, // SIMD lane of the addressed node.
@@ -27,6 +28,7 @@ impl NodeIndex {
}
#[derive(Copy, Clone, Debug)]
+#[cfg_attr(feature = "serde-serialize", derive(Serialize, Deserialize))]
struct WQuadtreeNode {
waabb: WAABB,
// Index of the nodes of the 4 nodes represented by self.
@@ -38,6 +40,7 @@ struct WQuadtreeNode {
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
+#[cfg_attr(feature = "serde-serialize", derive(Serialize, Deserialize))]
struct WQuadtreeProxy {
node: NodeIndex,
handle: ColliderHandle, // The collider handle. TODO: only set the collider generation here?
@@ -52,6 +55,7 @@ impl WQuadtreeProxy {
}
}
+#[cfg_attr(feature = "serde-serialize", derive(Serialize, Deserialize))]
pub struct WQuadtree {
nodes: Vec<WQuadtreeNode>,
dirty_nodes: VecDeque<u32>,