Пример #1
0
    def descriptors(self):
        """
        Get the set of descriptor instances contained in this set as a tuple.

        :return: A tuple of the contained descriptor instances.
        :rtype: tuple[Descriptor]
        """
        out_d_array = ctypes.POINTER(Descriptor.c_ptr_type())()
        out_d_array_size = ctypes.c_size_t()

        self._call_cfunc(
            'vital_descriptor_set_get_descriptors',
            [
                self.C_TYPE_PTR,
                ctypes.POINTER(ctypes.POINTER(Descriptor.c_ptr_type())),
                ctypes.POINTER(ctypes.c_size_t)
            ],
            [self,
             ctypes.byref(out_d_array),
             ctypes.byref(out_d_array_size)],
        )

        d_list = []
        for i in range(out_d_array_size.value):
            cptr = Descriptor.c_ptr_type()(out_d_array[i].contents)
            d_list.append(Descriptor(from_cptr=cptr))
        free_void_ptr(out_d_array)

        return d_list
Пример #2
0
    def _new(self, descriptor_list):
        """
        Create a new descriptor set instance from a list of descriptor elements.

        :param descriptor_list: List of child descriptor instance handles.
        :type descriptor_list: list[Descriptor]

        """
        if descriptor_list is None:
            descriptor_list = []
        c_descriptor_array = (Descriptor.c_ptr_type() * len(descriptor_list))(
            *(d.c_pointer for d in descriptor_list))
        return self._call_cfunc(
            'vital_descriptor_set_new',
            [ctypes.POINTER(Descriptor.c_ptr_type()), ctypes.c_size_t],
            [c_descriptor_array, len(descriptor_list)], self.C_TYPE_PTR)
Пример #3
0
 def descriptor(self):
     d_ptr = self._call_cfunc("vital_track_state_descriptor",
                              [self.C_TYPE_PTR], [self],
                              Descriptor.c_ptr_type())
     if d_ptr:
         return Descriptor(from_cptr=d_ptr)
     else:
         return None
Пример #4
0
    def _new(self, frame, feature, descriptor):
        """
        :param feature: Optional Feature instance associated with this state.
        :type feature: vital.types.Feature

        :param descriptor: Optional Descriptor instance associated with this
            state.
        :type descriptor: vital.types.Descriptor
        """
        return self._call_cfunc(
            "vital_feature_track_state_new",
            [ctypes.c_int64, Feature.c_ptr_type(), Descriptor.c_ptr_type()],
            [frame, feature, descriptor],
            self.C_TYPE_PTR
        )