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])
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()
def sv_free(self): set_sv_depsgraph_need(False)
def modifiers_handle(self, context): set_sv_depsgraph_need(self.modifiers) updateNode(self, context)