Beispiel #1
0
    def sv_get(self, default=sentinel, deepcopy=True, implicit_conversions=None):
        if implicit_conversions is None:
            implicit_conversions = FieldImplicitConversionPolicy
        if self.is_linked and not self.is_output:
            source_data = SvGetSocket(self, deepcopy=True if self.needs_data_conversion() else deepcopy)
            return self.convert_data(source_data, implicit_conversions)

        if self.prop_name:
            return [[getattr(self.node, self.prop_name)[:]]]
        elif default is sentinel:
            raise SvNoDataError(self)
        else:
            return default
Beispiel #2
0
 def sv_get(self,
            default=sentinel,
            deepcopy=True,
            implicit_conversions=None):
     if self.is_linked and not self.is_output:
         return self.convert_data(SvGetSocket(self, deepcopy),
                                  implicit_conversions)
     elif self.text:
         return [self.text]
     elif default is sentinel:
         raise SvNoDataError(self)
     else:
         return default
Beispiel #3
0
 def sv_get(self, default=sentinel, deepcopy=True, implicit_conversions=None):
     if self.is_linked and not self.is_output:
         return self.convert_data(SvGetSocket(self, deepcopy), implicit_conversions)
     elif self.object_ref or self.object_ref_pointer:
         # this can be more granular and even attempt to set object_ref_points from object_ref, and then wipe object_ref
         obj_ref = self.node.get_bpy_data_from_name(self.object_ref or self.object_ref_pointer, bpy.data.objects)
         if not obj_ref:
             raise SvNoDataError(self)
         return [obj_ref]
     elif default is sentinel:
         raise SvNoDataError(self)
     else:
         return default
Beispiel #4
0
    def sv_get(self,
               default=sentinel,
               deepcopy=True,
               implicit_conversions=None):
        self.num_matrices = 0
        if self.is_linked and not self.is_output:
            source_data = SvGetSocket(
                self,
                deepcopy=True if self.needs_data_conversion() else deepcopy)
            return self.convert_data(source_data, implicit_conversions)

        elif default is sentinel:
            raise SvNoDataError(self)
        else:
            return default
Beispiel #5
0
    def sv_get(self,
               default=sentinel,
               deepcopy=True,
               implicit_conversions=None):
        if self.is_linked and not self.is_output:
            return self.convert_data(SvGetSocket(self, deepcopy),
                                     implicit_conversions)

        if self.get_prop_name():
            return [[getattr(self.node, self.get_prop_name())[:]]]
        elif self.use_prop:
            return [[self.prop[:]]]
        elif default is sentinel:
            raise SvNoDataError(self)
        else:
            return default
Beispiel #6
0
 def sv_get(self,
            default=sentinel,
            deepcopy=True,
            implicit_conversions=None):
     if self.is_linked and not self.is_output:
         return self.convert_data(SvGetSocket(self, deepcopy),
                                  implicit_conversions)
     elif self.object_ref:
         obj_ref = bpy.data.objects.get(self.object_ref.strip())
         if not obj_ref:
             raise SvNoDataError(self)
         return [obj_ref]
     elif default is sentinel:
         raise SvNoDataError(self)
     else:
         return default
Beispiel #7
0
 def sv_get(self, default=sentinel, deepcopy=True):
     if self.is_linked and not self.is_output:
         return SvGetSocket(self, deepcopy)
     elif self.prop_name:
         # to deal with subtype ANGLE, this solution should be considered temporary...
         _, prop_dict = getattr(self.node.rna_type, self.prop_name, (None, {}))
         subtype = prop_dict.get("subtype", "")
         if subtype == "ANGLE":
             return [[math.degrees(getattr(self.node, self.prop_name))]]
         return [[getattr(self.node, self.prop_name)]]
     elif self.prop_type:
         return [[getattr(self.node, self.prop_type)[self.prop_index]]]
     elif default is not sentinel:
         return default
     else:
         raise SvNoDataError(self)
Beispiel #8
0
    def sv_get(self, default=sentinel, deepcopy=True, implicit_conversions=None):
        # debug("Node %s, socket %s, is_linked: %s, is_output: %s",
        #         self.node.name, self.name, self.is_linked, self.is_output)

        if self.is_linked and not self.is_output:
            return self.convert_data(SvGetSocket(self, deepcopy), implicit_conversions)
        elif self.get_prop_name():
            # to deal with subtype ANGLE, this solution should be considered temporary...
            _, prop_dict = getattr(self.node.rna_type, self.get_prop_name(), (None, {}))
            subtype = prop_dict.get("subtype", "")
            if subtype == "ANGLE":
                return [[math.degrees(getattr(self.node, self.get_prop_name()))]]
            return [[getattr(self.node, self.get_prop_name())]]
        elif self.prop_type:
            return [[getattr(self.node, self.prop_type)[self.prop_index]]]
        elif default is not sentinel:
            return default
        else:
            raise SvNoDataError(self)
Beispiel #9
0
 def sv_get(self, default=sentinel, deepcopy=True, implicit_conversions=None):
     if self.is_linked and not self.is_output:
         return self.convert_data(SvGetSocket(self, deepcopy), implicit_conversions)
     else:
         return [[self.default_value]]
Beispiel #10
0
 def sv_get(self, default=sentinel, deepcopy=True):
     if self.is_linked and not self.is_output:
         return SvGetSocket(self, deepcopy)
     else:
         return [[self.default_value]]