Atoms Crowd  4.1.0
Ports.h
1 #pragma once
2 // ===========================================================================
3 // Copyright (c) 2015 Toolchefs Ltd. All rights reserved.
4 //
5 // Use of this software is subject to the terms of the Toolchefs license
6 // agreement provided at the time of installation or download, or which
7 // otherwise accompanies this software in either electronic or hard copy form.
8 // ===========================================================================
9 
10 #include <AtomsUtils/Curve.h>
11 #include <AtomsUtils/Mesh.h>
12 #include <AtomsUtils/Image.h>
13 #include <AtomsGraph/PortTraits.h>
14 #include <AtomsGraph/PortTemplate.h>
15 
16 #include <vector>
17 
18 namespace AtomsGraph
19 {
20 
21  typedef PortTemplate<bool> BooleanPort;
22 
23  typedef std::vector<bool> BooleanVector;
24  typedef PortTemplate<BooleanVector> BooleanArrayPort;
25 
26 
27  typedef PortTemplate<long> LongPort;
28 
29  typedef std::vector<long> LongVector;
30  typedef PortTemplate<LongVector> LongArrayPort;
31 
32 
33  typedef PortTemplate<double> DoublePort;
34 
35  typedef std::vector<double> DoubleVector;
36  typedef PortTemplate<DoubleVector> DoubleArrayPort;
37 
38 
39  typedef PortTemplate<std::string> StringPort;
40 
41  typedef std::vector<std::string> StringVector;
42  typedef PortTemplate<StringVector> StringArrayPort;
43 
44 
45  typedef PortTemplate<AtomsMath::Matrix> MatrixPort;
46 
47  typedef std::vector<AtomsMath::Matrix> MatrixVector;
48  typedef PortTemplate<MatrixVector> MatrixArrayPort;
49 
50  typedef PortTemplate<AtomsMath::Vector3> VectorPort;
51 
52  typedef std::vector<AtomsMath::Vector3> Vector3dVector;
53  typedef PortTemplate<Vector3dVector> VectorArrayPort;
54 
55  typedef PortTemplate<AtomsMath::Quaternion> QuaternionPort;
56 
57  typedef std::vector<AtomsMath::Quaternion> QuaternionVector;
58  typedef PortTemplate<QuaternionVector> QuaternionArrayPort;
59 
60  typedef AtomsUtils::Curve* CurveRef;
61  typedef PortTemplate<CurveRef> CurveRefPort;
62 
63  typedef PortTemplate<AtomsUtils::Curve> CurvePort;
64  typedef std::vector<AtomsUtils::Curve> CurveVector;
65  typedef PortTemplate<CurveVector> CurveArrayPort;
66 
67  typedef AtomsUtils::Mesh* MeshRef;
68  typedef PortTemplate<MeshRef> MeshRefPort;
69 
70  typedef PortTemplate<AtomsUtils::Mesh> MeshPort;
71  typedef std::vector<AtomsUtils::Mesh> MeshVector;
72  typedef PortTemplate<MeshVector> MeshArrayPort;
73 
74  typedef PortTemplate<AtomsUtils::Image> ImagePort;
75 
76  template<> ATOMSGRAPH_EXPORT std::string BooleanPort::staticTypeStr();
77  template<> ATOMSGRAPH_EXPORT std::string BooleanArrayPort::staticTypeStr();
78  template<> ATOMSGRAPH_EXPORT std::string LongPort::staticTypeStr();
79  template<> ATOMSGRAPH_EXPORT std::string LongArrayPort::staticTypeStr();
80  template<> ATOMSGRAPH_EXPORT std::string DoublePort::staticTypeStr();
81  template<> ATOMSGRAPH_EXPORT std::string DoubleArrayPort::staticTypeStr();
82  template<> ATOMSGRAPH_EXPORT std::string StringPort::staticTypeStr();
83  template<> ATOMSGRAPH_EXPORT std::string StringArrayPort::staticTypeStr();
84  template<> ATOMSGRAPH_EXPORT std::string MatrixPort::staticTypeStr();
85  template<> ATOMSGRAPH_EXPORT std::string MatrixArrayPort::staticTypeStr();
86  template<> ATOMSGRAPH_EXPORT std::string VectorPort::staticTypeStr();
87  template<> ATOMSGRAPH_EXPORT std::string VectorArrayPort::staticTypeStr();
88  template<> ATOMSGRAPH_EXPORT std::string QuaternionPort::staticTypeStr();
89  template<> ATOMSGRAPH_EXPORT std::string QuaternionArrayPort::staticTypeStr();
90  template<> ATOMSGRAPH_EXPORT std::string CurveRefPort::staticTypeStr();
91  template<> ATOMSGRAPH_EXPORT std::string CurvePort::staticTypeStr();
92  template<> ATOMSGRAPH_EXPORT std::string CurveArrayPort::staticTypeStr();
93  template<> ATOMSGRAPH_EXPORT std::string MeshPort::staticTypeStr();
94  template<> ATOMSGRAPH_EXPORT std::string MeshRefPort::staticTypeStr();
95  template<> ATOMSGRAPH_EXPORT std::string MeshArrayPort::staticTypeStr();
96  template<> ATOMSGRAPH_EXPORT std::string ImagePort::staticTypeStr();
97 
98 #ifdef _WIN32
99  template class ATOMSGRAPH_EXPORT PortTemplate<bool>;
100  template class ATOMSGRAPH_EXPORT PortTemplate<BooleanVector>;
101  template class ATOMSGRAPH_EXPORT PortTemplate<long>;
102  template class ATOMSGRAPH_EXPORT PortTemplate<LongVector>;
103  template class ATOMSGRAPH_EXPORT PortTemplate<double>;
104  template class ATOMSGRAPH_EXPORT PortTemplate<DoubleVector>;
105  template class ATOMSGRAPH_EXPORT PortTemplate<std::string>;
106  template class ATOMSGRAPH_EXPORT PortTemplate<StringVector>;
107  template class ATOMSGRAPH_EXPORT PortTemplate<AtomsMath::Matrix>;
108  template class ATOMSGRAPH_EXPORT PortTemplate<MatrixVector>;
109  template class ATOMSGRAPH_EXPORT PortTemplate<AtomsMath::Vector3>;
110  template class ATOMSGRAPH_EXPORT PortTemplate<Vector3dVector>;
111  template class ATOMSGRAPH_EXPORT PortTemplate<AtomsMath::Quaternion>;
112  template class ATOMSGRAPH_EXPORT PortTemplate<QuaternionVector>;
113  template class ATOMSGRAPH_EXPORT PortTemplate<CurveRef>;
114  template class ATOMSGRAPH_EXPORT PortTemplate<AtomsUtils::Curve>;
115  template class ATOMSGRAPH_EXPORT PortTemplate<CurveVector>;
116  template class ATOMSGRAPH_EXPORT PortTemplate<AtomsUtils::Mesh>;
117  template class ATOMSGRAPH_EXPORT PortTemplate<MeshRef>;
118  template class ATOMSGRAPH_EXPORT PortTemplate<MeshVector>;
119  template class ATOMSGRAPH_EXPORT PortTemplate<AtomsUtils::Image>;
120 #endif
121 
122 
123 
124 }
AtomsGraph::PortTemplate< bool >::staticTypeStr
static std::string staticTypeStr()
Gets the type string of this node type.
AtomsUtils::Curve
Nurbs curve.
Definition: Curve.h:18
AtomsGraph
AtomsGraph namespace.
Definition: PosePort.h:15
AtomsUtils::Mesh
Mesh class.
Definition: Mesh.h:30