Skip to content

Commit 4505159

Browse files
committed
Initial commit of tool to build markdown tables for node specification work. Still very much a work in progress - but commiting this for now to allow others to participate.
1 parent ce0675b commit 4505159

File tree

8 files changed

+608
-32
lines changed

8 files changed

+608
-32
lines changed

CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,8 @@ if (MATERIALX_BUILD_EXPAND_TEMPLATE_ELEMS OR MATERIALX_BUILD_BAKE_NAMED_VALUES)
366366
else()
367367
set(_MaterialXBuildLibrary MaterialXBuildLibrary)
368368
add_subdirectory(source/MaterialXBuildTools/buildLibrary)
369+
add_subdirectory(source/MaterialXBuildTools/buildDocs)
370+
add_subdirectory(dev_spec)
369371
endif()
370372
endif()
371373

dev_spec/CMakeLists.txt

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
2+
3+
set(MATX_LIBRARIES_DIR ${PROJECT_SOURCE_DIR}/libraries)
4+
set(DOCS_OUTPUT_DIR ${PROJECT_SOURCE_DIR}/dev_spec/nodes)
5+
6+
set(MD_SRC_DIR ${PROJECT_SOURCE_DIR}/dev_spec/source)
7+
set(MD_DEST_DIR ${PROJECT_SOURCE_DIR}/dev_spec/dest)
8+
9+
set(NODE_MD_MANIFEST ${DOCS_OUTPUT_DIR}/_manifest.txt)
10+
11+
file(GLOB_RECURSE MATERIALX_DATA_LIBRARY_MTLX_SOURCE_FILES
12+
LIST_DIRECTORIES false
13+
${MATX_LIBRARIES_DIR}/*.mtlx)
14+
15+
file(GLOB_RECURSE MATERIALX_MD_SOURCE_FILES
16+
LIST_DIRECTORIES false
17+
${MD_SRC_DIR}/*.md)
18+
19+
add_custom_command(
20+
OUTPUT ${NODE_MD_MANIFEST}
21+
COMMAND ${CMAKE_COMMAND} -E make_directory ${DOCS_OUTPUT_DIR}
22+
COMMAND ${CMAKE_COMMAND} -E make_directory ${MD_DEST_DIR}
23+
COMMAND MaterialXBuildDocs --sourceLibraryRoot ${MATX_LIBRARIES_DIR} --destDocRoot ${DOCS_OUTPUT_DIR} --sourceMDRoot ${MD_SRC_DIR} --destMDRoot ${MD_DEST_DIR} --manifestFile ${NODE_MD_MANIFEST}
24+
DEPENDS ${MATERIALX_DATA_LIBRARY_MTLX_SOURCE_FILES} ${MATERIALX_MD_SOURCE_FILES} MaterialXBuildDocs
25+
)
26+
27+
add_custom_target(MaterialXBuildSpecNodeTables ALL
28+
DEPENDS ${NODE_MD_MANIFEST})
29+
30+
31+

dev_spec/source/placeholder.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
## Place holder for specification document
2+
3+
To generate the markdown table for the node ports just add the string `@MX_TABLE_<name>@` in the markdown file.
4+
5+
## Nodes Port Tables
6+
7+
### add
8+
@MX_TABLE_add@
9+
10+
### subtract
11+
@MX_TABLE_subtract@
12+
13+
### multiply
14+
@MX_TABLE_multiply@
15+
16+
### divide
17+
@MX_TABLE_divide@
18+
19+
### modulo
20+
@MX_TABLE_modulo@

libraries/stdlib/stdlib_defs.mtlx

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -895,29 +895,29 @@
895895
-->
896896
<template name="TP_ND_add" varName="typeName" options="float, integer, color3, color4, vector2, vector3, vector4">
897897
<nodedef name="ND_add_@typeName@" node="add" nodegroup="math">
898-
<input name="in1" type="@typeName@" value="Value:zero" />
899-
<input name="in2" type="@typeName@" value="Value:zero" />
898+
<input name="in1" type="@typeName@" value="Value:zero" spec_desc="The primary input stream"/>
899+
<input name="in2" type="@typeName@" value="Value:zero" spec_desc="The stream to add to `in1`"/>
900900
<output name="out" type="@typeName@" defaultinput="in1" />
901901
</nodedef>
902902
</template>
903903
<template name="TP_ND_add_matrix" varName="typeName" options="matrix33, matrix44">
904904
<nodedef name="ND_add_@typeName@" node="add" nodegroup="math">
905-
<input name="in1" type="@typeName@" value="Value:one" />
906-
<input name="in2" type="@typeName@" value="Value:zero" />
905+
<input name="in1" type="@typeName@" value="Value:one" spec_desc="The primary input stream"/>
906+
<input name="in2" type="@typeName@" value="Value:zero" spec_desc="The stream to add to `in1`"/>
907907
<output name="out" type="@typeName@" defaultinput="in1" />
908908
</nodedef>
909909
</template>
910910
<template name="TP_ND_addFA" varName="typeName" options="color3, color4, vector2, vector3, vector4">
911911
<nodedef name="ND_add_@typeName@FA" node="add" nodegroup="math">
912-
<input name="in1" type="@typeName@" value="Value:zero" />
913-
<input name="in2" type="float" value="Value:zero" />
912+
<input name="in1" type="@typeName@" value="Value:zero" spec_desc="The primary input stream"/>
913+
<input name="in2" type="float" value="Value:zero" spec_desc="The stream to add to `in1`"/>
914914
<output name="out" type="@typeName@" defaultinput="in1" />
915915
</nodedef>
916916
</template>
917917
<template name="TP_ND_add_matrixFA" varName="typeName" options="matrix33, matrix44">
918918
<nodedef name="ND_add_@typeName@FA" node="add" nodegroup="math">
919-
<input name="in1" type="@typeName@" value="Value:one" />
920-
<input name="in2" type="float" value="Value:zero" />
919+
<input name="in1" type="@typeName@" value="Value:one" spec_desc="The primary input stream"/>
920+
<input name="in2" type="float" value="Value:zero" spec_desc="The stream to add to `in1`"/>
921921
<output name="out" type="@typeName@" defaultinput="in1" />
922922
</nodedef>
923923
</template>
@@ -928,29 +928,29 @@
928928
-->
929929
<template name="TP_ND_subtract" varName="typeName" options="float, integer, color3, color4, vector2, vector3, vector4">
930930
<nodedef name="ND_subtract_@typeName@" node="subtract" nodegroup="math">
931-
<input name="in1" type="@typeName@" value="Value:zero" />
932-
<input name="in2" type="@typeName@" value="Value:zero" />
931+
<input name="in1" type="@typeName@" value="Value:zero" spec_desc="The primary input stream"/>
932+
<input name="in2" type="@typeName@" value="Value:zero" spec_desc="The stream to subtract from `in1`"/>
933933
<output name="out" type="@typeName@" defaultinput="in1" />
934934
</nodedef>
935935
</template>
936936
<template name="TP_ND_subtract_matrix" varName="typeName" options="matrix33, matrix44">
937937
<nodedef name="ND_subtract_@typeName@" node="subtract" nodegroup="math">
938-
<input name="in1" type="@typeName@" value="Value:one" />
939-
<input name="in2" type="@typeName@" value="Value:zero" />
938+
<input name="in1" type="@typeName@" value="Value:one" spec_desc="The primary input stream"/>
939+
<input name="in2" type="@typeName@" value="Value:zero" spec_desc="The stream to subtract from `in1`"/>
940940
<output name="out" type="@typeName@" defaultinput="in1" />
941941
</nodedef>
942942
</template>
943943
<template name="TP_ND_subtractFA" varName="typeName" options="color3, color4, vector2, vector3, vector4">
944944
<nodedef name="ND_subtract_@typeName@FA" node="subtract" nodegroup="math">
945-
<input name="in1" type="@typeName@" value="Value:zero" />
946-
<input name="in2" type="float" value="Value:zero" />
945+
<input name="in1" type="@typeName@" value="Value:zero" spec_desc="The primary input stream"/>
946+
<input name="in2" type="float" value="Value:zero" spec_desc="The stream to subtract from `in1`"/>
947947
<output name="out" type="@typeName@" defaultinput="in1" />
948948
</nodedef>
949949
</template>
950950
<template name="TP_ND_subtract_matrixFA" varName="typeName" options="matrix33, matrix44">
951951
<nodedef name="ND_subtract_@typeName@FA" node="subtract" nodegroup="math">
952-
<input name="in1" type="@typeName@" value="Value:one" />
953-
<input name="in2" type="float" value="Value:zero" />
952+
<input name="in1" type="@typeName@" value="Value:one" spec_desc="The primary input stream"/>
953+
<input name="in2" type="float" value="Value:zero" spec_desc="The stream to subtract from `in1`"/>
954954
<output name="out" type="@typeName@" defaultinput="in1" />
955955
</nodedef>
956956
</template>
@@ -962,22 +962,22 @@
962962
-->
963963
<template name="TP_ND_multiply" varName="typeName" options="float, color3, color4, vector2, vector3, vector4">
964964
<nodedef name="ND_multiply_@typeName@" node="multiply" nodegroup="math">
965-
<input name="in1" type="@typeName@" value="Value:zero" />
966-
<input name="in2" type="@typeName@" value="Value:one" />
965+
<input name="in1" type="@typeName@" value="Value:zero" spec_desc="The primary input stream"/>
966+
<input name="in2" type="@typeName@" value="Value:one" spec_desc="The stream to multiply `in1` by"/>
967967
<output name="out" type="@typeName@" defaultinput="in1" />
968968
</nodedef>
969969
</template>
970970
<template name="TP_ND_multiply_matrix" varName="typeName" options="matrix33, matrix44">
971971
<nodedef name="ND_multiply_@typeName@" node="multiply" nodegroup="math">
972-
<input name="in1" type="@typeName@" value="Value:one" />
973-
<input name="in2" type="@typeName@" value="Value:one" />
972+
<input name="in1" type="@typeName@" value="Value:one" spec_desc="The primary input stream"/>
973+
<input name="in2" type="@typeName@" value="Value:one" spec_desc="The stream to multiply `in1` by"/>
974974
<output name="out" type="@typeName@" defaultinput="in1" />
975975
</nodedef>
976976
</template>
977977
<template name="TP_ND_multiplyFA" varName="typeName" options="color3, color4, vector2, vector3, vector4">
978978
<nodedef name="ND_multiply_@typeName@FA" node="multiply" nodegroup="math">
979-
<input name="in1" type="@typeName@" value="Value:zero" />
980-
<input name="in2" type="float" value="Value:one" />
979+
<input name="in1" type="@typeName@" value="Value:zero" spec_desc="The primary input stream"/>
980+
<input name="in2" type="float" value="Value:one" spec_desc="The stream to multiply `in1` by"/>
981981
<output name="out" type="@typeName@" defaultinput="in1" />
982982
</nodedef>
983983
</template>
@@ -990,22 +990,22 @@
990990
-->
991991
<template name="TP_ND_divide" varName="typeName" options="float, color3, color4, vector2, vector3, vector4">
992992
<nodedef name="ND_divide_@typeName@" node="divide" nodegroup="math">
993-
<input name="in1" type="@typeName@" value="Value:zero" />
994-
<input name="in2" type="@typeName@" value="Value:one" />
993+
<input name="in1" type="@typeName@" value="Value:zero" spec_desc="The primary input stream"/>
994+
<input name="in2" type="@typeName@" value="Value:one" spec_desc="The stream to divide `in1` by"/>
995995
<output name="out" type="@typeName@" defaultinput="in1" />
996996
</nodedef>
997997
</template>
998998
<template name="TP_ND_divide_matrix" varName="typeName" options="matrix33, matrix44">
999999
<nodedef name="ND_divide_@typeName@" node="divide" nodegroup="math">
1000-
<input name="in1" type="@typeName@" value="Value:one" />
1001-
<input name="in2" type="@typeName@" value="Value:one" />
1000+
<input name="in1" type="@typeName@" value="Value:one" spec_desc="The primary input stream"/>
1001+
<input name="in2" type="@typeName@" value="Value:one" spec_desc="The stream to divide `in1` by"/>
10021002
<output name="out" type="@typeName@" defaultinput="in1" />
10031003
</nodedef>
10041004
</template>
10051005
<template name="TP_ND_divideFA" varName="typeName" options="color3, color4, vector2, vector3, vector4">
10061006
<nodedef name="ND_divide_@typeName@FA" node="divide" nodegroup="math">
1007-
<input name="in1" type="@typeName@" value="Value:zero" />
1008-
<input name="in2" type="float" value="Value:one" />
1007+
<input name="in1" type="@typeName@" value="Value:zero" spec_desc="The primary input stream"/>
1008+
<input name="in2" type="float" value="Value:one" spec_desc="The stream to divide `in1` by"/>
10091009
<output name="out" type="@typeName@" defaultinput="in1" />
10101010
</nodedef>
10111011
</template>
@@ -1017,15 +1017,15 @@
10171017
-->
10181018
<template name="TP_ND_modulo" varName="typeName" options="float, color3, color4, vector2, vector3, vector4">
10191019
<nodedef name="ND_modulo_@typeName@" node="modulo" nodegroup="math">
1020-
<input name="in1" type="@typeName@" value="Value:zero" />
1021-
<input name="in2" type="@typeName@" value="Value:one" />
1020+
<input name="in1" type="@typeName@" value="Value:zero" spec_desc="The primary input stream"/>
1021+
<input name="in2" type="@typeName@" value="Value:one" spec_acceptedvalues="`in2` != 0"/>
10221022
<output name="out" type="@typeName@" defaultinput="in1" />
10231023
</nodedef>
10241024
</template>
10251025
<template name="TP_ND_moduloFA" varName="typeName" options="color3, color4, vector2, vector3, vector4">
10261026
<nodedef name="ND_modulo_@typeName@FA" node="modulo" nodegroup="math">
1027-
<input name="in1" type="@typeName@" value="Value:zero" />
1028-
<input name="in2" type="float" value="1.0" />
1027+
<input name="in1" type="@typeName@" value="Value:zero" spec_desc="The primary input stream"/>
1028+
<input name="in2" type="float" value="1.0" spec_acceptedvalues="`in2` != 0"/>
10291029
<output name="out" type="@typeName@" defaultinput="in1" />
10301030
</nodedef>
10311031
</template>

source/MaterialXBuildTools/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,4 @@ add_subdirectory(../MaterialXCore MaterialXCore)
1717
add_subdirectory(../MaterialXFormat MaterialXFormat)
1818

1919
add_subdirectory(buildLibrary)
20+
add_subdirectory(buildDocs)
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
set(TARGET_NAME MaterialXBuildDocs)
2+
3+
file(GLOB materialx_source "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp")
4+
file(GLOB materialx_headers "${CMAKE_CURRENT_SOURCE_DIR}/*.h*")
5+
6+
add_executable(${TARGET_NAME} ${materialx_source} ${materialx_headers})
7+
8+
target_link_libraries(${TARGET_NAME} PRIVATE
9+
MaterialXFormat
10+
MaterialXCore)

0 commit comments

Comments
 (0)