Merge pull request #20265 from BastiaanOlij/csg_documentation

Added some documentation for the CSG nodes
This commit is contained in:
Max Hilbrunner 2018-07-19 17:34:30 +02:00 committed by GitHub
commit aea6f4853e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 72 additions and 28 deletions

View file

@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<class name="CSGBox" inherits="CSGPrimitive" category="Core" version="3.1"> <class name="CSGBox" inherits="CSGPrimitive" category="Core" version="3.1">
<brief_description> <brief_description>
A CSG Box shape.
</brief_description> </brief_description>
<description> <description>
This node allows you to create a box for use with the CSG system.
</description> </description>
<tutorials> <tutorials>
</tutorials> </tutorials>
@ -12,12 +14,16 @@
</methods> </methods>
<members> <members>
<member name="depth" type="float" setter="set_depth" getter="get_depth"> <member name="depth" type="float" setter="set_depth" getter="get_depth">
Depth of the box measured from the center of the box.
</member> </member>
<member name="height" type="float" setter="set_height" getter="get_height"> <member name="height" type="float" setter="set_height" getter="get_height">
Height of the box measured from the center of the box.
</member> </member>
<member name="material" type="Material" setter="set_material" getter="get_material"> <member name="material" type="Material" setter="set_material" getter="get_material">
The material used to render the box.
</member> </member>
<member name="width" type="float" setter="set_width" getter="get_width"> <member name="width" type="float" setter="set_width" getter="get_width">
Width of the box measured from the center of the box.
</member> </member>
</members> </members>
<constants> <constants>

View file

@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<class name="CSGCombiner" inherits="CSGShape" category="Core" version="3.1"> <class name="CSGCombiner" inherits="CSGShape" category="Core" version="3.1">
<brief_description> <brief_description>
A CSG node that allows you to combine other CSG modifiers.
</brief_description> </brief_description>
<description> <description>
For complex arrangements of shapes it is sometimes needed to add structure to your CSG nodes. The CSGCombiner node allows you to create this structure. The node encapsulates the result of the CSG operations of its children. In this way it is possible to do operations on one set of shapes that are children of one CSGCombiner node, and a set of separate operations on a second set of shapes that are children of a second CSGCombiner node, and then do an operation that takes the two end results as their input to create the final shape.
</description> </description>
<tutorials> <tutorials>
</tutorials> </tutorials>

View file

@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<class name="CSGCylinder" inherits="CSGPrimitive" category="Core" version="3.1"> <class name="CSGCylinder" inherits="CSGPrimitive" category="Core" version="3.1">
<brief_description> <brief_description>
A CSG Cylinder shape.
</brief_description> </brief_description>
<description> <description>
This node allows you to create a cylinder (or cone) for use with the CSG system.
</description> </description>
<tutorials> <tutorials>
</tutorials> </tutorials>
@ -12,16 +14,22 @@
</methods> </methods>
<members> <members>
<member name="cone" type="bool" setter="set_cone" getter="is_cone"> <member name="cone" type="bool" setter="set_cone" getter="is_cone">
If true a cone is created, the [member radius] will only apply to one side.
</member> </member>
<member name="height" type="float" setter="set_height" getter="get_height"> <member name="height" type="float" setter="set_height" getter="get_height">
The height of the cylinder.
</member> </member>
<member name="material" type="Material" setter="set_material" getter="get_material"> <member name="material" type="Material" setter="set_material" getter="get_material">
The material used to render the cylinder.
</member> </member>
<member name="radius" type="float" setter="set_radius" getter="get_radius"> <member name="radius" type="float" setter="set_radius" getter="get_radius">
The radius of the cylinder.
</member> </member>
<member name="sides" type="int" setter="set_sides" getter="get_sides"> <member name="sides" type="int" setter="set_sides" getter="get_sides">
The number of sides of the cylinder, the higher this number the more detail there will be in the cylinder.
</member> </member>
<member name="smooth_faces" type="bool" setter="set_smooth_faces" getter="get_smooth_faces"> <member name="smooth_faces" type="bool" setter="set_smooth_faces" getter="get_smooth_faces">
If true the normals of the cylinder are set to give a smooth effect making the cylinder seem rounded. When false the cylinder will have a flat shaded look.
</member> </member>
</members> </members>
<constants> <constants>

View file

