Blame view

3rdparty/opencv-4.5.4/modules/gapi/src/api/gorigin.cpp 1.54 KB
f4334277   Hu Chunming   提交3rdparty
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
  // This file is part of OpenCV project.
  // It is subject to the license terms in the LICENSE file found in the top-level directory
  // of this distribution and at http://opencv.org/license.html.
  //
  // Copyright (C) 2018-2020 Intel Corporation
  
  
  #include "precomp.hpp"
  #include <ade/util/assert.hpp>
  
  #include "api/gorigin.hpp"
  #include "api/gnode_priv.hpp"
  
  cv::GOrigin::GOrigin(GShape s,
                      const cv::GNode& n,
                      std::size_t p,
                      const cv::gimpl::HostCtor c,
                      cv::detail::OpaqueKind k)
      : shape(s), node(n), port(p), ctor(c), kind(k)
  {
  }
  
  cv::GOrigin::GOrigin(GShape s, cv::gimpl::ConstVal v)
      : shape(s), node(cv::GNode::Const()), value(v), port(INVALID_PORT),
        kind(util::holds_alternative<detail::VectorRef>(v)
                 ? util::get<detail::VectorRef>(v).getKind()
                 : cv::detail::OpaqueKind::CV_UNKNOWN)
  {
  }
  
  bool cv::detail::GOriginCmp::operator() (const cv::GOrigin &lhs,
                                           const cv::GOrigin &rhs) const
  {
      const GNode::Priv* lhs_p = &lhs.node.priv();
      const GNode::Priv* rhs_p = &rhs.node.priv();
      if (lhs_p == rhs_p)
      {
          if (lhs.port == rhs.port)
          {
              // A data Origin is uniquely identified by {node/port} pair.
              // The situation when there're two Origins with same {node/port}s
              // but with different shapes (data formats) is illegal!
              GAPI_Assert(lhs.shape == rhs.shape);
          }
          return lhs.port < rhs.port;
      }
      else return lhs_p < rhs_p;
  }