@@ -68,6 +68,33 @@ def AddNodeLink(self, targetNode, targetIndex, sourceNode, SourceIndex):
6868 link = NodeLink (targetNode , targetIndex , sourceNode , SourceIndex )
6969 self .LinkList .append (link )
7070
71+ def prune (self ):
72+ return
73+ print ("---------prune---------" )
74+ while True :
75+ SourceNodes = []
76+ for el in self .LinkList :
77+ if el .SourceNode not in SourceNodes :
78+ SourceNodes .append (el .SourceNode )
79+
80+ DeadNodes = []
81+ for el in self .NodeList :
82+ if el not in SourceNodes :
83+ if (el .Name != "OutputNode" ):
84+ DeadNodes .append (el )
85+ print ("Dead Nodes : %s" % len (DeadNodes ))
86+ for nod in DeadNodes :
87+ print ("Dead node : %s " % nod .Name )
88+ TargetLinks = []
89+ for el in self .LinkList :
90+ if el .TargetNode == nod :
91+ TargetLinks .append (el )
92+ for el in TargetLinks :
93+ self .LinkList .remove (el )
94+ self .NodeList .remove (nod )
95+ if (len (DeadNodes )== 0 ):
96+ break
97+
7198 def Nodes (self ):
7299 return self .Nodes
73100
@@ -110,15 +137,28 @@ def MakeConst(self, var):
110137 print ("Unsupported const type %s(%s)" % (var .Name , var .dataType ))
111138
112139 def MakeGlobal (self ,var ):
113- node = self .CreateNode ('ShaderNodeNewGeometry' )
114140 if var .Name == "N" :
141+ node = self .CreateNode ('ShaderNodeNewGeometry' )
115142 self .SetVar (var , node , 1 )
116143 elif var .Name == "I" :
144+ node = self .CreateNode ('ShaderNodeNewGeometry' )
117145 self .SetVar (var , node , 4 )
118146 elif var .Name == "P" :
147+ node = self .CreateNode ('ShaderNodeNewGeometry' )
119148 self .SetVar (var , node , 0 )
120149 elif var .Name == "Ng" :
150+ node = self .CreateNode ('ShaderNodeNewGeometry' )
121151 self .SetVar (var , node , 3 )
152+ elif var .Name == "u" :
153+ node = self .CreateNode ('ShaderNodeTexCoord' )
154+ Split = self .CreateNode ('ShaderNodeSeparateXYZ' )
155+ self .AddNodeLink (Split , 0 , node , 0 )
156+ self .SetVar (var , Split , 0 )
157+ elif var .Name == "v" :
158+ node = self .CreateNode ('ShaderNodeTexCoord' )
159+ Split = self .CreateNode ('ShaderNodeSeparateXYZ' )
160+ self .AddNodeLink (Split , 0 , node , 0 )
161+ self .SetVar (var , Split , 1 )
122162 else :
123163 print ("Unhandled global %s" % var .Name )
124164
0 commit comments