@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<class name="CSGMesh" inherits="CSGPrimitive" category="Core" version="3.1"> <class name="CSGMesh" inherits="CSGPrimitive" category="Core" version="3.1">
<brief_description> <brief_description>
A CSG Mesh shape that uses a mesh resource.
</brief_description> </brief_description>
<description> <description>
This CSG node allows you to use any mesh resource as a CSG shape provided it is closed, does not self-intersect, does not contain internal faces and has no edges that connect to more then two faces.
</description> </description>
<tutorials> <tutorials>
</tutorials> </tutorials>
@ -12,6 +14,7 @@
</methods> </methods>
<members> <members>
<member name="mesh" type="Mesh" setter="set_mesh" getter="get_mesh"> <member name="mesh" type="Mesh" setter="set_mesh" getter="get_mesh">
The mesh resource to use as a CSG shape.
</member> </member>
</members> </members>
<constants> <constants>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<class name="CSGPolygon" inherits="CSGPrimitive" category="Core" version="3.1"> <class name="CSGPolygon" inherits="CSGPrimitive" category="Core" version="3.1">
<brief_description> <brief_description>
Extrudes a 2D polygon shape to create a 3D mesh Extrudes a 2D polygon shape to create a 3D mesh.
</brief_description> </brief_description>
<description> <description>
This node takes a 2D polygon shape and extrudes it to create a 3D mesh. This node takes a 2D polygon shape and extrudes it to create a 3D mesh.
@ -14,63 +14,63 @@
</methods> </methods>
<members> <members>
<member name="depth" type="float" setter="set_depth" getter="get_depth"> <member name="depth" type="float" setter="set_depth" getter="get_depth">
Extrusion depth when [member mode] is [constant MODE_DEPTH] Extrusion depth when [member mode] is [constant MODE_DEPTH].
</member> </member>
<member name="material" type="Material" setter="set_material" getter="get_material"> <member name="material" type="Material" setter="set_material" getter="get_material">
Material to use for the resulting mesh Material to use for the resulting mesh.
</member> </member>
<member name="mode" type="int" setter="set_mode" getter="get_mode" enum="CSGPolygon.Mode"> <member name="mode" type="int" setter="set_mode" getter="get_mode" enum="CSGPolygon.Mode">
Extrusion mode Extrusion mode.
</member>
<member name="path_interval" type="float" setter="set_path_interval" getter="get_path_interval">
Interval at which a new extrusion slice is added along the path when [member mode] is [constant MODE_PATH]
</member>
<member name="path_node" type="NodePath" setter="set_path_node" getter="get_path_node">
The [Shape] object containing the path along which we extrude when [member mode] is [constant MODE_PATH]
</member>
<member name="path_rotation" type="int" setter="set_path_rotation" getter="get_path_rotation" enum="CSGPolygon.PathRotation">
The method by which each slice is rotated along the path when [member mode] is [constant MODE_PATH]
</member>
<member name="path_local" type="bool" setter="set_path_local" getter="is_path_local">
If false we extrude centered on our path, if true we extrude in relation to the position of our CSGPolygon when [member mode] is [constant MODE_PATH]
</member> </member>
<member name="path_continuous_u" type="bool" setter="set_path_continuous_u" getter="is_path_continuous_u"> <member name="path_continuous_u" type="bool" setter="set_path_continuous_u" getter="is_path_continuous_u">
If true the u component of our uv will continuously increase in unison with the distance traveled along our path when [member mode] is [constant MODE_PATH] If true the u component of our uv will continuously increase in unison with the distance traveled along our path when [member mode] is [constant MODE_PATH].
</member>
<member name="path_interval" type="float" setter="set_path_interval" getter="get_path_interval">
Interval at which a new extrusion slice is added along the path when [member mode] is [constant MODE_PATH].
</member> </member>
<member name="path_joined" type="bool" setter="set_path_joined" getter="is_path_joined"> <member name="path_joined" type="bool" setter="set_path_joined" getter="is_path_joined">
If true the start and end of our path are joined together ensuring there is no seam when [member mode] is [constant MODE_PATH] If true the start and end of our path are joined together ensuring there is no seam when [member mode] is [constant MODE_PATH].
</member>
<member name="path_local" type="bool" setter="set_path_local" getter="is_path_local">
If false we extrude centered on our path, if true we extrude in relation to the position of our CSGPolygon when [member mode] is [constant MODE_PATH].
</member>
<member name="path_node" type="NodePath" setter="set_path_node" getter="get_path_node">
The [Shape] object containing the path along which we extrude when [member mode] is [constant MODE_PATH].
</member>
<member name="path_rotation" type="int" setter="set_path_rotation" getter="get_path_rotation" enum="CSGPolygon.PathRotation">
The method by which each slice is rotated along the path when [member mode] is [constant MODE_PATH].
</member> </member>
<member name="polygon" type="PoolVector2Array" setter="set_polygon" getter="get_polygon"> <member name="polygon" type="PoolVector2Array" setter="set_polygon" getter="get_polygon">
Point array that defines the shape that we'll extrude Point array that defines the shape that we'll extrude.
</member> </member>
<member name="smooth_faces" type="bool" setter="set_smooth_faces" getter="get_smooth_faces"> <member name="smooth_faces" type="bool" setter="set_smooth_faces" getter="get_smooth_faces">
Generates smooth normals so smooth shading is applied to our mesh Generates smooth normals so smooth shading is applied to our mesh.
</member> </member>
<member name="spin_degrees" type="float" setter="set_spin_degrees" getter="get_spin_degrees"> <member name="spin_degrees" type="float" setter="set_spin_degrees" getter="get_spin_degrees">
Degrees to rotate our extrusion for each slice when [member mode] is [constant MODE_SPIN] Degrees to rotate our extrusion for each slice when [member mode] is [constant MODE_SPIN].
</member> </member>
<member name="spin_sides" type="int" setter="set_spin_sides" getter="get_spin_sides"> <member name="spin_sides" type="int" setter="set_spin_sides" getter="get_spin_sides">
Number of extrusion when [member mode] is [constant MODE_SPIN] Number of extrusion when [member mode] is [constant MODE_SPIN].
</member> </member>
</members> </members>
<constants> <constants>
<constant name="MODE_DEPTH" value="0" enum="Mode"> <constant name="MODE_DEPTH" value="0" enum="Mode">
Shape is extruded to [member depth] Shape is extruded to [member depth].
</constant> </constant>
<constant name="MODE_SPIN" value="1" enum="Mode"> <constant name="MODE_SPIN" value="1" enum="Mode">
Shape is extruded by rotating it around an axis Shape is extruded by rotating it around an axis.
</constant> </constant>
<constant name="MODE_PATH" value="2" enum="Mode"> <constant name="MODE_PATH" value="2" enum="Mode">
Shape is extruded along a path set by a [Shape] set in [member path_node] Shape is extruded along a path set by a [Shape] set in [member path_node].
</constant> </constant>
<constant name="PATH_ROTATION_POLYGON" value="0" enum="PathRotation"> <constant name="PATH_ROTATION_POLYGON" value="0" enum="PathRotation">
Slice is not rotated Slice is not rotated.
</constant> </constant>
<constant name="PATH_ROTATION_PATH" value="1" enum="PathRotation"> <constant name="PATH_ROTATION_PATH" value="1" enum="PathRotation">
Slice is rotated around the up vector of the path Slice is rotated around the up vector of the path.
</constant> </constant>
<constant name="PATH_ROTATION_PATH_FOLLOW" value="2" enum="PathRotation"> <constant name="PATH_ROTATION_PATH_FOLLOW" value="2" enum="PathRotation">
Slice is rotate to match the path exactly Slice is rotate to match the path exactly.
</constant> </constant>
</constants> </constants>
</class> </class>

