Image Manager (CVCore.dll) 14.0
IComposite

A dynamic list with a CVCCompositePurpose to group **OBJ**s. More...

Typedefs

typedef void * CVCOMPOSITE
 CVB composite handle. More...
 

Enumerations

enum  CVCCompositePurpose {
  CVCCP_Custom = -1 , CVCCP_Image = 0 , CVCCP_ImageList , CVCCP_MultiAoi ,
  CVCCP_RangeMap , CVCCP_PointCloud , CVCCP_ImageCube
}
 

Functions

cvbres_t CVCCompositeGetAt (CVCOMPOSITE hComposite, cvbdim_t Index, OBJ &hObj)
 Gets the stored element hObj at the given Index in the given composite object. More...
 
cvbres_t CVCCompositeGetCount (CVCOMPOSITE hComposite, cvbdim_t &NumElements)
 Gets the number of elements in the given composite object. More...
 
cvbres_t CVCCompositeGetPurpose (CVCOMPOSITE hComposite, CVCCompositePurpose &Purpose)
 Gets the Purpose of the given composite object. More...
 
cvbres_t CVCCompositeInsertAt (CVCOMPOSITE hComposite, cvbdim_t Index, OBJ hObj)
 Inserts the hObj at the given Index into the given object list. More...
 
cvbres_t CVCCompositeRemoveAt (CVCOMPOSITE hComposite, cvbdim_t Index)
 Removes the element at the given Index in the given composite object. More...
 
CVCOMPOSITE CVCCreateComposite (CVCCompositePurpose Purpose)
 Creates a CVB Composite. More...
 
cvbbool_t CVCIsComposite (CVCOMPOSITE hComposite)
 Gets whether the given hComposite really is a composite object. More...
 

Detailed Description

A dynamic list with a CVCCompositePurpose to group **OBJ**s.

IComposite objects are used to group an arbitrary list of **OBJ**s (i.e. IDisposableTypes, see CVCImg library documentation). As it is itself a IDisposableType, tree like structures are possible. But normally they are used as lists.

The Purpose attribute specifies the grouping reason. You can find additional information about the exact usage of these objects in the libraries using them. For example see CVCore3D library documentation on the CVCCP_PointCloud Purpose.

Typedef Documentation

◆ CVCOMPOSITE

CVB composite handle.

The CVCOMPOSITE is a reference counted OBJ handle. CVCOMPOSITE objects at least implement the IComposite interface.

Enumeration Type Documentation

◆ CVCCompositePurpose

Enumerator
CVCCP_Custom 

Not generically defined use case.

CVCCP_Image 

A single image with (possibly distributed) plane buffers.

See IBuffer and IPFNCBuffer.

CVCCP_ImageList 

Multiple images for e.g. stereo vision.

CVCCP_MultiAoi 

Multiple AOIs (images) from a single sensor.

CVCCP_RangeMap 

2D image containing depth (Z) instead of luminance.

CVCCP_PointCloud 

Sparse point cloud (list of points).

See CVCore3D library documentation for more details.

CVCCP_ImageCube 

A logical stack of images.

The planes of the IImageVPA do not correspond to color, but to different data like spectral frequencies.

Function Documentation

◆ CVCCompositeGetAt()

cvbres_t CVCCompositeGetAt ( CVCOMPOSITE  hComposite,
cvbdim_t  Index,
OBJ &  hObj 
)

Gets the stored element hObj at the given Index in the given composite object.

Attention
If successful, the returned hObj will have a by one increased reference count. Thus free the object via ReleaseObject(OBJ &) if not needed anymore.
Parameters
[in]hCompositeHandle of composite object to query.
[in]IndexZero based index of element to be retrieved.
[out]hObjVariable to receive the element handle.
Returns
  • #CVC_ERROR (#CVC_E_OK) on success
  • #CVC_ERROR (#CVC_E_WRONGOBJECT) if hComposite is not an CVCOMPOSITE
  • #CVC_ERROR (#CVC_E_INVALIDINDEX) if Index is out of bounds

◆ CVCCompositeGetCount()

cvbres_t CVCCompositeGetCount ( CVCOMPOSITE  hComposite,
cvbdim_t &  NumElements 
)

