Struct ufbx.ufbx_node
Nodes form the scene transformation hierarchy and can contain attached
elements such as meshes or lights. In normal cases a single ufbx_node
contains only a single attached element, so using type/mesh/...
is safe.
Assembly: ufbxWrapper.dll
Syntax
public struct ufbx.ufbx_node
Fields
_anonymous_1
Nodes form the scene transformation hierarchy and can contain attached
elements such as meshes or lights. In normal cases a single ufbx_node
contains only a single attached element, so using type/mesh/...
is safe.
Declaration
public ufbx.ufbx_node._anonymous_1_struct _anonymous_1
Field Value
adjust_mirror_axis
Mirror translation and rotation on this axis
Declaration
public ufbx.ufbx_mirror_axis adjust_mirror_axis
Field Value
adjust_post_rotation
Rotation applied in local space at the end
Declaration
public ufbx.ufbx_quat adjust_post_rotation
Field Value
adjust_post_scale
Scaling applied in local space at the end
Declaration
public float adjust_post_scale
Field Value
adjust_pre_rotation
Rotation applied between parent and self
Declaration
public ufbx.ufbx_quat adjust_pre_rotation
Field Value
adjust_pre_scale
Scaling applied between parent and self
Declaration
public float adjust_pre_scale
Field Value
adjust_pre_translation
Translation applied between parent and self
Declaration
public ufbx.ufbx_vec3 adjust_pre_translation
Field Value
adjust_translation_scale
Scaling applied to translation only
Declaration
public float adjust_translation_scale
Field Value
all_attribs
List of all attached attribute elements.
In most cases there is only zero or one attributes per node, but if you
have a very exotic FBX file nodes may have multiple attributes.
Declaration
public ufbx.ufbx_element_list all_attribs
Field Value
attrib
Less common attributes use these fields.
Defined even if it is one of the above, eg. ufbx_mesh
. In case there
is multiple attributes this will be the first one.
Declaration
public ufbx.ufbx_element* attrib
Field Value
attrib_type
attrib-type
if attrib
is defined, otherwise UFBX_ELEMENT_UNKNOWN
.
Declaration
public ufbx.ufbx_element_type attrib_type
Field Value
bind_pose
Declaration
public ufbx.ufbx_pose* bind_pose
Field Value
bone
Declaration
public ufbx.ufbx_bone* bone
Field Value
camera
Declaration
public ufbx.ufbx_camera* camera
Field Value
children
List of child nodes parented to this node.
Declaration
public ufbx.ufbx_node_list children
Field Value
euler_rotation
Rotation around the local X/Y/Z axes in rotation_order
.
The angles are specified in degrees.
Declaration
public ufbx.ufbx_vec3 euler_rotation
Field Value
geometry_to_node
Declaration
public ufbx.ufbx_matrix geometry_to_node
Field Value
geometry_to_world
Declaration
public ufbx.ufbx_matrix geometry_to_world
Field Value
Declaration
public ufbx.ufbx_transform geometry_transform
Field Value
Geometry transform helper if one exists.
See UFBX_GEOMETRY_TRANSFORM_HANDLING_HELPER_NODES
.
Declaration
public ufbx.ufbx_node* geometry_transform_helper
Field Value
If true
the transform is adjusted by ufbx, not enabled by default.
See adjust_pre_rotation
, adjust_pre_scale
, adjust_post_rotation
,
and adjust_post_scale
.
Declaration
public bool has_adjust_transform
Field Value
True if the node has a non-identity geometry_transform
.
Declaration
public bool has_geometry_transform
Field Value
Scale is adjusted by root scale.
Declaration
public bool has_root_adjust_transform
Field Value
inherit_mode
Local transform in parent, geometry transform is a non-inherited
transform applied only to attachments like meshes
Declaration
public ufbx.ufbx_inherit_mode inherit_mode
Field Value
inherit_scale
Combined scale when using UFBX_INHERIT_MODE_COMPONENTWISE_SCALE
.
Contains local_transform.scale
otherwise.
Declaration
public ufbx.ufbx_vec3 inherit_scale
Field Value
inherit_scale_node
Node where scale is inherited from for UFBX_INHERIT_MODE_COMPONENTWISE_SCALE
and even for UFBX_INHERIT_MODE_IGNORE_PARENT_SCALE
.
For componentwise-scale nodes, this will point to parent
, for scale ignoring
nodes this will point to the parent of the nearest componentwise-scaled node
in the parent chain.
Declaration
public ufbx.ufbx_node* inherit_scale_node
Field Value
True if this node is a synthetic geometry transform helper.
See UFBX_GEOMETRY_TRANSFORM_HANDLING_HELPER_NODES
.
Declaration
public bool is_geometry_transform_helper
Field Value
is_root
True if this node is the implicit root node of the scene.
Declaration
Field Value
is_scale_compensate_parent
Parent node to children that can compensate for parent scale.
Declaration
public bool is_scale_compensate_parent
Field Value
is_scale_helper
True if the node is a synthetic scale compensation helper.
See UFBX_INHERIT_MODE_HANDLING_HELPER_NODES
.
Declaration
public bool is_scale_helper
Field Value
light
Declaration
public ufbx.ufbx_light* light
Field Value
Declaration
public ufbx.ufbx_transform local_transform
Field Value
materials
Materials used by mesh
or other attrib
.
There may be multiple copies of a single ufbx_mesh
with different materials
in the ufbx_node
instances.
Declaration
public ufbx.ufbx_material_list materials
Field Value
mesh
Common attached element type and typed pointers. Set to NULL
if not in
use, so checking attrib_type
is not required.
HINT: If you need less common attributes access ufbx_node.attrib
, you
can use utility functions like ufbx_as_nurbs_curve(attrib)
to convert
and check the attribute in one step.
Declaration
public ufbx.ufbx_mesh* mesh
Field Value
node_depth
How deep is this node in the parent hierarchy. Root node is at depth 0
and the immediate children of root at 1
.
Declaration
Field Value
node_to_parent
Declaration
public ufbx.ufbx_matrix node_to_parent
Field Value
node_to_world
Transform from this node to the world space, ie. multiplying all the
node_to_parent
matrices of the parent chain together.
Declaration
public ufbx.ufbx_matrix node_to_world
Field Value
original_inherit_mode
Declaration
public ufbx.ufbx_inherit_mode original_inherit_mode
Field Value
parent
Parent node containing this one if not root.
Always non-NULL
for non-root nodes unless
ufbx_load_opts.allow_nodes_out_of_root
is enabled.
Declaration
public ufbx.ufbx_node* parent
Field Value
rotation_order
Specifies the axis order euler_rotation
is applied in.
Declaration
public ufbx.ufbx_rotation_order rotation_order
Field Value
scale_helper
Scale helper if one exists.
See UFBX_INHERIT_MODE_HANDLING_HELPER_NODES
.
Declaration
public ufbx.ufbx_node* scale_helper
Field Value
unscaled_node_to_world
Transform from this node to world space, ignoring self scaling.
Declaration
public ufbx.ufbx_matrix unscaled_node_to_world
Field Value
visible
Declaration
Field Value
Properties
element
Declaration
public ufbx.ufbx_element element { get; }
Property Value
element_id
Declaration
public uint element_id { get; }
Property Value
name
Declaration
public ufbx.ufbx_string name { get; }
Property Value
props
Declaration
public ufbx.ufbx_props props { get; }
Property Value
typed_id
Declaration
public uint typed_id { get; }
Property Value