Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Tetragramm
GitHub Repository: Tetragramm/opencv
Path: blob/master/modules/gapi/src/api/gnode.cpp
16339 views
1
// This file is part of OpenCV project.
2
// It is subject to the license terms in the LICENSE file found in the top-level directory
3
// of this distribution and at http://opencv.org/license.html.
4
//
5
// Copyright (C) 2018 Intel Corporation
6
7
8
#include "precomp.hpp"
9
#include <cassert>
10
11
#include "api/gnode.hpp"
12
#include "api/gnode_priv.hpp"
13
14
// GNode private implementation
15
cv::GNode::Priv::Priv()
16
: m_shape(NodeShape::EMPTY)
17
{
18
}
19
20
cv::GNode::Priv::Priv(GCall c)
21
: m_shape(NodeShape::CALL), m_spec(c)
22
{
23
}
24
25
cv::GNode::Priv::Priv(ParamTag)
26
: m_shape(NodeShape::PARAM)
27
{
28
}
29
30
cv::GNode::Priv::Priv(ConstTag)
31
: m_shape(NodeShape::CONST_BOUNDED)
32
{
33
}
34
35
// GNode public implementation
36
cv::GNode::GNode()
37
: m_priv(new Priv())
38
{
39
}
40
41
cv::GNode::GNode(const GCall &c)
42
: m_priv(new Priv(c))
43
{
44
}
45
46
cv::GNode::GNode(ParamTag)
47
: m_priv(new Priv(Priv::ParamTag()))
48
{
49
}
50
51
cv::GNode::GNode(ConstTag)
52
: m_priv(new Priv(Priv::ConstTag()))
53
{
54
}
55
56
cv::GNode cv::GNode::Call(const GCall &c)
57
{
58
return GNode(c);
59
}
60
61
cv::GNode cv::GNode::Param()
62
{
63
return GNode(ParamTag());
64
}
65
66
cv::GNode cv::GNode::Const()
67
{
68
return GNode(ConstTag());
69
}
70
71
cv::GNode::Priv& cv::GNode::priv()
72
{
73
return *m_priv;
74
}
75
76
const cv::GNode::Priv& cv::GNode::priv() const
77
{
78
return *m_priv;
79
}
80
81
const cv::GNode::NodeShape& cv::GNode::shape() const
82
{
83
return m_priv->m_shape;
84
}
85
86
const cv::GCall& cv::GNode::call() const
87
{
88
return util::get<GCall>(m_priv->m_spec);
89
}
90
91