예제 #1
0
    def process(self):
        """
        [ ] provide virtual Shape index shifting,
              - shifts the vertices in-situ of A or B to match the other
              - to avoid awkward surface twisting.
        [ ] hide dummy objects option.   seems tricky. or ugly.  use the outliner for now.
        """
        if not all([self.active, self.construct_name]):
            return

        construct = lambda: None
        construct.complete = False
        try:
            construct.name = self.construct_name
            construct.factors = self.inputs["Factor"].sv_get()[0]
            construct.shape_a = self.inputs["Shape A"].sv_get()[0]
            construct.shape_b = self.inputs["Shape B"].sv_get()[0]
            construct.traject = self.inputs["Trajectory"].sv_get()[0]
            construct.complete = True

        finally:
            if not construct.complete:
                return

            set_sv_depsgraph_need(True)
            with self.sv_throttle_tree_update():
                v, e, f = self.sweep_between(construct)
                self.outputs['Verts'].sv_set([v])
                self.outputs['Edges'].sv_set([e])
                self.outputs['Faces'].sv_set([f])
예제 #2
0
 def sv_init(self, context):
     self.inputs.new('SvObjectSocket', "Object")
     self.inputs.new('SvVerticesSocket', "Velocity")
     self.inputs.new('SvVerticesSocket', "Location")
     self.inputs.new('SvStringsSocket',  "Size")
     self.outputs.new('SvVerticesSocket', "outLocation")
     self.outputs.new('SvVerticesSocket', "outVelocity")
     set_sv_depsgraph_need()
예제 #3
0
 def sv_free(self):
     set_sv_depsgraph_need(False)
예제 #4
0
 def modifiers_handle(self, context):
     set_sv_depsgraph_need(self.modifiers)
     updateNode(self, context)