View file

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<class name="CSGPrimitive" inherits="CSGShape" category="Core" version="3.1"> <class name="CSGPrimitive" inherits="CSGShape" category="Core" version="3.1">
<brief_description> <brief_description>
Base class for CSG primitives.
</brief_description> </brief_description>
<description> <description>
</description> </description>
@ -12,6 +13,7 @@
</methods> </methods>
<members> <members>
<member name="invert_faces" type="bool" setter="set_invert_faces" getter="is_inverting_faces"> <member name="invert_faces" type="bool" setter="set_invert_faces" getter="is_inverting_faces">
Invert the faces of the mesh.
</member> </member>
</members> </members>
<constants> <constants>

View file

@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<class name="CSGShape" inherits="VisualInstance" category="Core" version="3.1"> <class name="CSGShape" inherits="VisualInstance" category="Core" version="3.1">
<brief_description> <brief_description>
The CSG base class.
</brief_description> </brief_description>
<description> <description>
This is the CSG base class that provides CSG operation support to the various CSG nodes in Godot.
</description> </description>
<tutorials> <tutorials>
</tutorials> </tutorials>
@ -13,23 +15,29 @@
<return type="bool"> <return type="bool">
</return> </return>
<description> <description>
Returns true if this is a root shape and is thus the object that is rendered.
</description> </description>
</method> </method>
</methods> </methods>
<members> <members>
<member name="operation" type="int" setter="set_operation" getter="get_operation" enum="CSGShape.Operation"> <member name="operation" type="int" setter="set_operation" getter="get_operation" enum="CSGShape.Operation">
The operation that is performed on this shape. This is ignored for the first CSG child node as the operation is between this node and the previous child of this nodes parent.
</member> </member>
<member name="snap" type="float" setter="set_snap" getter="get_snap"> <member name="snap" type="float" setter="set_snap" getter="get_snap">
</member> </member>
<member name="use_collision" type="bool" setter="set_use_collision" getter="is_using_collision"> <member name="use_collision" type="bool" setter="set_use_collision" getter="is_using_collision">
Adds a collision shape to the physics engine for our CSG shape. This will always act like a static body. Note that the collision shape is still active even if the CSG shape itself is hidden.
</member> </member>
</members> </members>
<constants> <constants>
<constant name="OPERATION_UNION" value="0" enum="Operation"> <constant name="OPERATION_UNION" value="0" enum="Operation">
Geometry of both primitives is merged, intersecting geometry is removed.
</constant> </constant>
<constant name="OPERATION_INTERSECTION" value="1" enum="Operation"> <constant name="OPERATION_INTERSECTION" value="1" enum="Operation">
Only intersecting geometry remains, the rest is removed.
</constant> </constant>
<constant name="OPERATION_SUBTRACTION" value="2" enum="Operation"> <constant name="OPERATION_SUBTRACTION" value="2" enum="Operation">
The second shape is susbtracted from the first, leaving a dent with it's shape.
</constant> </constant>
</constants> </constants>
</class> </class>

