<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="/feed.php">
        <title>Documentation Center public:dson_spec:object_definitions:node</title>
        <description></description>
        <link>/</link>
        <image rdf:resource="/lib/tpl/dazdoccenter/images/favicon.ico" />
       <dc:date>2026-04-16T22:18:17+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="/public/dson_spec/object_definitions/node/start"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="/lib/tpl/dazdoccenter/images/favicon.ico">
        <title>Documentation Center</title>
        <link>/</link>
        <url>/lib/tpl/dazdoccenter/images/favicon.ico</url>
    </image>
    <item rdf:about="/public/dson_spec/object_definitions/node/start">
        <dc:format>text/html</dc:format>
        <dc:date>2012-06-18T16:59:11+00:00</dc:date>
        <title>node</title>
        <link>/public/dson_spec/object_definitions/node/start</link>
        <description>
&lt;h1 id=&quot;node&quot;&gt;node&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;

&lt;h2 id=&quot;description&quot;&gt;Description&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
This object defines a node that makes up part of a node hierarchy. It can represent nodes of a variety of types such as bones and figure roots.
&lt;/p&gt;

&lt;/div&gt;

&lt;h2 id=&quot;parent_object&quot;&gt;Parent Object&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;/public/dson_spec/object_definitions/daz/start&quot; class=&quot;wikilink1&quot; title=&quot;public:dson_spec:object_definitions:daz:start&quot;&gt;DAZ&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h2 id=&quot;properties&quot;&gt;Properties&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;table sectionedit1&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt; Name &lt;/th&gt;&lt;th class=&quot;col1&quot;&gt; Description &lt;/th&gt;&lt;th class=&quot;col2&quot;&gt; Default &lt;/th&gt;&lt;th class=&quot;col3&quot;&gt; Required &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; id &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; A string representing the unique ID for this asset within the current file scope. &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; None &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; yes &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; name &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; A string representing the “internal” name for this node.  Generally unique within any sibling nodes. &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; None &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; yes &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; type &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; A string representing the base type for this node.  Can be “node”, “bone”, “figure”, “camera”, or “light”.  See &lt;a href=&quot;#extended_by&quot; title=&quot;public:dson_spec:object_definitions:node:start ↵&quot; class=&quot;wikilink1&quot;&gt;Extended By&lt;/a&gt;. &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; “node” &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; no &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; label &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; A string representing the user facing label for this node. &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; None &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; yes &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; source &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; A string representing the &lt;abbr title=&quot;Uniform Resource Identifier&quot;&gt;URI&lt;/abbr&gt; of the node asset that this node asset was derived from. &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; “” &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; no &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; parent &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; A string representing the &lt;abbr title=&quot;Uniform Resource Identifier&quot;&gt;URI&lt;/abbr&gt; of the parent node definition.  Parents must appear above children in the file. &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; None &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; no &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; rotation_order &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; A string representing the rotation order to use when interpreting channel-based animation data for this node.  Valid values are “XYZ”, “YZX”, “ZYX”, “ZXY”, “XZY”, and “YXZ”. &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; “XYZ” &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; no &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; inherits_scale &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; A boolean value indicating whether or not the immediate parent node&amp;#039;s local scale is compensated for when calculating this node&amp;#039;s world space transform. If false, this node&amp;#039;s world space transform is multiplied by the inverse of parent node&amp;#039;s local scale. &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; true (except for a bone with a bone parent) &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; no &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; center_point &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; An array of x, y, and z &lt;a href=&quot;/public/dson_spec/object_definitions/channel_float/start&quot; class=&quot;wikilink1&quot; title=&quot;public:dson_spec:object_definitions:channel_float:start&quot;&gt;channel_float&lt;/a&gt; definitions for the center point of this node. &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; [0, 0, 0 ] &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; no &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; end_point &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; An array of x, y, and z &lt;a href=&quot;/public/dson_spec/object_definitions/channel_float/start&quot; class=&quot;wikilink1&quot; title=&quot;public:dson_spec:object_definitions:channel_float:start&quot;&gt;channel_float&lt;/a&gt; definitions for the end point of this node. &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; [0, 0, 0 ] &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; no &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row11&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; orientation &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; An array of x, y, and z &lt;a href=&quot;/public/dson_spec/object_definitions/channel_float/start&quot; class=&quot;wikilink1&quot; title=&quot;public:dson_spec:object_definitions:channel_float:start&quot;&gt;channel_float&lt;/a&gt; definitions for the (Euler) rotation of this node. &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; [0, 0, 1, 0] &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; no &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row12&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; rotation &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; An array of x, y, and z &lt;a href=&quot;/public/dson_spec/object_definitions/channel_float/start&quot; class=&quot;wikilink1&quot; title=&quot;public:dson_spec:object_definitions:channel_float:start&quot;&gt;channel_float&lt;/a&gt; definitions for the (Euler) rotation of this node. &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; [0, 0, 0] (for “value”) &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; no &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row13&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; translation &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; An array of x, y, and z &lt;a href=&quot;/public/dson_spec/object_definitions/channel_float/start&quot; class=&quot;wikilink1&quot; title=&quot;public:dson_spec:object_definitions:channel_float:start&quot;&gt;channel_float&lt;/a&gt; definitions for the translation of this node. &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; [0, 0, 0 ] (for “value”) &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; no &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row14&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; scale &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; An array of x, y, and z &lt;a href=&quot;/public/dson_spec/object_definitions/channel_float/start&quot; class=&quot;wikilink1&quot; title=&quot;public:dson_spec:object_definitions:channel_float:start&quot;&gt;channel_float&lt;/a&gt; definitions for the individual (i.e. x, y, or z-axis) scale of this node. &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; [1, 1, 1] (for “value”) &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; no &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row15&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; general_scale &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; A &lt;a href=&quot;/public/dson_spec/object_definitions/channel_float/start&quot; class=&quot;wikilink1&quot; title=&quot;public:dson_spec:object_definitions:channel_float:start&quot;&gt;channel_float&lt;/a&gt; definition for the general (i.e. 3-axis) scale of this node. &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 1 (for “value”) &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; no &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row16&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; presentation &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; A &lt;a href=&quot;/public/dson_spec/object_definitions/presentation/start&quot; class=&quot;wikilink1&quot; title=&quot;public:dson_spec:object_definitions:presentation:start&quot;&gt;presentation&lt;/a&gt; object representing the user-facing presentation information for this node. &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; N/A &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; no &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row17&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; formulas &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; An array of &lt;a href=&quot;/public/dson_spec/object_definitions/formula/start&quot; class=&quot;wikilink1&quot; title=&quot;public:dson_spec:object_definitions:formula:start&quot;&gt;formula&lt;/a&gt; objects owned by this node. &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; N/A &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; no &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row18&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; extra &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; An array of objects that represent additional application-specific information for this object. &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; N/A &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; no &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT1 TABLE [297-3238] --&gt;
&lt;/div&gt;

&lt;h2 id=&quot;extended_by&quot;&gt;Extended By&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;/public/dson_spec/object_definitions/camera/start&quot; class=&quot;wikilink1&quot; title=&quot;public:dson_spec:object_definitions:camera:start&quot;&gt;camera&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;/public/dson_spec/object_definitions/light/start&quot; class=&quot;wikilink1&quot; title=&quot;public:dson_spec:object_definitions:light:start&quot;&gt;light&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h2 id=&quot;details&quot;&gt;Details&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
If &lt;em&gt;type&lt;/em&gt; is set to “figure” then this node is understood to be the root node of a figure.
&lt;/p&gt;

&lt;p&gt;
The &lt;em&gt;name&lt;/em&gt; attribute may be used by applications to provide another addressing mechanism for nodes in the scene. In object URI’s, if “name” is used as the scheme identifier, then the value of the name attribute is used to look up an item rather than using the id attribute. If the name attribute is missing, applications should use the id attribute in its place wherever needed.
&lt;/p&gt;

&lt;p&gt;
The &lt;em&gt;translation&lt;/em&gt;, &lt;em&gt;rotation&lt;/em&gt;, &lt;em&gt;scale&lt;/em&gt;, and &lt;em&gt;general_scale&lt;/em&gt; elements each represent transforms that convert to transform matrices.  To arrive at the full base transform for the node, each of those elements is converted to matrix form.  The full transform for a node is determined using the following algorithm:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; center_offset = &lt;em&gt;center_point&lt;/em&gt; - parent.&lt;em&gt;center_point&lt;/em&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; global_translation = parent.global_transform * (center_offset + &lt;em&gt;translation&lt;/em&gt;)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; global_rotation = parent.global_rotation * &lt;em&gt;orientation&lt;/em&gt; * &lt;em&gt;rotation&lt;/em&gt; * (&lt;em&gt;orientation&lt;/em&gt;)&lt;sup&gt;-1&lt;/sup&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; global_scale for nodes that inherit scale = parent.global_scale * &lt;em&gt;orientation&lt;/em&gt; * &lt;em&gt;scale&lt;/em&gt; * &lt;em&gt;general_scale&lt;/em&gt; * (&lt;em&gt;orientation&lt;/em&gt;)&lt;sup&gt;-1&lt;/sup&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; global_scale for nodes = parent.global_scale * (parent.local_scale)&lt;sup&gt;-1&lt;/sup&gt; * &lt;em&gt;orientation&lt;/em&gt; * &lt;em&gt;scale&lt;/em&gt; * &lt;em&gt;general_scale&lt;/em&gt; * (&lt;em&gt;orientation&lt;/em&gt;)&lt;sup&gt;-1&lt;/sup&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; global_transform = global_translation * global_rotation * global_scale&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Vertices are taken to global space by post-multiplying as follows:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; global_vertex = global_transform * vertex&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h2 id=&quot;example&quot;&gt;Example&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;{
	&amp;quot;id&amp;quot; : &amp;quot;hip&amp;quot;,
	&amp;quot;type&amp;quot; : &amp;quot;bone&amp;quot;,
	&amp;quot;label&amp;quot; : &amp;quot;Hip&amp;quot;,
	&amp;quot;parent&amp;quot; : &amp;quot;#Genesis&amp;quot;,
	&amp;quot;rotation_order&amp;quot; : &amp;quot;YZX&amp;quot;,
	&amp;quot;inherits_scale&amp;quot; : true,
	&amp;quot;center_point&amp;quot; : [
		channel_float,
		channel_float,
		channel_float
	],
	&amp;quot;end_point&amp;quot; : [
		channel_float,
		channel_float,
		channel_float
	],
	&amp;quot;orientation&amp;quot; : [
		channel_float,
		channel_float,
		channel_float
	],
	&amp;quot;rotation&amp;quot; : [
		channel_float,
		channel_float,
		channel_float
	],
	&amp;quot;translation&amp;quot; : [
		channel_float,
		channel_float,
		channel_float
	],
	&amp;quot;scale&amp;quot; : [
		channel_float,
		channel_float,
		channel_float
	],
	&amp;quot;general_scale&amp;quot; : channel_float
}&lt;/pre&gt;

&lt;/div&gt;
</description>
    </item>
</rdf:RDF>
