new(_rest:Matrix3D)
Creates a new bone for an armature.
Parameters:
rest
The rest pose transform for this bone
@:value(true)poseEnabled:Bool = true
If disabled, this bone won't calculate its position/rotation/scale
rest:Matrix3D
The rest transform of this bone.
This is used as offset (pivot) for bone transform.
Note: This matrix should be inverted and in global-space
@:value(-1)parentIndex:Int = -1
The index of the parent of this bone.
Currently, this is purely informational.
parent:FoxObject
If set, will adapt parent transform. Make sure the parent has a higher priority so it updates in order
position:Vector3D
@:value(new Vector3D())rotation:Vector3D = new Vector3D()
@:value(new Vector3D(1, 1, 1))scale:Vector3D = new Vector3D(1, 1, 1)
x:Float
y:Float
z:Float
angleX:Float
angleY:Float
angleZ:Float
@:value(new Matrix3D())transform:Matrix3D = new Matrix3D()
This is the global transform for this Object, it encodes position, rotation and scale in a 4x4 matrix
@:value(new Vector3D())read onlyglobalPosition:Vector3D = new Vector3D()
@:value(new Vector3D())read onlyglobalRotation:Vector3D = new Vector3D()
@:value(new Vector3D())read onlyglobalScale:Vector3D = new Vector3D()
@:value("FoxBasic")name:String = "FoxBasic"
@:value(true)visible:Bool = true
@:value(true)active:Bool = true
@:value(null)scene:FoxScene = null
@:value(false)__destroyed:Bool = false
animation:FoxAnimationPlayer
An animation controller for this basic. Although properties have to be manually linked, this is intended to be a general-purpose animator for this object
@:value({ z : 0, y : 0, x : 0 })inlinesetPosition(x:Float = 0, y:Float = 0, z:Float = 0):Void
@:value({ z : 0, y : 0, x : 0 })inlinesetRotation(x:Float = 0, y:Float = 0, z:Float = 0):Void
@:value({ z : 0, y : 0, x : 0 })inlinesetAngle(x:Float = 0, y:Float = 0, z:Float = 0):Void
Same as setRotation() but for angle degrees.
setRotation()
inlinesetAngleFromVector(angles:Vector3D):Void
Sets the object's angle degrees from a Vector3D
getAngle(?output:Vector3D):Vector3D
Gets the object's rotation as degrees, as a Vector3D
rotation
output
(Optional) the output vector to store the angles without allocating a new one
Returns:
a Vector3D containing angleX, angleY and angleZ
@:value({ w : 1, z : 0, y : 0, x : 0 })setRotationQuaternion(x:Float = 0, y:Float = 0, z:Float = 0, w:Float = 1):Vector3D
Sets the object's rotation from a Quaternion, which is needed for accurate rotation representation when interpolating.
How dows it work? hell if i know
inlinesetRotationQuaternionFromVector(quat:Vector3D):Vector3D
@:value({ z : 1, y : 1, x : 1 })inlinesetScale(x:Float = 1, y:Float = 1, z:Float = 1):Void
copyComponentsFrom(object:FoxObject):Void
Copies position, rotation and scale from another FoxObject, so the other object's components doesn't affect this one when changing them
position
scale
privateget_globalPosition():Vector3D
privateget_globalRotation():Vector3D
privateget_globalScale():Vector3D
privateget_x():Float
privateget_y():Float
privateget_z():Float
privateinlineset_x(v:Float):Float
privateinlineset_y(v:Float):Float
privateinlineset_z(v:Float):Float
privateset_angleX(v:Float):Float
privateset_angleY(v:Float):Float
privateset_angleZ(v:Float):Float
privateget_angleX():Float
privateget_angleY():Float
privateget_angleZ():Float
draw(camera:FoxCamera):Void
Intended for transforms, actual drawing happens in the camera render pass
pushDrawData(scene:FoxScene):Void
This function gets called when the scene starts building draw groups.
It should call the scene's addToDrawGroups() function for every drawable of this object.
addToDrawGroups()
Override this with your custom draw data function.
Note: Internal use only, it is a performance critical operation, keep it fast.