CSGPolygon

    Extrudes a 2D polygon shape to create a 3D mesh.

    An array of 2D points is extruded to quickly and easily create a variety of 3D meshes. See also for using 3D meshes as CSG nodes.

    Note: CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a MeshInstance with a . Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay.

    enum Mode:

    • MODE_DEPTH = 0 —- The polygon shape is extruded along the negative Z axis.

    • MODE_SPIN = 1 —- The shape is extruded by rotating it around the Y axis.

    • MODE_PATH = 2 —- The polygon shape is extruded along the specified in path_node.


    enum PathRotation:

    Note: Requires the path’s Z coordinates to continually decrease to ensure viable shapes.

    • PATH_ROTATION_PATH = 1 —- The shape is rotated along the path, but it is not rotated around the path axis.
    • PATH_ROTATION_PATH_FOLLOW = 2 —- The polygon shape follows the path and its rotations around the path axis.

    enum PathIntervalType:

    • PATH_INTERVAL_DISTANCE = 0 —- When is set to MODE_PATH, will determine the distance, in meters, each interval of the path will extrude.

    • PATH_INTERVAL_SUBDIVIDE = 1 —- When mode is set to , path_interval will subdivide the polygons along the path.

    Default

    Setter

    set_depth(value)

    Getter

    get_depth()

    When is MODE_DEPTH, the depth of the extrusion.


    • material

    Setter

    set_material(value)

    Getter

    get_material()

    Material to use for the resulting mesh. The UV maps the top half of the material to the extruded shape (U along the the length of the extrusions and V around the outline of the polygon), the bottom-left quarter to the front end face, and the bottom-right quarter to the back end face.


    • mode

    Default

    0

    Setter

    set_mode(value)

    Getter

    get_mode()

    The mode used to extrude the .


    • bool path_continuous_u

    Setter

    set_path_continuous_u(value)

    Getter

    is_path_continuous_u()

    When is MODE_PATH, by default, the top half of the is stretched along the entire length of the extruded shape. If false the top half of the material is repeated every step of the extrusion.


    When is MODE_PATH, the path interval or ratio of path points to extrusions.


    Setter

    set_path_interval_type(value)

    Getter

    get_path_interval_type()

    When is MODE_PATH, this will determine if the interval should be by distance () or subdivision fractions (PATH_INTERVAL_SUBDIVIDE).


    • path_joined

    Setter

    set_path_joined(value)

    Getter

    is_path_joined()

    When mode is , if true the ends of the path are joined, by adding an extrusion between the last and first points of the path.


    Setter

    set_path_local(value)

    Getter

    When is MODE_PATH, if the of the CSGPolygon is used as the starting point for the extrusions, not the Transform of the .


    Setter

    set_path_node(value)

    Getter

    get_path_node()

    When is MODE_PATH, the location of the object used to extrude the polygon.


    • path_rotation

    When mode is , the PathRotation method used to rotate the as it is extruded.


    • float path_simplify_angle

    Setter

    set_path_simplify_angle(value)

    Getter

    get_path_simplify_angle()

    When is MODE_PATH, extrusions that are less than this angle, will be merged together to reduce polygon count.


    • path_u_distance

    Setter

    set_path_u_distance(value)

    Getter

    get_path_u_distance()

    When mode is , this is the distance along the path, in meters, the texture coordinates will tile. When set to 0, texture coordinates will match geometry exactly with no tiling.


    Default

    PoolVector2Array( 0, 0, 0, 1, 1, 1, 1, 0 )

    Setter

    set_polygon(value)

    Getter

    get_polygon()

    The point array that defines the 2D polygon that is extruded. This can be a convex or concave polygon with 3 or more points. The polygon must not have any intersecting edges. Otherwise, triangulation will fail and no mesh will be generated.

    Note: If only 1 or 2 points are defined in , no mesh will be generated.


    Default

    false

    Setter

    set_smooth_faces(value)

    Getter

    get_smooth_faces()

    If , applies smooth shading to the extrusions.


    • spin_degrees

    When mode is , the total number of degrees the polygon is rotated when extruding.


    Setter

    set_spin_sides(value)

    Getter

    get_spin_sides()