MCPcopy Create free account
hub / github.com/PerroEngine/Perro / collision_shape_mesh

Function collision_shape_mesh

perro_editor/res/scripts/scene/editor_viewport.rs:1621–1667  ·  view source on GitHub ↗
(shape: Shape3D)

Source from the content-addressed store, hash-verified

1619 }
1620 }
1621 _ => {}
1622 }
1623 false
1624}
1625
1626fn scene_value_color(value: &SceneValue) -> Option<Color> {
1627 let SceneValue::Vec4 { x, y, z, w } = value else {
1628 return None;
1629 };
1630 Some(Color::new(*x, *y, *z, *w))
1631}
1632
1633pub fn sync_preview_doc_field_for_key<API: ScriptAPI + ?Sized>(
1634 ctx: &mut ScriptContext<'_, API>,
1635 key: u32,
1636 field: &str,
1637) -> bool {
1638 let value = with_state!(ctx.run, EditorState, ctx.id, |state| {
1639 cached_scene_node(&state.doc_text, key)
1640 .as_ref()
1641 .and_then(|node| scene_field(&node.data, field))
1642 }).unwrap_or_default();
1643 let Some(value) = value else {
1644 return false;
1645 };
1646 sync_preview_field_for_key(ctx, key, field, &value)
1647}
1648
1649pub fn sync_selected_preview_doc_fields<API: ScriptAPI + ?Sized>(
1650 ctx: &mut ScriptContext<'_, API>,
1651 fields: &[&str],
1652) -> bool {
1653 let Some(key) = with_state!(ctx.run, EditorState, ctx.id, |state| state.selected_key).unwrap_or_default() else {
1654 return false;
1655 };
1656 let mut synced = true;
1657 for field in fields {
1658 synced &= sync_preview_doc_field_for_key(ctx, key, field);
1659 }
1660 synced
1661}
1662
1663fn scene_value_bitmask_from_value(value: &SceneValue) -> Option<BitMask> {
1664 match value {
1665 SceneValue::I32(value) => Some(BitMask::from_bits(*value as u32)),
1666 SceneValue::Key(value) => {
1667 crate::scripts::ui::editor_inspector_values::parse_bitmask_scene_text_public(
1668 value.as_ref(),
1669 )
1670 .map(BitMask::from_bits)

Callers 1

add_preview_node_gizmosFunction · 0.85

Calls 2

maxMethod · 0.45
absMethod · 0.45

Tested by

no test coverage detected