PrimitiveMesh

package
v0.0.0-...-fe0704e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 19, 2025 License: MIT Imports: 27 Imported by: 0

Documentation

Overview

Base class for all primitive meshes. Handles applying a Material to a primitive mesh. Examples include BoxMesh, CapsuleMesh, CylinderMesh, PlaneMesh, PrismMesh, and SphereMesh.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Advanced

type Advanced = class

Advanced exposes a 1:1 low-level instance of the class, undocumented, for those who know what they are doing.

type Any

type Any interface {
	gd.IsClass
	AsPrimitiveMesh() Instance
}

type Extension

type Extension[T gdclass.Interface] struct{ gdclass.Extension[T, Instance] }

Extension can be embedded in a new struct to create an extension of this class. T should be the type that is embedding this [Extension]See Interface for methods that can be overridden by T.

func (*Extension[T]) AsMesh

func (self *Extension[T]) AsMesh() Mesh.Instance

func (*Extension[T]) AsObject

func (self *Extension[T]) AsObject() [1]gd.Object

func (*Extension[T]) AsPrimitiveMesh

func (self *Extension[T]) AsPrimitiveMesh() Instance

func (*Extension[T]) AsRefCounted

func (self *Extension[T]) AsRefCounted() [1]gd.RefCounted

func (*Extension[T]) AsResource

func (self *Extension[T]) AsResource() Resource.Instance

type ID

type ID Object.ID

ID is a typed object ID (reference) to an instance of this class, use it to store references to objects with unknown lifetimes, as an ID will not panic on use if the underlying object has been destroyed.

func (ID) Instance

func (id ID) Instance() (Instance, bool)

type Implementation

type Implementation = implementation

Implementation implements Interface with empty methods.

type Instance

type Instance [1]gdclass.PrimitiveMesh

Instance of the class with convieniently typed arguments and results.

var Nil Instance

Nil is a nil/null instance of the class. Equivalent to the zero value.

func New

func New() Instance

func (Instance) AddUv2

func (self Instance) AddUv2() bool

If set, generates UV2 UV coordinates applying a padding using the Uv2Padding setting. UV2 is needed for lightmapping.

func (Instance) AsMesh

func (self Instance) AsMesh() Mesh.Instance

func (Instance) AsObject

func (self Instance) AsObject() [1]gd.Object

func (Instance) AsPrimitiveMesh

func (self Instance) AsPrimitiveMesh() Instance

func (Instance) AsRefCounted

func (self Instance) AsRefCounted() [1]gd.RefCounted

func (Instance) AsResource

func (self Instance) AsResource() Resource.Instance

func (Instance) CustomAabb

func (self Instance) CustomAabb() AABB.PositionSize

Overrides the AABB.PositionSize with one defined by user for use with frustum culling. Especially useful to avoid unexpected culling when using a shader to offset vertices.

func (Instance) FlipFaces

func (self Instance) FlipFaces() bool

If true, the order of the vertices in each triangle is reversed, resulting in the backside of the mesh being drawn.

This gives the same result as using [Basematerial3d.CullFront] in BaseMaterial3D.CullMode.

func (Instance) GetMeshArrays

func (self Instance) GetMeshArrays() []any

Returns the mesh arrays used to make up the surface of this primitive mesh.

Example: Pass the result to ArrayMesh.AddSurfaceFromArrays to create a new surface:

var c = CylinderMesh.New()
var arrMesh = ArrayMesh.New()
arrMesh.AddSurfaceFromArrays(Mesh.PrimitiveTriangles, c.AsPrimitiveMesh().GetMeshArrays())

func (Instance) ID

func (self Instance) ID() ID

func (Instance) Material

func (self Instance) Material() Material.Instance

The current Material of the primitive mesh.

func (Instance) RequestUpdate

func (self Instance) RequestUpdate()

Request an update of this primitive mesh based on its properties.

func (Instance) SetAddUv2

func (self Instance) SetAddUv2(value bool)

SetAddUv2 sets the property returned by [GetAddUv2].

func (Instance) SetCustomAabb

func (self Instance) SetCustomAabb(value AABB.PositionSize)

SetCustomAabb sets the property returned by [GetCustomAabb].

func (Instance) SetFlipFaces

func (self Instance) SetFlipFaces(value bool)

SetFlipFaces sets the property returned by [GetFlipFaces].

func (Instance) SetMaterial

func (self Instance) SetMaterial(value Material.Instance)

SetMaterial sets the property returned by [GetMaterial].

func (*Instance) SetObject

func (self *Instance) SetObject(obj [1]gd.Object) bool

func (Instance) SetUv2Padding

func (self Instance) SetUv2Padding(value Float.X)

SetUv2Padding sets the property returned by [GetUv2Padding].

func (Instance) Uv2Padding

func (self Instance) Uv2Padding() Float.X

If AddUv2 is set, specifies the padding in pixels applied along seams of the mesh. Lower padding values allow making better use of the lightmap texture (resulting in higher texel density), but may introduce visible lightmap bleeding along edges.

If the size of the lightmap texture can't be determined when generating the mesh, UV2 is calculated assuming a texture size of 1024x1024.

func (Instance) Virtual

func (self Instance) Virtual(name string) reflect.Value

type Interface

type Interface interface {
	// Override this method to customize how this primitive mesh should be generated. Should return an slice where each element is another Array of values required for the mesh (see the [Mesh.ArrayType] constants).
	CreateMeshArray() [][]interface{}
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL