Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
f8ceb63
Initial test.
kwokcb May 21, 2025
a9cc157
Merge branch 'AcademySoftwareFoundation:main' into functional_nodedefs
kwokcb May 22, 2025
b96d4cd
Merge branch 'AcademySoftwareFoundation:main' into functional_nodedefs
kwokcb Jun 5, 2025
814e524
Merge branch 'AcademySoftwareFoundation:main' into functional_nodedefs
kwokcb Jul 8, 2025
179a6d6
Merge branch 'AcademySoftwareFoundation:main' into functional_nodedefs
kwokcb Jul 15, 2025
36a154f
Merge branch 'AcademySoftwareFoundation:main' into functional_nodedefs
kwokcb Aug 19, 2025
cf7d0f2
Merge branch 'AcademySoftwareFoundation:main' into functional_nodedefs
kwokcb Aug 26, 2025
8ef6904
Merge branch 'AcademySoftwareFoundation:main' into functional_nodedefs
kwokcb Sep 1, 2025
c52561b
Merge branch 'AcademySoftwareFoundation:main' into functional_nodedefs
kwokcb Sep 3, 2025
cad97bc
Add create options and unit test.
kwokcb Sep 5, 2025
5ac34e5
Add doc for DefinitionsOptions arg on addNodeDefFromGraph().
kwokcb Sep 7, 2025
4dc3ee1
Merge branch 'AcademySoftwareFoundation:main' into functional_nodedefs
kwokcb Sep 12, 2025
7add695
Merge branch 'AcademySoftwareFoundation:main' into functional_nodedefs
kwokcb Sep 16, 2025
df75cae
Merge branch 'AcademySoftwareFoundation:main' into functional_nodedefs
kwokcb Oct 5, 2025
f3b5985
Merge branch 'AcademySoftwareFoundation:main' into functional_nodedefs
kwokcb Oct 14, 2025
cb430ab
Merge branch 'AcademySoftwareFoundation:main' into functional_nodedefs
kwokcb Oct 23, 2025
ece55fc
Merge branch 'AcademySoftwareFoundation:main' into functional_nodedefs
kwokcb Oct 25, 2025
ad477ee
Review updates
kwokcb Oct 25, 2025
8caf533
Fix Windows test warnings.
kwokcb Oct 25, 2025
4057ff9
Add Javascript bindings + unit test.
kwokcb Oct 28, 2025
7e12bf1
Merge branch 'AcademySoftwareFoundation:main' into functional_nodedefs
kwokcb Nov 3, 2025
231bcce
Merge branch 'AcademySoftwareFoundation:main' into functional_nodedefs
kwokcb Nov 10, 2025
6fc3a7b
Merge branch 'AcademySoftwareFoundation:main' into functional_nodedefs
kwokcb Nov 11, 2025
d999875
Merge branch 'AcademySoftwareFoundation:main' into functional_nodedefs
kwokcb Nov 12, 2025
aa3ca63
Merge branch 'main' into functional_nodedefs
kwokcb Nov 15, 2025
d24b4f1
Merge branch 'AcademySoftwareFoundation:main' into functional_nodedefs
kwokcb Nov 17, 2025
fc97603
Merge branch 'AcademySoftwareFoundation:main' into functional_nodedefs
kwokcb Nov 22, 2025
5f62af2
Merge branch 'AcademySoftwareFoundation:main' into functional_nodedefs
kwokcb Nov 24, 2025
8905df3
Merge branch 'AcademySoftwareFoundation:main' into functional_nodedefs
kwokcb Dec 3, 2025
f481f6f
Merge branch 'main' into functional_nodedefs
kwokcb Dec 9, 2025
0018a27
Merge remote-tracking branch 'upstream/main' into functional_nodedefs
kwokcb Dec 13, 2025
dd352e6
Add inlining, inheritance, and shared implementation logic and more …
kwokcb Dec 13, 2025
a3ed34d
Merge remote-tracking branch 'upstream/main' into functional_nodedefs
kwokcb Dec 17, 2025
3e70748
Auto sync.
kwokcb Dec 17, 2025
d6346f8
Merge remote-tracking branch 'upstream/main' into functional_nodedefs
kwokcb Dec 29, 2025
f9a5603
Fix merge.
kwokcb Dec 29, 2025
f235733
Merge remote-tracking branch 'aswf/main' into functional_nodedefs
kwokcb Jan 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
207 changes: 207 additions & 0 deletions libraries/stdlib/stdlib_defs.mtlx
Original file line number Diff line number Diff line change
Expand Up @@ -2148,56 +2148,263 @@
<input name="in1" type="float" value="0.0" />
<input name="in2" type="float" value="1.0" />
<output name="out" type="float" defaultinput="in1" />

<nodegraph name="NG_safepower_float">
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any / or all graphs could reside here. Both new and old mechanism still work.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will revert this to not break for anyone parsing this directly.

<sign name="sign_in1" type="float">
<input name="in" type="float" interfacename="in1" />
</sign>
<absval name="abs_in1" type="float">
<input name="in" type="float" interfacename="in1" />
</absval>
<power name="power" type="float">
<input name="in1" type="float" nodename="abs_in1" />
<input name="in2" type="float" interfacename="in2" />
</power>
<multiply name="safepower" type="float">
<input name="in1" type="float" nodename="sign_in1" />
<input name="in2" type="float" nodename="power" />
</multiply>
<output name="out" type="float" nodename="safepower" />
</nodegraph>

</nodedef>
<nodedef name="ND_safepower_color3" node="safepower" nodegroup="math">
<input name="in1" type="color3" value="0.0, 0.0, 0.0" />
<input name="in2" type="color3" value="1.0, 1.0, 1.0" />
<output name="out" type="color3" defaultinput="in1" />

<nodegraph name="NG_safepower_color3">
<sign name="sign_in1" type="color3">
<input name="in" type="color3" interfacename="in1" />
</sign>
<absval name="abs_in1" type="color3">
<input name="in" type="color3" interfacename="in1" />
</absval>
<power name="power" type="color3">
<input name="in1" type="color3" nodename="abs_in1" />
<input name="in2" type="color3" interfacename="in2" />
</power>
<multiply name="safepower" type="color3">
<input name="in1" type="color3" nodename="sign_in1" />
<input name="in2" type="color3" nodename="power" />
</multiply>
<output name="out" type="color3" nodename="safepower" />
</nodegraph>

</nodedef>
<nodedef name="ND_safepower_color4" node="safepower" nodegroup="math">
<input name="in1" type="color4" value="0.0, 0.0, 0.0, 0.0" />
<input name="in2" type="color4" value="1.0, 1.0, 1.0, 1.0" />
<output name="out" type="color4" defaultinput="in1" />

<nodegraph name="NG_safepower_color4" >
<sign name="sign_in1" type="color4">
<input name="in" type="color4" interfacename="in1" />
</sign>
<absval name="abs_in1" type="color4">
<input name="in" type="color4" interfacename="in1" />
</absval>
<power name="power" type="color4">
<input name="in1" type="color4" nodename="abs_in1" />
<input name="in2" type="color4" interfacename="in2" />
</power>
<multiply name="safepower" type="color4">
<input name="in1" type="color4" nodename="sign_in1" />
<input name="in2" type="color4" nodename="power" />
</multiply>
<output name="out" type="color4" nodename="safepower" />
</nodegraph>

</nodedef>
<nodedef name="ND_safepower_vector2" node="safepower" nodegroup="math">
<input name="in1" type="vector2" value="0.0, 0.0" />
<input name="in2" type="vector2" value="1.0, 1.0" />
<output name="out" type="vector2" defaultinput="in1" />

<nodegraph name="NG_safepower_vector2" >
<sign name="sign_in1" type="vector2">
<input name="in" type="vector2" interfacename="in1" />
</sign>
<absval name="abs_in1" type="vector2">
<input name="in" type="vector2" interfacename="in1" />
</absval>
<power name="power" type="vector2">
<input name="in1" type="vector2" nodename="abs_in1" />
<input name="in2" type="vector2" interfacename="in2" />
</power>
<multiply name="safepower" type="vector2">
<input name="in1" type="vector2" nodename="sign_in1" />
<input name="in2" type="vector2" nodename="power" />
</multiply>
<output name="out" type="vector2" nodename="safepower" />
</nodegraph>

</nodedef>
<nodedef name="ND_safepower_vector3" node="safepower" nodegroup="math">
<input name="in1" type="vector3" value="0.0, 0.0, 0.0" />
<input name="in2" type="vector3" value="1.0, 1.0, 1.0" />
<output name="out" type="vector3" defaultinput="in1" />

<nodegraph name="NG_safepower_vector3" >
<sign name="sign_in1" type="vector3">
<input name="in" type="vector3" interfacename="in1" />
</sign>
<absval name="abs_in1" type="vector3">
<input name="in" type="vector3" interfacename="in1" />
</absval>
<power name="power" type="vector3">
<input name="in1" type="vector3" nodename="abs_in1" />
<input name="in2" type="vector3" interfacename="in2" />
</power>
<multiply name="safepower" type="vector3">
<input name="in1" type="vector3" nodename="sign_in1" />
<input name="in2" type="vector3" nodename="power" />
</multiply>
<output name="out" type="vector3" nodename="safepower" />
</nodegraph>

</nodedef>
<nodedef name="ND_safepower_vector4" node="safepower" nodegroup="math">
<input name="in1" type="vector4" value="0.0, 0.0, 0.0, 0.0" />
<input name="in2" type="vector4" value="1.0, 1.0, 1.0, 1.0" />
<output name="out" type="vector4" defaultinput="in1" />

<nodegraph name="NG_safepower_vector4" >
<sign name="sign_in1" type="vector4">
<input name="in" type="vector4" interfacename="in1" />
</sign>
<absval name="abs_in1" type="vector4">
<input name="in" type="vector4" interfacename="in1" />
</absval>
<power name="power" type="vector4">
<input name="in1" type="vector4" nodename="abs_in1" />
<input name="in2" type="vector4" interfacename="in2" />
</power>
<multiply name="safepower" type="vector4">
<input name="in1" type="vector4" nodename="sign_in1" />
<input name="in2" type="vector4" nodename="power" />
</multiply>
<output name="out" type="vector4" nodename="safepower" />
</nodegraph>

</nodedef>
<nodedef name="ND_safepower_color3FA" node="safepower" nodegroup="math">
<input name="in1" type="color3" value="0.0, 0.0, 0.0" />
<input name="in2" type="float" value="1.0" />
<output name="out" type="color3" defaultinput="in1" />

<nodegraph name="NG_safepower_color3FA" >
<sign name="sign_in1" type="color3">
<input name="in" type="color3" interfacename="in1" />
</sign>
<absval name="abs_in1" type="color3">
<input name="in" type="color3" interfacename="in1" />
</absval>
<power name="power" type="color3">
<input name="in1" type="color3" nodename="abs_in1" />
<input name="in2" type="float" interfacename="in2" />
</power>
<multiply name="safepower" type="color3">
<input name="in1" type="color3" nodename="sign_in1" />
<input name="in2" type="color3" nodename="power" />
</multiply>
<output name="out" type="color3" nodename="safepower" />
</nodegraph>
</nodedef>
<nodedef name="ND_safepower_color4FA" node="safepower" nodegroup="math">
<input name="in1" type="color4" value="0.0, 0.0, 0.0, 0.0" />
<input name="in2" type="float" value="1.0" />
<output name="out" type="color4" defaultinput="in1" />

<nodegraph name="NG_safepower_color4FA" >
<sign name="sign_in1" type="color4">
<input name="in" type="color4" interfacename="in1" />
</sign>
<absval name="abs_in1" type="color4">
<input name="in" type="color4" interfacename="in1" />
</absval>
<power name="power" type="color4">
<input name="in1" type="color4" nodename="abs_in1" />
<input name="in2" type="float" interfacename="in2" />
</power>
<multiply name="safepower" type="color4">
<input name="in1" type="color4" nodename="sign_in1" />
<input name="in2" type="color4" nodename="power" />
</multiply>
<output name="out" type="color4" nodename="safepower" />
</nodegraph>

</nodedef>
<nodedef name="ND_safepower_vector2FA" node="safepower" nodegroup="math">
<input name="in1" type="vector2" value="0.0, 0.0" />
<input name="in2" type="float" value="1.0" />
<output name="out" type="vector2" defaultinput="in1" />

<nodegraph name="NG_safepower_vector2FA">
<sign name="sign_in1" type="vector2">
<input name="in" type="vector2" interfacename="in1" />
</sign>
<absval name="abs_in1" type="vector2">
<input name="in" type="vector2" interfacename="in1" />
</absval>
<power name="power" type="vector2">
<input name="in1" type="vector2" nodename="abs_in1" />
<input name="in2" type="float" interfacename="in2" />
</power>
<multiply name="safepower" type="vector2">
<input name="in1" type="vector2" nodename="sign_in1" />
<input name="in2" type="vector2" nodename="power" />
</multiply>
<output name="out" type="vector2" nodename="safepower" />
</nodegraph>

</nodedef>
<nodedef name="ND_safepower_vector3FA" node="safepower" nodegroup="math">
<input name="in1" type="vector3" value="0.0, 0.0, 0.0" />
<input name="in2" type="float" value="1.0" />
<output name="out" type="vector3" defaultinput="in1" />

<nodegraph name="NG_safepower_vector3FA" >
<sign name="sign_in1" type="vector3">
<input name="in" type="vector3" interfacename="in1" />
</sign>
<absval name="abs_in1" type="vector3">
<input name="in" type="vector3" interfacename="in1" />
</absval>
<power name="power" type="vector3">
<input name="in1" type="vector3" nodename="abs_in1" />
<input name="in2" type="float" interfacename="in2" />
</power>
<multiply name="safepower" type="vector3">
<input name="in1" type="vector3" nodename="sign_in1" />
<input name="in2" type="vector3" nodename="power" />
</multiply>
<output name="out" type="vector3" nodename="safepower" />
</nodegraph>

</nodedef>
<nodedef name="ND_safepower_vector4FA" node="safepower" nodegroup="math">
<input name="in1" type="vector4" value="0.0, 0.0, 0.0, 0.0" />
<input name="in2" type="float" value="1.0" />
<output name="out" type="vector4" defaultinput="in1" />

<nodegraph name="NG_safepower_vector4FA">
<sign name="sign_in1" type="vector4">
<input name="in" type="vector4" interfacename="in1" />
</sign>
<absval name="abs_in1" type="vector4">
<input name="in" type="vector4" interfacename="in1" />
</absval>
<power name="power" type="vector4">
<input name="in1" type="vector4" nodename="abs_in1" />
<input name="in2" type="float" interfacename="in2" />
</power>
<multiply name="safepower" type="vector4">
<input name="in1" type="vector4" nodename="sign_in1" />
<input name="in2" type="vector4" nodename="power" />
</multiply>
<output name="out" type="vector4" nodename="safepower" />
</nodegraph>
</nodedef>

<!--
Expand Down
Loading