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
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)
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
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 )