Merge pull request #72152 from smix8/mcd_settings_4.x

Add Mesh ConvexDecompositionSettings wrapper
This commit is contained in:
Yuri Sizov 2023-04-10 12:52:23 +02:00 committed by GitHub
commit 5243f5cece
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 390 additions and 98 deletions

View file

@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="MeshConvexDecompositionSettings" inherits="RefCounted" version="4.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Parameters to be used with a [Mesh] convex decomposition operation.
</brief_description>
<description>
Parameters to be used with a [Mesh] convex decomposition operation.
</description>
<tutorials>
</tutorials>
<members>
<member name="convex_hull_approximation" type="bool" setter="set_convex_hull_approximation" getter="get_convex_hull_approximation" default="true">
If enabled uses approximation for computing convex hulls.
</member>
<member name="convex_hull_downsampling" type="int" setter="set_convex_hull_downsampling" getter="get_convex_hull_downsampling" default="4">
Controls the precision of the convex-hull generation process during the clipping plane selection stage. Ranges from [code]1[/code] to [code]16[/code].
</member>
<member name="max_concavity" type="float" setter="set_max_concavity" getter="get_max_concavity" default="1.0">
Maximum concavity. Ranges from [code]0.0[/code] to [code]1.0[/code].
</member>
<member name="max_convex_hulls" type="int" setter="set_max_convex_hulls" getter="get_max_convex_hulls" default="1">
The maximum number of convex hulls to produce from the merge operation.
</member>
<member name="max_num_vertices_per_convex_hull" type="int" setter="set_max_num_vertices_per_convex_hull" getter="get_max_num_vertices_per_convex_hull" default="32">
Controls the maximum number of triangles per convex-hull. Ranges from [code]4[/code] to [code]1024[/code].
</member>
<member name="min_volume_per_convex_hull" type="float" setter="set_min_volume_per_convex_hull" getter="get_min_volume_per_convex_hull" default="0.0001">
Controls the adaptive sampling of the generated convex-hulls. Ranges from [code]0.0[/code] to [code]0.01[/code].
</member>
<member name="mode" type="int" setter="set_mode" getter="get_mode" enum="MeshConvexDecompositionSettings.Mode" default="0">
Mode for the approximate convex decomposition.
</member>
<member name="normalize_mesh" type="bool" setter="set_normalize_mesh" getter="get_normalize_mesh" default="false">
If enabled normalizes the mesh before applying the convex decomposition.
</member>
<member name="plane_downsampling" type="int" setter="set_plane_downsampling" getter="get_plane_downsampling" default="4">
Controls the granularity of the search for the "best" clipping plane. Ranges from [code]1[/code] to [code]16[/code].
</member>
<member name="project_hull_vertices" type="bool" setter="set_project_hull_vertices" getter="get_project_hull_vertices" default="true">
If enabled projects output convex hull vertices onto original source mesh to increase floating point accuracy of the results.
</member>
<member name="resolution" type="int" setter="set_resolution" getter="get_resolution" default="10000">
Maximum number of voxels generated during the voxelization stage.
</member>
<member name="revolution_axes_clipping_bias" type="float" setter="set_revolution_axes_clipping_bias" getter="get_revolution_axes_clipping_bias" default="0.05">
Controls the bias toward clipping along revolution axes. Ranges from [code]0.0[/code] to [code]1.0[/code].
</member>
<member name="symmetry_planes_clipping_bias" type="float" setter="set_symmetry_planes_clipping_bias" getter="get_symmetry_planes_clipping_bias" default="0.05">
Controls the bias toward clipping along symmetry planes. Ranges from [code]0.0[/code] to [code]1.0[/code].
</member>
</members>
<constants>
<constant name="CONVEX_DECOMPOSITION_MODE_VOXEL" value="0" enum="Mode">
Constant for voxel-based approximate convex decomposition.
</constant>
<constant name="CONVEX_DECOMPOSITION_MODE_TETRAHEDRON" value="1" enum="Mode">
Constant for tetrahedron-based approximate convex decomposition.
</constant>
</constants>
</class>

View file

@ -31,8 +31,9 @@
</method>
<method name="create_multiple_convex_collisions">
<return type="void" />
<param index="0" name="settings" type="MeshConvexDecompositionSettings" default="null" />
<description>
This helper creates a [StaticBody3D] child node with multiple [ConvexPolygonShape3D] collision shapes calculated from the mesh geometry via convex decomposition. It's mainly used for testing.
This helper creates a [StaticBody3D] child node with multiple [ConvexPolygonShape3D] collision shapes calculated from the mesh geometry via convex decomposition. The convex decomposition operation can be controlled with parameters from the optional [param settings].
</description>
</method>
<method name="create_trimesh_collision">