Gets the number of elements in the given composite object.

Parameters
[in]hCompositeHandle of composite object to query.
[out]NumElementsNumber of elements in the hComposite object.
Returns
  • #CVC_ERROR (#CVC_E_OK) on success
  • #CVC_ERROR (#CVC_E_WRONGOBJECT) if hComposite is not an CVCOMPOSITE

◆ CVCCompositeGetPurpose()

cvbres_t CVCCompositeGetPurpose ( CVCOMPOSITE  hComposite,
CVCCompositePurpose Purpose 
)

Gets the Purpose of the given composite object.

Parameters
[in]hCompositeHandle of the composite object to query.
[out]PurposeThe purpose of the given hComposite
Returns
  • #CVC_ERROR (#CVC_E_OK) on success
  • #CVC_ERROR (#CVC_E_WRONGOBJECT) if hComposite is not an CVCOMPOSITE

◆ CVCCompositeInsertAt()

cvbres_t CVCCompositeInsertAt ( CVCOMPOSITE  hComposite,
cvbdim_t  Index,
OBJ  hObj 
)

Inserts the hObj at the given Index into the given object list.

If you want to append to the composite object, insert at the index equaling the number of elements in the list:

Example
cvbres_t CompositeAppend(CVCOMPOSITE hComposite, OBJ hObj)
{
size_t numElements = 0;
if(cvbres_t error = CVCCompositeGetCount(hComposite, numElements))
return error;
return CVCCompositeInsertAt(hComposite, numElements, hObj);
}
cvbres_t CVCCompositeInsertAt(CVCOMPOSITE hComposite, cvbdim_t Index, OBJ hObj)
Inserts the hObj at the given Index into the given object list.
Definition: CompositeExports.cpp:268
void * CVCOMPOSITE
CVB composite handle.
Definition: CVTypesCore.h:86
cvbres_t CVCCompositeGetCount(CVCOMPOSITE hComposite, cvbdim_t &NumElements)
Gets the number of elements in the given composite object.
Definition: CompositeExports.cpp:185
Attention
If successful the composite object will take part in ownership of the given hObj and increase the reference count by one.
Parameters
[in]hCompositeHandle of composite object to insert into.
[in]IndexZero based index of where to insert the element.
[out]hObjVariable to receive the element handle
Returns
  • #CVC_ERROR (#CVC_E_OK) on success
  • #CVC_ERROR (#CVC_E_WRONGOBJECT) if hComposite is not an CVCOMPOSITE
  • #CVC_ERROR (#CVC_E_INVALIDINDEX) if Index is out of bounds
  • #CVC_ERROR (#CVC_E_PARAMETER) if hObj is not a valid CVB object

◆ CVCCompositeRemoveAt()

cvbres_t CVCCompositeRemoveAt ( CVCOMPOSITE  hComposite,
cvbdim_t  Index 
)

Removes the element at the given Index in the given composite object.

Attention
Successful removing an object will decrease its reference count by one.
Parameters
[in]hCompositeHandle of composite object to remove from.
[in]IndexZero based index of where to remove the element.
Returns
  • #CVC_ERROR (#CVC_E_OK) on success
  • #CVC_ERROR (#CVC_E_WRONGOBJECT) if hComposite is not an CVCOMPOSITE
  • #CVC_ERROR (#CVC_E_INVALIDINDEX) if Index is out of bounds

◆ CVCCreateComposite()

CVCOMPOSITE CVCCreateComposite ( CVCCompositePurpose  Purpose)

Creates a CVB Composite.

A composite aggregates several other CVB OBJ handles and shares their life time.

Attention
Release the returned object handle with ReleaseObject if not needed anymore.
Parameters
[in]PurposeThe purpose of the composite to be created.
Returns
Handle to a new, empty hierarchical data container; NULL on error.

◆ CVCIsComposite()

cvbbool_t CVCIsComposite ( CVCOMPOSITE  hComposite)

Gets whether the given hComposite really is a composite object.

Parameters
[in]hCompositeHandle to check.
Returns
true if hComposite points to a valid composite; false if not.