package kaiju_mesh
Functions
IsGLB
MeshRefString
StableMeshKey
Types
AnimBone
struct
type AnimBone struct {
NodeIndex int
PathType AnimationPathType
Interpolation AnimationInterpolation
// Could be Vec3 or Quaternion, doing this because Go doesn't have a union
Data [4]matrix.Float
}
AnimKeyFrame
struct
AnimationInterpolation
const ( AnimInterpolateInvalid AnimationInterpolation = iota - 1 AnimInterpolateLinear AnimInterpolateStep AnimInterpolateCubicSpline )
AnimationPathType
const ( AnimPathInvalid AnimationPathType = iota - 1 AnimPathTranslation AnimPathRotation AnimPathScale AnimPathWeights )
KaijuMesh
struct
type KaijuMesh struct {
Key string
Name string
Node KaijuMeshNode
Material string
Verts []rendering.Vertex
Indexes []uint32
Textures map[string]string
BVH *graviton.TriangleBVH
Animations []KaijuMeshAnimation
Joints []KaijuMeshJoint
}
KaijuMesh is a base primitive representing a single mesh. This is the archived format of the authored meshes. Typically this structure is created by loading in a mesh using something like [loaders.GLTF] and then converting the result of that using LoadedResultToKaijuMesh. From this point, it is typically serialized and stored into the content database. When reading a mesh from the content database, it will return a KaijuMesh.
Deserialize
Deserialize will construct a KaijuMesh from the given array of bytes. This supports GLB mesh content and falls back to native/gob for legacy assets.
LoadedResultToKaijuMesh
LoadedResultToKaijuMesh will take in a load_result.Result and convert every mesh contained within the structure to our built in version known as KaijuMesh. This is typically used for the editor, but games/applications may find some use for it.
ReadMesh
KaijuMesh.EnsureBVH
KaijuMesh.GenerateBVH
func (k *KaijuMesh) GenerateBVH(threads *concurrent.Threads, transform *matrix.Transform, data any) *graviton.BVH
KaijuMesh.GenerateBVHArchive
KaijuMesh.Serialize
Serialize will convert a KaijuMesh into a byte array for saving to the database or later use.
KaijuMesh.SerializeWithOptions
KaijuMeshAnimation
struct
KaijuMeshJoint
struct
type KaijuMeshJoint struct {
Id int32
Parent int32
Skin matrix.Mat4
Position matrix.Vec3
Rotation matrix.Vec3
Scale matrix.Vec3
}
KaijuMeshNode
struct
type KaijuMeshNode struct {
Name string
Position matrix.Vec3
Rotation matrix.Vec3
Scale matrix.Vec3
}
KaijuMeshSet
struct
DeserializeSet
LoadedResultToKaijuMeshSet
KaijuMeshSet.EnsureBVH
KaijuMeshSet.MeshByKey
KaijuMeshSet.Serialize
KaijuMeshSet.SerializeWithOptions
MeshRef
struct
ParseMeshRef
MeshRef.IsSubmesh
MeshRef.String
SerializeOptions
struct