use approx_det::assert_relative_eq;
use glam_det::Vec3;
use wasm_bindgen_test::*;
use crate::collision_tasks::tests::common::{
convex2contact_manifold_wide_to_convex2contact_manifold, get_input_wide,
Convex2ContactManifold, Mvec3, TestInput,
};
use crate::collision_tasks::ShapeWideTester;
use crate::shapes::{CapsuleWide, CuboidWide};
use crate::traits::PairWideTest;
use crate::{Capsule, Cuboid};
wasm_bindgen_test_configure!(run_in_browser);
type InputType = TestInput<Capsule, Cuboid>;
const ADJUST_DEPTH_FACTOR: f32 = 0.5;
#[test]
#[wasm_bindgen_test]
fn test_capsule_cuboid_tester_random() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!("resource/capsule_cuboid/random.json");
let mut input0: InputType =
serde_json::from_slice(file_input).expect("file should be proper JSON");
let len: Vec3 = input0.b.length().into();
input0.b.set_length(len * 2.0);
let mut output0 = Convex2ContactManifold {
OffsetA0: Mvec3 {
x: 0.01733534,
y: -0.23973602,
z: -0.14974365,
},
OffsetA1: Mvec3 {
x: 0.3246084,
y: -0.077735715,
z: 0.14974365,
},
Normal: Mvec3 {
x: -0.73284423,
y: 0.68039656,
z: 0.0,
},
Depth0: -0.3615569,
Depth1: -0.13163926,
FeatureId0: 0,
FeatureId1: 1,
Contact0Exists: false,
Contact1Exists: true,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CapsuleWide,
CuboidWide,
array,
pair_count,
outputs,
convex2contact_manifold_wide_to_convex2contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_capsule_cuboid_tester_capsule_body_close_at_cuboid_face() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!("resource/capsule_cuboid/body_close_at_cuboid_face.json");
let mut input0: InputType =
serde_json::from_slice(file_input).expect("file should be proper JSON");
let len: Vec3 = input0.b.length().into();
input0.b.set_length(len * 2.0);
let mut output0 = Convex2ContactManifold {
OffsetA0: Mvec3 {
x: 0.0,
y: 0.50050014,
z: -0.5000003,
},
OffsetA1: Mvec3 {
x: 0.0,
y: 0.5004999,
z: 0.5000003,
},
Normal: Mvec3 {
x: 0.0,
y: -1.0,
z: 0.0,
},
Depth0: -0.0009997487,
Depth1: -0.0010003448,
FeatureId0: 0,
FeatureId1: 1,
Contact0Exists: true,
Contact1Exists: true,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CapsuleWide,
CuboidWide,
array,
pair_count,
outputs,
convex2contact_manifold_wide_to_convex2contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_capsule_cuboid_tester_capsule_body_tangent_at_cuboid_face() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!("resource/capsule_cuboid/body_tangent_at_cuboid_face.json");
let mut input0: InputType =
serde_json::from_slice(file_input).expect("file should be proper JSON");
let len: Vec3 = input0.b.length().into();
input0.b.set_length(len * 2.0);
let mut output0 = Convex2ContactManifold {
OffsetA0: Mvec3 {
x: 0.0,
y: 0.5000001,
z: -0.5,
},
OffsetA1: Mvec3 {
x: 0.0,
y: 0.49999982,
z: 0.5000006,
},
Normal: Mvec3 {
x: 0.0,
y: -1.0,
z: -5.960468E-7,
},
Depth0: 2.9802322E-7,
Depth1: -2.9802322E-7,
FeatureId0: 0,
FeatureId1: 1,
Contact0Exists: true,
Contact1Exists: true,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CapsuleWide,
CuboidWide,
array,
pair_count,
outputs,
convex2contact_manifold_wide_to_convex2contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_capsule_cuboid_tester_capsule_body_penetrate_at_cuboid_face() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input =
include_bytes!("resource/capsule_cuboid/capsule_body_penetrate_at_cuboid_face.json");
let mut input0: InputType =
serde_json::from_slice(file_input).expect("file should be proper JSON");
let len: Vec3 = input0.b.length().into();
input0.b.set_length(len * 2.0);
let mut output0 = Convex2ContactManifold {
OffsetA0: Mvec3 {
x: 0.0,
y: 0.49950016,
z: -0.5,
},
OffsetA1: Mvec3 {
x: 0.0,
y: 0.49949986,
z: 0.5000006,
},
Normal: Mvec3 {
x: 0.0,
y: -1.0,
z: -5.972413E-7,
},
Depth0: 0.0010002851,
Depth1: 0.0009996891,
FeatureId0: 0,
FeatureId1: 1,
Contact0Exists: true,
Contact1Exists: true,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CapsuleWide,
CuboidWide,
array,
pair_count,
outputs,
convex2contact_manifold_wide_to_convex2contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_capsule_cuboid_tester_capsule_body_close_at_cuboid_edge() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input =
include_bytes!("resource/capsule_cuboid/capsule_body_close_at_cuboid_edge.json");
let mut input0: InputType =
serde_json::from_slice(file_input).expect("file should be proper JSON");
let len: Vec3 = input0.b.length().into();
input0.b.set_length(len * 2.0);
let mut output0 = Convex2ContactManifold {
OffsetA0: Mvec3 {
x: -5.741192E-7,
y: 0.50050056,
z: -0.5,
},
OffsetA1: Mvec3 {
x: 2.1613344E-7,
y: 0.5005005,
z: 0.5000011,
},
Normal: Mvec3 {
x: 3.5762787E-7,
y: -1.0000002,
z: -1.0707419E-6,
},
Depth0: -0.0010000467,
Depth1: -0.0010015965,
FeatureId0: 0,
FeatureId1: 1,
Contact0Exists: true,
Contact1Exists: true,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CapsuleWide,
CuboidWide,
array,
pair_count,
outputs,
convex2contact_manifold_wide_to_convex2contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_capsule_cuboid_tester_capsule_body_tangent_at_cuboid_edge() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input =
include_bytes!("resource/capsule_cuboid/capsule_body_tangent_at_cuboid_edge.json");
let mut input0: InputType =
serde_json::from_slice(file_input).expect("file should be proper JSON");
let len: Vec3 = input0.b.length().into();
input0.b.set_length(len * 2.0);
let mut output0 = Convex2ContactManifold {
OffsetA0: Mvec3 {
x: -5.739404E-7,
y: 0.50000054,
z: -0.5,
},
OffsetA1: Mvec3 {
x: 2.1631226E-7,
y: 0.5000005,
z: 0.5000011,
},
Normal: Mvec3 {
x: 3.5762787E-7,
y: -1.0000002,
z: -1.0728835E-6,
},
Depth0: 2.9802322E-8,
Depth1: -1.5497208E-6,
FeatureId0: 0,
FeatureId1: 1,
Contact0Exists: true,
Contact1Exists: true,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CapsuleWide,
CuboidWide,
array,
pair_count,
outputs,
convex2contact_manifold_wide_to_convex2contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_capsule_cuboid_tester_capsule_body_penetrate_at_cuboid_edge() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input =
include_bytes!("resource/capsule_cuboid/capsule_body_penetrate_at_cuboid_edge.json");
let mut input0: InputType =
serde_json::from_slice(file_input).expect("file should be proper JSON");
let len: Vec3 = input0.b.length().into();
input0.b.set_length(len * 2.0);
let mut output0 = Convex2ContactManifold {
OffsetA0: Mvec3 {
x: -5.7376155E-7,
y: 0.49950048,
z: -0.5,
},
OffsetA1: Mvec3 {
x: 2.1649109E-7,
y: 0.49950048,
z: 0.5000011,
},
Normal: Mvec3 {
x: 3.5762787E-7,
y: -1.0000002,
z: -1.0750337E-6,
},
Depth0: 0.0010000765,
Depth1: 0.0009984672,
FeatureId0: 0,
FeatureId1: 1,
Contact0Exists: true,
Contact1Exists: true,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CapsuleWide,
CuboidWide,
array,
pair_count,
outputs,
convex2contact_manifold_wide_to_convex2contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_capsule_cuboid_tester_capsule_body_close_at_cuboid_vertex() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input =
include_bytes!("resource/capsule_cuboid/capsule_body_close_at_cuboid_vertex.json");
let mut input0: InputType =
serde_json::from_slice(file_input).expect("file should be proper JSON");
let len: Vec3 = input0.b.length().into();
input0.b.set_length(len * 2.0);
let mut output0 = Convex2ContactManifold {
OffsetA0: Mvec3 {
x: -2.5331974E-7,
y: 0.84200656,
z: -0.50000036,
},
OffsetA1: Mvec3 {
x: 1.9281288E-10,
y: 0.50025004,
z: 0.0003660482,
},
Normal: Mvec3 {
x: 0.0,
y: -1.0,
z: -4.4703484E-7,
},
Depth0: -0.68401265,
Depth1: -0.00050008297,
FeatureId0: 0,
FeatureId1: 1,
Contact0Exists: false,
Contact1Exists: true,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CapsuleWide,
CuboidWide,
array,
pair_count,
outputs,
convex2contact_manifold_wide_to_convex2contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_capsule_cuboid_tester_capsule_body_tangent_at_cuboid_vertex() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input =
include_bytes!("resource/capsule_cuboid/capsule_body_tangent_at_cuboid_vertex.json");
let mut input0: InputType =
serde_json::from_slice(file_input).expect("file should be proper JSON");
let len: Vec3 = input0.b.length().into();
input0.b.set_length(len * 2.0);
let mut output0 = Convex2ContactManifold {
OffsetA0: Mvec3 {
x: -1.7808321E-7,
y: 0.8415067,
z: -0.50000036,
},
OffsetA1: Mvec3 {
x: 4.4877584E-8,
y: 0.49975008,
z: 0.00036607665,
},
Normal: Mvec3 {
x: 0.0,
y: -1.0000001,
z: -4.172325E-7,
},
Depth0: -0.6830127,
Depth1: 0.00049993396,
FeatureId0: 0,
FeatureId1: 1,
Contact0Exists: false,
Contact1Exists: true,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CapsuleWide,
CuboidWide,
array,
pair_count,
outputs,
convex2contact_manifold_wide_to_convex2contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_capsule_cuboid_tester_capsule_body_penetrate_at_cuboid_vertex() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input =
include_bytes!("resource/capsule_cuboid/capsule_body_penetrate_at_cuboid_vertex.json");
let mut input0: InputType =
serde_json::from_slice(file_input).expect("file should be proper JSON");
let len: Vec3 = input0.b.length().into();
input0.b.set_length(len * 2.0);
let mut output0 = Convex2ContactManifold {
OffsetA0: Mvec3 {
x: -1.7812792E-7,
y: 0.84100664,
z: -0.50000036,
},
OffsetA1: Mvec3 {
x: 4.483288E-8,
y: 0.49925005,
z: 0.00036607645,
},
Normal: Mvec3 {
x: -8.940697E-8,
y: -1.0000001,
z: -4.172325E-7,
},
Depth0: -0.68201256,
Depth1: 0.0015000105,
FeatureId0: 0,
FeatureId1: 1,
Contact0Exists: false,
Contact1Exists: true,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CapsuleWide,
CuboidWide,
array,
pair_count,
outputs,
convex2contact_manifold_wide_to_convex2contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_capsule_cuboid_tester_capsule_hemisphere_close_at_cuboid_vertex() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input =
include_bytes!("resource/capsule_cuboid/capsule_hemisphere_close_at_cuboid_vertex.json");
let mut input0: InputType =
serde_json::from_slice(file_input).expect("file should be proper JSON");
let len: Vec3 = input0.b.length().into();
input0.b.set_length(len * 2.0);
let mut output0 = Convex2ContactManifold {
OffsetA0: Mvec3 {
x: -1.1926517E-7,
y: 0.5004998,
z: -1.3417005E-7,
},
OffsetA1: Mvec3 {
x: -4.848466E-8,
y: 1.0005001,
z: -4.4763098E-8,
},
Normal: Mvec3 {
x: 1.1175871E-7,
y: -0.99999994,
z: 1.1920929E-7,
},
Depth0: -1.0009999,
Depth1: -0.0010001063,
FeatureId0: 0,
FeatureId1: 1,
Contact0Exists: false,
Contact1Exists: true,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CapsuleWide,
CuboidWide,
array,
pair_count,
outputs,
convex2contact_manifold_wide_to_convex2contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_capsule_cuboid_tester_capsule_hemisphere_tangent_at_cuboid_vertex() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input =
include_bytes!("resource/capsule_cuboid/capsule_hemisphere_tangent_at_cuboid_vertex.json");
let mut input0: InputType =
serde_json::from_slice(file_input).expect("file should be proper JSON");
let len: Vec3 = input0.b.length().into();
input0.b.set_length(len * 2.0);
let mut output0 = Convex2ContactManifold {
OffsetA0: Mvec3 {
x: 3.7252903E-8,
y: 0.50000006,
z: 1.4901161E-8,
},
OffsetA1: Mvec3 {
x: 2.9802326E-8,
y: 1.0000002,
z: 2.9802322E-8,
},
Normal: Mvec3 {
x: -4.4703484E-8,
y: -1.0000001,
z: -2.9802322E-8,
},
Depth0: -1.0000001,
Depth1: -1.1920929E-7,
FeatureId0: 0,
FeatureId1: 1,
Contact0Exists: false,
Contact1Exists: true,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CapsuleWide,
CuboidWide,
array,
pair_count,
outputs,
convex2contact_manifold_wide_to_convex2contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_capsule_cuboid_tester_capsule_hemisphere_penetrate_at_cuboid_vertex() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!(
"resource/capsule_cuboid/capsule_hemisphere_penetrate_at_cuboid_vertex.json"
);
let mut input0: InputType =
serde_json::from_slice(file_input).expect("file should be proper JSON");
let len: Vec3 = input0.b.length().into();
input0.b.set_length(len * 2.0);
let mut output0 = Convex2ContactManifold {
OffsetA0: Mvec3 {
x: 2.2336842E-8,
y: 0.49950022,
z: 1.4886261E-8,
},
OffsetA1: Mvec3 {
x: 2.2336842E-8,
y: 0.9995002,
z: 2.9787422E-8,
},
Normal: Mvec3 {
x: -2.9802322E-8,
y: -1.0000002,
z: -2.9802322E-8,
},
Depth0: -0.9990001,
Depth1: 0.0009998977,
FeatureId0: 0,
FeatureId1: 1,
Contact0Exists: false,
Contact1Exists: true,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CapsuleWide,
CuboidWide,
array,
pair_count,
outputs,
convex2contact_manifold_wide_to_convex2contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_capsule_cuboid_tester_capsule_hemisphere_close_at_cuboid_edge() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input =
include_bytes!("resource/capsule_cuboid/capsule_hemisphere_close_at_cuboid_edge.json");
let mut input0: InputType =
serde_json::from_slice(file_input).expect("file should be proper JSON");
let len: Vec3 = input0.b.length().into();
input0.b.set_length(len * 2.0);
let mut output0 = Convex2ContactManifold {
OffsetA0: Mvec3 {
x: 2.9817226E-8,
y: 0.5005001,
z: 0.0,
},
OffsetA1: Mvec3 {
x: 1.4916065E-8,
y: 1.0005001,
z: 0.0,
},
Normal: Mvec3 {
x: -2.9802322E-8,
y: -1.0,
z: 0.0,
},
Depth0: -1.0010002,
Depth1: -0.0010001659,
FeatureId0: 0,
FeatureId1: 1,
Contact0Exists: false,
Contact1Exists: true,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CapsuleWide,
CuboidWide,
array,
pair_count,
outputs,
convex2contact_manifold_wide_to_convex2contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_capsule_cuboid_tester_capsule_hemisphere_tangent_at_cuboid_edge() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input =
include_bytes!("resource/capsule_cuboid/capsule_hemisphere_tangent_at_cuboid_edge.json");
let mut input0: InputType =
serde_json::from_slice(file_input).expect("file should be proper JSON");
let len: Vec3 = input0.b.length().into();
input0.b.set_length(len * 2.0);
let mut output0 = Convex2ContactManifold {
OffsetA0: Mvec3 {
x: -1.1920929E-7,
y: 0.5,
z: 0.0,
},
OffsetA1: Mvec3 {
x: -5.9604645E-8,
y: 1.0,
z: 0.0,
},
Normal: Mvec3 {
x: 1.1920929E-7,
y: -1.0,
z: 0.0,
},
Depth0: -1.0,
Depth1: -5.9604645E-8,
FeatureId0: 0,
FeatureId1: 1,
Contact0Exists: false,
Contact1Exists: true,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CapsuleWide,
CuboidWide,
array,
pair_count,
outputs,
convex2contact_manifold_wide_to_convex2contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_capsule_cuboid_tester_capsule_hemisphere_penetrate_at_cuboid_edge() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input =
include_bytes!("resource/capsule_cuboid/capsule_hemisphere_penetrate_at_cuboid_edge.json");
let mut input0: InputType =
serde_json::from_slice(file_input).expect("file should be proper JSON");
let len: Vec3 = input0.b.length().into();
input0.b.set_length(len * 2.0);
let mut output0 = Convex2ContactManifold {
OffsetA0: Mvec3 {
x: -1.1920929E-7,
y: 0.5,
z: 0.0,
},
OffsetA1: Mvec3 {
x: -5.9604645E-8,
y: 1.0,
z: 0.0,
},
Normal: Mvec3 {
x: 1.1920929E-7,
y: -1.0,
z: 0.0,
},
Depth0: -1.0,
Depth1: -5.9604645E-8,
FeatureId0: 0,
FeatureId1: 1,
Contact0Exists: false,
Contact1Exists: true,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CapsuleWide,
CuboidWide,
array,
pair_count,
outputs,
convex2contact_manifold_wide_to_convex2contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_capsule_cuboid_tester_capsule_hemisphere_close_at_cuboid_face() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input =
include_bytes!("resource/capsule_cuboid/capsule_hemisphere_close_at_cuboid_face.json");
let mut input0: InputType =
serde_json::from_slice(file_input).expect("file should be proper JSON");
let len: Vec3 = input0.b.length().into();
input0.b.set_length(len * 2.0);
let mut output0 = Convex2ContactManifold {
OffsetA0: Mvec3 {
x: 0.0,
y: 0.50049996,
z: 0.0,
},
OffsetA1: Mvec3 {
x: 0.0,
y: 1.0005,
z: 0.0,
},
Normal: Mvec3 {
x: 0.0,
y: -1.0,
z: 0.0,
},
Depth0: -1.001,
Depth1: -0.0010000467,
FeatureId0: 0,
FeatureId1: 1,
Contact0Exists: false,
Contact1Exists: true,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CapsuleWide,
CuboidWide,
array,
pair_count,
outputs,
convex2contact_manifold_wide_to_convex2contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_capsule_cuboid_tester_capsule_hemisphere_tangent_at_cuboid_face() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input =
include_bytes!("resource/capsule_cuboid/capsule_hemisphere_tangent_at_cuboid_face.json");
let mut input0: InputType =
serde_json::from_slice(file_input).expect("file should be proper JSON");
let len: Vec3 = input0.b.length().into();
input0.b.set_length(len * 2.0);
let mut output0 = Convex2ContactManifold {
OffsetA0: Mvec3 {
x: 0.0,
y: 0.5,
z: 0.0,
},
OffsetA1: Mvec3 {
x: 0.0,
y: 1.0,
z: 0.0,
},
Normal: Mvec3 {
x: 0.0,
y: -1.0,
z: 0.0,
},
Depth0: -1.0,
Depth1: 0.0,
FeatureId0: 0,
FeatureId1: 1,
Contact0Exists: false,
Contact1Exists: true,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CapsuleWide,
CuboidWide,
array,
pair_count,
outputs,
convex2contact_manifold_wide_to_convex2contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_capsule_cuboid_tester_capsule_hemisphere_penetrate_at_cuboid_face() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input =
include_bytes!("resource/capsule_cuboid/capsule_hemisphere_penetrate_at_cuboid_face.json");
let mut input0: InputType =
serde_json::from_slice(file_input).expect("file should be proper JSON");
let len: Vec3 = input0.b.length().into();
input0.b.set_length(len * 2.0);
let mut output0 = Convex2ContactManifold {
OffsetA0: Mvec3 {
x: 0.0,
y: 0.49949998,
z: 0.0,
},
OffsetA1: Mvec3 {
x: 0.0,
y: 0.9995,
z: 0.0,
},
Normal: Mvec3 {
x: 0.0,
y: -1.0,
z: 0.0,
},
Depth0: -0.99899995,
Depth1: 0.0010000467,
FeatureId0: 0,
FeatureId1: 1,
Contact0Exists: false,
Contact1Exists: true,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CapsuleWide,
CuboidWide,
array,
pair_count,
outputs,
convex2contact_manifold_wide_to_convex2contact_manifold
);
}