func NewObject3D() *Object3D { Object3DIdCount++ object3d := Object3D{ NewEventDispatcher(), Id: Object3DIdCount, Uuid: math.GenerateUUID(), Name: "", Type: "Object3D", Parent: nil, Channels: NewChannels(), Children: make([]Object3D, 0), Up: DefaultUp.Clone(), Position: math.NewEmptyVector3(), Rotation: math.NewEmptyEuler(), Quaternion: math.NewEmptyQuaternion(), Scale: math.NewVector3(1.0, 1.0, 1.0), RotationAutoUpdate: true, Matrix: math.NewMatrix4(), MatrixWorld: math.NewMatrix4(), MatrixAutoUpdate: DefaultMatrixAutoUpdate, MatrixWorldNeedsUpdate: false, Visible: true, CastShadow: false, ReceiveShadow: false, FrustumCulled: true, RenderOrder: 0, UserData: make(map[string]string), ModelViewMatrix: math.NewMatrix4(), NormalMatrix: *math.NewMatrix3(), Geometry: nil, } onRotationChange := func() { object3d.Quaternion.SetFromEuler(object3d.Rotation, false) } onQuaternionChange := func() { object3d.Rotation.SetFromQuaternion(object3d.Quaternion, nil, false) } object3d.Rotation.OnChange(onRotationChange) object3d.Quaternion.OnChange(onQuaternionChange) object3d.GetWorldQuaternion = object3d.buildGetWorldQuaternion() object3d.GetWorldRotation = object3d.buildGetWorldRotation() object3d.GetWorldScale() = object3d.buildGetWorldScale() object3d.GetWorldDirection = object3d.buildGetWorldDirection() object3d.LookAt = object3d.buildLookAt() return &object3d }
FrustumCulled bool RenderOrder int UserData map[string]string ModelViewMatrix *math.Matrix4 NormalMatrix *math.Matrix3 Geometry *Geometry GetWorldQuaternion func(*math.Vector3) *math.Quaternion GetWorldRotation func(*math.Euler) *math.Euler GetWorldScale func(*math.Vector3) *math.Vector3 GetWorldDirection func(*math.Vector3) *math.Vector3 LookAt func(*math.Vector3) } var Object3DIdCount int = 0 var DefaultUp = math.NewVector3(0.0, 1.0, 0.0) var DefaultMatrixAutoUpdate bool = true func NewObject3D() *Object3D { Object3DIdCount++ object3d := Object3D{ NewEventDispatcher(), Id: Object3DIdCount, Uuid: math.GenerateUUID(), Name: "", Type: "Object3D", Parent: nil, Channels: NewChannels(), Children: make([]Object3D, 0), Up: DefaultUp.Clone(), Position: math.NewEmptyVector3(),