/// Gets the target uid. A target uid is useful in cloud based algorithms. If no cloud is used, you can set this uid in the json config as an alternative method to distinguish from targets.
/// </summary>
voideasyar_ImageTargetParameters_uid(easyar_ImageTargetParameters*This,/* OUT */easyar_String**Return);
/// Creates a target from an image file. If not needed, name, uid, meta can be passed with empty string, and scale can be passed with default value 1. Jpeg and png files are supported.
/// </summary>
voideasyar_ImageTarget_createFromImageFile(easyar_String*path,easyar_StorageTypestorageType,easyar_String*name,easyar_String*uid,easyar_String*meta,floatscale,/* OUT */easyar_OptionalOfImageTarget*Return);
/// <summary>
/// The scale of image. The value is the physical image width divided by 1 meter. The default value is 1.
/// Sets image target scale, this will overwrite the value set in the json file or the default value. The value is the physical image width divided by 1 meter. The default value is 1.
/// It is needed to set the model scale in rendering engine separately.
/// Returns the target uid. A target uid is useful in cloud based algorithms. If no cloud is used, you can set this uid in the json config as a alternative method to distinguish from targets.
/// </summary>
voideasyar_ImageTarget_uid(consteasyar_ImageTarget*This,/* OUT */easyar_String**Return);
/// <summary>
/// Returns the target name. Name is used to distinguish targets in a json file.
/// </summary>
voideasyar_ImageTarget_name(consteasyar_ImageTarget*This,/* OUT */easyar_String**Return);
/// <summary>
/// Set name. It will erase previously set data or data from cloud.
/// Gets target name. It can be used to distinguish targets.
/// </summary>
voidname(/* OUT */String**Return);
/// <summary>
/// Sets target name.
/// </summary>
voidsetName(String*name);
/// <summary>
/// Gets the target uid. A target uid is useful in cloud based algorithms. If no cloud is used, you can set this uid in the json config as an alternative method to distinguish from targets.
/// </summary>
voiduid(/* OUT */String**Return);
/// <summary>
/// Sets target uid.
/// </summary>
voidsetUid(String*uid);
/// <summary>
/// Gets meta data.
/// </summary>
voidmeta(/* OUT */String**Return);
/// <summary>
/// Sets meta data。
/// </summary>
voidsetMeta(String*meta);
/// <summary>
/// Gets the scale of image. The value is the physical image width divided by 1 meter. The default value is 1.
/// </summary>
floatscale();
/// <summary>
/// Sets the scale of image. The value is the physical image width divided by 1 meter. The default value is 1.
/// It is needed to set the model scale in rendering engine separately.
/// </summary>
voidsetScale(floatscale);
};
/// <summary>
/// ImageTarget represents planar image targets that can be tracked by `ImageTracker`_ .
/// The fields of ImageTarget need to be filled with the create... method before it can be read. And ImageTarget can be tracked by `ImageTracker`_ after a successful load into the `ImageTracker`_ using `ImageTracker.loadTarget`_ .
staticvoidcreateFromParameters(ImageTargetParameters*parameters,/* OUT */ImageTarget**Return);
/// <summary>
/// Creates a target from an etd file.
/// </summary>
staticvoidcreateFromTargetFile(String*path,StorageTypestorageType,/* OUT */ImageTarget**Return);
/// <summary>
/// Creates a target from an etd data buffer.
/// </summary>
staticvoidcreateFromTargetData(Buffer*buffer,/* OUT */ImageTarget**Return);
/// <summary>
/// Saves as an etd file.
/// </summary>
boolsave(String*path);
/// <summary>
/// Creates a target from an image file. If not needed, name, uid, meta can be passed with empty string, and scale can be passed with default value 1. Jpeg and png files are supported.
/// </summary>
staticvoidcreateFromImageFile(String*path,StorageTypestorageType,String*name,String*uid,String*meta,floatscale,/* OUT */ImageTarget**Return);
/// <summary>
/// The scale of image. The value is the physical image width divided by 1 meter. The default value is 1.
/// </summary>
floatscale();
/// <summary>
/// The aspect ratio of image, width divided by height.
/// </summary>
floataspectRatio();
/// <summary>
/// Sets image target scale, this will overwrite the value set in the json file or the default value. The value is the physical image width divided by 1 meter. The default value is 1.
/// It is needed to set the model scale in rendering engine separately.
/// </summary>
boolsetScale(floatscale);
/// <summary>
/// Returns a list of images that stored in the target. It is generally used to get image data from cloud returned target.
/// </summary>
voidimages(/* OUT */ListOfImage**Return);
/// <summary>
/// Returns the target id. A target id is a integer number generated at runtime. This id is non-zero and increasing globally.
/// </summary>
intruntimeID();
/// <summary>
/// Returns the target uid. A target uid is useful in cloud based algorithms. If no cloud is used, you can set this uid in the json config as a alternative method to distinguish from targets.
/// </summary>
voiduid(/* OUT */String**Return);
/// <summary>
/// Returns the target name. Name is used to distinguish targets in a json file.
/// </summary>
voidname(/* OUT */String**Return);
/// <summary>
/// Set name. It will erase previously set data or data from cloud.
/// </summary>
voidsetName(String*name);
/// <summary>
/// Returns the meta data set by setMetaData. Or, in a cloud returned target, returns the meta data set in the cloud server.
/// </summary>
voidmeta(/* OUT */String**Return);
/// <summary>
/// Set meta data. It will erase previously set data or data from cloud.
/// </summary>
voidsetMeta(String*data);
staticvoidtryCastFromTarget(Target*v,/* OUT */ImageTarget**Return);
/// Gets target name. It can be used to distinguish targets.
/// </summary>
-(NSString*)name;
/// <summary>
/// Sets target name.
/// </summary>
-(void)setName:(NSString*)name;
/// <summary>
/// Gets the target uid. A target uid is useful in cloud based algorithms. If no cloud is used, you can set this uid in the json config as an alternative method to distinguish from targets.
/// </summary>
-(NSString*)uid;
/// <summary>
/// Sets target uid.
/// </summary>
-(void)setUid:(NSString*)uid;
/// <summary>
/// Gets meta data.
/// </summary>
-(NSString*)meta;
/// <summary>
/// Sets meta data。
/// </summary>
-(void)setMeta:(NSString*)meta;
/// <summary>
/// Gets the scale of image. The value is the physical image width divided by 1 meter. The default value is 1.
/// </summary>
-(float)scale;
/// <summary>
/// Sets the scale of image. The value is the physical image width divided by 1 meter. The default value is 1.
/// It is needed to set the model scale in rendering engine separately.
/// </summary>
-(void)setScale:(float)scale;
@end
/// <summary>
/// ImageTarget represents planar image targets that can be tracked by `ImageTracker`_ .
/// The fields of ImageTarget need to be filled with the create... method before it can be read. And ImageTarget can be tracked by `ImageTracker`_ after a successful load into the `ImageTracker`_ using `ImageTracker.loadTarget`_ .
/// Creates a target from an image file. If not needed, name, uid, meta can be passed with empty string, and scale can be passed with default value 1. Jpeg and png files are supported.
/// The scale of image. The value is the physical image width divided by 1 meter. The default value is 1.
/// </summary>
-(float)scale;
/// <summary>
/// The aspect ratio of image, width divided by height.
/// </summary>
-(float)aspectRatio;
/// <summary>
/// Sets image target scale, this will overwrite the value set in the json file or the default value. The value is the physical image width divided by 1 meter. The default value is 1.
/// It is needed to set the model scale in rendering engine separately.
/// </summary>
-(bool)setScale:(float)scale;
/// <summary>
/// Returns a list of images that stored in the target. It is generally used to get image data from cloud returned target.
/// </summary>
-(NSArray<easyar_Image*>*)images;
/// <summary>
/// Returns the target id. A target id is a integer number generated at runtime. This id is non-zero and increasing globally.
/// </summary>
-(int)runtimeID;
/// <summary>
/// Returns the target uid. A target uid is useful in cloud based algorithms. If no cloud is used, you can set this uid in the json config as a alternative method to distinguish from targets.
/// </summary>
-(NSString*)uid;
/// <summary>
/// Returns the target name. Name is used to distinguish targets in a json file.
/// </summary>
-(NSString*)name;
/// <summary>
/// Set name. It will erase previously set data or data from cloud.
/// </summary>
-(void)setName:(NSString*)name;
/// <summary>
/// Returns the meta data set by setMetaData. Or, in a cloud returned target, returns the meta data set in the cloud server.
/// </summary>
-(NSString*)meta;
/// <summary>
/// Set meta data. It will erase previously set data or data from cloud.
voideasyar_ImageTracker_outputFrameSource(easyar_ImageTracker*This,/* OUT */easyar_OutputFrameSource**Return);
/// <summary>
/// Creates an instance. The default track mode is `ImageTrackerMode.PreferQuality`_ .
/// </summary>
voideasyar_ImageTracker_create(/* OUT */easyar_ImageTracker**Return);
/// <summary>
/// Creates an instance with a specified track mode. On lower-end phones, `ImageTrackerMode.PreferPerformance`_ can be used to keep a better performance with a little quality loss.
/// </summary>
voideasyar_ImageTracker_createWithMode(easyar_ImageTrackerModetrackMode,/* OUT */easyar_ImageTracker**Return);
/// Load a `Target`_ into the tracker. A Target can only be tracked by tracker after a successful load.
/// This method is an asynchronous method. A load operation may take some time to finish and detection of a new/lost target may take more time during the load. The track time after detection will not be affected. If you want to know the load result, you have to handle the callback data. The callback will be called from the thread specified by `CallbackScheduler`_ . It will not block the track thread or any other operations except other load/unload.
/// This method is an asynchronous method. An unload operation may take some time to finish and detection of a new/lost target may take more time during the unload. If you want to know the unload result, you have to handle the callback data. The callback will be called from the thread specified by `CallbackScheduler`_ . It will not block the track thread or any other operations except other load/unload.
/// Returns current loaded targets in the tracker. If an asynchronous load/unload is in progress, the returned value will not reflect the result until all load/unload finish.
/// </summary>
voideasyar_ImageTracker_targets(consteasyar_ImageTracker*This,/* OUT */easyar_ListOfTarget**Return);
/// <summary>
/// Sets the max number of targets which will be the simultaneously tracked by the tracker. The default value is 1.
staticvoidtryCastFromFrameFilterResult(FrameFilterResult*v,/* OUT */ImageTrackerResult**Return);
staticvoidtryCastFromTargetTrackerResult(TargetTrackerResult*v,/* OUT */ImageTrackerResult**Return);
};
/// <summary>
/// ImageTracker implements image target detection and tracking.
/// ImageTracker occupies (1 + SimultaneousNum) buffers of camera. Use setBufferCapacity of camera to set an amount of buffers that is not less than the sum of amount of buffers occupied by all components. Refer to `Overview <Overview.html>`__ .
/// After creation, you can call start/stop to enable/disable the track process. start and stop are very lightweight calls.
/// When the component is not needed anymore, call close function to close it. It shall not be used after calling close.
/// ImageTracker inputs `FeedbackFrame`_ from feedbackFrameSink. `FeedbackFrameSource`_ shall be connected to feedbackFrameSink for use. Refer to `Overview <Overview.html>`__ .
/// Before a `Target`_ can be tracked by ImageTracker, you have to load it using loadTarget/unloadTarget. You can get load/unload results from callbacks passed into the interfaces.
/// `FeedbackFrame`_ input port. The InputFrame member of FeedbackFrame must have raw image, timestamp, and camera parameters.
/// </summary>
voidfeedbackFrameSink(/* OUT */FeedbackFrameSink**Return);
/// <summary>
/// Camera buffers occupied in this component.
/// </summary>
intbufferRequirement();
/// <summary>
/// `OutputFrame`_ output port.
/// </summary>
voidoutputFrameSource(/* OUT */OutputFrameSource**Return);
/// <summary>
/// Creates an instance. The default track mode is `ImageTrackerMode.PreferQuality`_ .
/// </summary>
staticvoidcreate(/* OUT */ImageTracker**Return);
/// <summary>
/// Creates an instance with a specified track mode. On lower-end phones, `ImageTrackerMode.PreferPerformance`_ can be used to keep a better performance with a little quality loss.
/// </summary>
staticvoidcreateWithMode(ImageTrackerModetrackMode,/* OUT */ImageTracker**Return);
/// <summary>
/// Starts the track algorithm.
/// </summary>
boolstart();
/// <summary>
/// Stops the track algorithm. Call start to start the track again.
/// </summary>
voidstop();
/// <summary>
/// Close. The component shall not be used after calling close.
/// </summary>
voidclose();
/// <summary>
/// Load a `Target`_ into the tracker. A Target can only be tracked by tracker after a successful load.
/// This method is an asynchronous method. A load operation may take some time to finish and detection of a new/lost target may take more time during the load. The track time after detection will not be affected. If you want to know the load result, you have to handle the callback data. The callback will be called from the thread specified by `CallbackScheduler`_ . It will not block the track thread or any other operations except other load/unload.
/// This method is an asynchronous method. An unload operation may take some time to finish and detection of a new/lost target may take more time during the unload. If you want to know the unload result, you have to handle the callback data. The callback will be called from the thread specified by `CallbackScheduler`_ . It will not block the track thread or any other operations except other load/unload.
/// Returns current loaded targets in the tracker. If an asynchronous load/unload is in progress, the returned value will not reflect the result until all load/unload finish.
/// </summary>
voidtargets(/* OUT */ListOfTarget**Return);
/// <summary>
/// Sets the max number of targets which will be the simultaneously tracked by the tracker. The default value is 1.
/// </summary>
boolsetSimultaneousNum(intnum);
/// <summary>
/// Gets the max number of targets which will be the simultaneously tracked by the tracker. The default value is 1.
/// ImageTracker implements image target detection and tracking.
/// ImageTracker occupies (1 + SimultaneousNum) buffers of camera. Use setBufferCapacity of camera to set an amount of buffers that is not less than the sum of amount of buffers occupied by all components. Refer to `Overview <Overview.html>`__ .
/// After creation, you can call start/stop to enable/disable the track process. start and stop are very lightweight calls.
/// When the component is not needed anymore, call close function to close it. It shall not be used after calling close.
/// ImageTracker inputs `FeedbackFrame`_ from feedbackFrameSink. `FeedbackFrameSource`_ shall be connected to feedbackFrameSink for use. Refer to `Overview <Overview.html>`__ .
/// Before a `Target`_ can be tracked by ImageTracker, you have to load it using loadTarget/unloadTarget. You can get load/unload results from callbacks passed into the interfaces.
/// </summary>
@interfaceeasyar_ImageTracker:easyar_RefBase
+(instancetype)newNS_UNAVAILABLE;
-(instancetype)initNS_UNAVAILABLE;
/// <summary>
/// Returns true.
/// </summary>
+(bool)isAvailable;
/// <summary>
/// `FeedbackFrame`_ input port. The InputFrame member of FeedbackFrame must have raw image, timestamp, and camera parameters.
/// </summary>
-(easyar_FeedbackFrameSink*)feedbackFrameSink;
/// <summary>
/// Camera buffers occupied in this component.
/// </summary>
-(int)bufferRequirement;
/// <summary>
/// `OutputFrame`_ output port.
/// </summary>
-(easyar_OutputFrameSource*)outputFrameSource;
/// <summary>
/// Creates an instance. The default track mode is `ImageTrackerMode.PreferQuality`_ .
/// </summary>
+(easyar_ImageTracker*)create;
/// <summary>
/// Creates an instance with a specified track mode. On lower-end phones, `ImageTrackerMode.PreferPerformance`_ can be used to keep a better performance with a little quality loss.
/// Stops the track algorithm. Call start to start the track again.
/// </summary>
-(void)stop;
/// <summary>
/// Close. The component shall not be used after calling close.
/// </summary>
-(void)close;
/// <summary>
/// Load a `Target`_ into the tracker. A Target can only be tracked by tracker after a successful load.
/// This method is an asynchronous method. A load operation may take some time to finish and detection of a new/lost target may take more time during the load. The track time after detection will not be affected. If you want to know the load result, you have to handle the callback data. The callback will be called from the thread specified by `CallbackScheduler`_ . It will not block the track thread or any other operations except other load/unload.
/// This method is an asynchronous method. An unload operation may take some time to finish and detection of a new/lost target may take more time during the unload. If you want to know the unload result, you have to handle the callback data. The callback will be called from the thread specified by `CallbackScheduler`_ . It will not block the track thread or any other operations except other load/unload.
/// Returns current loaded targets in the tracker. If an asynchronous load/unload is in progress, the returned value will not reflect the result until all load/unload finish.
/// </summary>
-(NSArray<easyar_Target*>*)targets;
/// <summary>
/// Sets the max number of targets which will be the simultaneously tracked by the tracker. The default value is 1.
/// </summary>
-(bool)setSimultaneousNum:(int)num;
/// <summary>
/// Gets the max number of targets which will be the simultaneously tracked by the tracker. The default value is 1.