View file

@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<class name="CSGSphere" inherits="CSGPrimitive" category="Core" version="3.1"> <class name="CSGSphere" inherits="CSGPrimitive" category="Core" version="3.1">
<brief_description> <brief_description>
A CSG Sphere shape.
</brief_description> </brief_description>
<description> <description>
This node allows you to create a sphere for use with the CSG system.
</description> </description>
<tutorials> <tutorials>
</tutorials> </tutorials>
@ -12,14 +14,19 @@
</methods> </methods>
<members> <members>
<member name="material" type="Material" setter="set_material" getter="get_material"> <member name="material" type="Material" setter="set_material" getter="get_material">
The material used to render the sphere.
</member> </member>
<member name="radial_segments" type="int" setter="set_radial_segments" getter="get_radial_segments"> <member name="radial_segments" type="int" setter="set_radial_segments" getter="get_radial_segments">
Number of vertical slices for the sphere.
</member> </member>
<member name="radius" type="float" setter="set_radius" getter="get_radius"> <member name="radius" type="float" setter="set_radius" getter="get_radius">
Radius of the sphere.
</member> </member>
<member name="rings" type="int" setter="set_rings" getter="get_rings"> <member name="rings" type="int" setter="set_rings" getter="get_rings">
Number of horizontal slices for the sphere.
</member> </member>
<member name="smooth_faces" type="bool" setter="set_smooth_faces" getter="get_smooth_faces"> <member name="smooth_faces" type="bool" setter="set_smooth_faces" getter="get_smooth_faces">
If true the normals of the sphere are set to give a smooth effect making the sphere seem rounded. When false the sphere will have a flat shaded look.
</member> </member>
</members> </members>
<constants> <constants>

View file

@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<class name="CSGTorus" inherits="CSGPrimitive" category="Core" version="3.1"> <class name="CSGTorus" inherits="CSGPrimitive" category="Core" version="3.1">
<brief_description> <brief_description>
A CSG Torus shape.
</brief_description> </brief_description>
<description> <description>
This node allows you to create a torus for use with the CSG system.
</description> </description>
<tutorials> <tutorials>
</tutorials> </tutorials>
@ -12,16 +14,22 @@
</methods> </methods>
<members> <members>
<member name="inner_radius" type="float" setter="set_inner_radius" getter="get_inner_radius"> <member name="inner_radius" type="float" setter="set_inner_radius" getter="get_inner_radius">
The inner radius of the torus.
</member> </member>
<member name="material" type="Material" setter="set_material" getter="get_material"> <member name="material" type="Material" setter="set_material" getter="get_material">
The material used to render the torus.
</member> </member>
<member name="outer_radius" type="float" setter="set_outer_radius" getter="get_outer_radius"> <member name="outer_radius" type="float" setter="set_outer_radius" getter="get_outer_radius">
The outer radius of the torus.
</member> </member>
<member name="ring_sides" type="int" setter="set_ring_sides" getter="get_ring_sides"> <member name="ring_sides" type="int" setter="set_ring_sides" getter="get_ring_sides">
The number of edges each ring of the torus is constructed of.
</member> </member>
<member name="sides" type="int" setter="set_sides" getter="get_sides"> <member name="sides" type="int" setter="set_sides" getter="get_sides">
The number of slices the torus is constructed of.
</member> </member>
<member name="smooth_faces" type="bool" setter="set_smooth_faces" getter="get_smooth_faces"> <member name="smooth_faces" type="bool" setter="set_smooth_faces" getter="get_smooth_faces">
If true the normals of the torus are set to give a smooth effect making the torus seem rounded. When false the torus will have a flat shaded look.
</member> </member>
</members> </members>
<constants> <constants>