nx_metadata_sdk  1.0
Metadata SDK
object_metadata.h
1 // Copyright 2018-present Network Optix, Inc. Licensed under MPL 2.0: www.mozilla.org/MPL/2.0/
2 
3 #pragma once
4 
5 #include <string>
6 #include <vector>
7 
8 #include <nx/sdk/helpers/attribute.h>
9 #include <nx/sdk/helpers/ref_countable.h>
10 #include <nx/sdk/ptr.h>
11 
12 #include <nx/sdk/uuid.h>
13 #include <nx/sdk/analytics/i_object_metadata.h>
14 #include <nx/sdk/helpers/attribute.h>
15 
16 namespace nx::sdk::analytics {
17 
18 class ObjectMetadata: public RefCountable<IObjectMetadata>
19 {
20 public:
21  virtual const char* typeId() const override;
22  virtual float confidence() const override;
23  virtual const char* subtype() const override;
24  virtual int attributeCount() const override;
25 
26  void setTypeId(std::string typeId);
27  void setConfidence(float confidence);
28  void setTrackId(const Uuid& value);
29  void setSubtype(const std::string& value);
30  void addAttribute(nx::sdk::Ptr<Attribute> attribute);
31  void addAttributes(const std::vector<nx::sdk::Ptr<Attribute>>& value);
32  void addAttributes(std::vector<nx::sdk::Ptr<Attribute>>&& value);
33  void setBoundingBox(const Rect& rect);
34 
35 protected:
36  virtual const IAttribute* getAttribute(int index) const override;
37  virtual void getTrackId(Uuid* outValue) const override;
38  virtual void getBoundingBox(Rect* outValue) const override;
39 
40 private:
41  std::string m_typeId;
42  float m_confidence = 1.0;
43  Uuid m_trackId;
44  std::string m_subtype;
45  std::vector<nx::sdk::Ptr<Attribute>> m_attributes;
46  Rect m_rect;
47 };
48 
49 } // namespace nx::sdk::analytics
Definition: ptr.h:18
Definition: object_metadata.h:18
Definition: consuming_device_agent.cpp:21
Definition: uuid.h:21
Definition: i_attribute.h:9
Definition: ref_countable.h:83
Definition: rect.h:9