hpp-manipulation-corba  5.0.0
Corba server for manipulation planning
_graph.idl
Go to the documentation of this file.
1 // Copyright (c) 2019, LAAS-CNRS
2 // Authors: Joseph Mirabel (joseph.mirabel@laas.fr)
3 //
4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are
6 // met:
7 //
8 // 1. Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer.
10 //
11 // 2. Redistributions in binary form must reproduce the above copyright
12 // notice, this list of conditions and the following disclaimer in the
13 // documentation and/or other materials provided with the distribution.
14 //
15 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
16 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
17 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
18 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
19 // HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
20 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
21 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
26 // DAMAGE.
27 
28 
29 #ifndef HPP_MANIPULATION_GRAPH_IDL
30 #define HPP_MANIPULATION_GRAPH_IDL
31 
33 #include <hpp/common.idl>
34 #include <hpp/constraints_idl/constraints.idl>
35 #include <hpp/core_idl/steering_methods.idl>
36 #include <hpp/core_idl/path_validations.idl>
37 
38 module hpp {
39  module constraints_idl {
40  interface Implicit;
41  interface LockedJoint;
42  typedef sequence <LockedJoint> LockedJoints;
43  };
44  module core_idl {
45  interface SteeringMethod;
46  interface PathValidation;
47  };
48  module manipulation_idl {
49  module graph_idl {
50  typedef unsigned long long size_t;
51  interface State;
52  typedef sequence<State> States;
53  interface Edge;
54  typedef sequence<Edge> Edges;
55  interface Graph;
56 
57  interface GraphComponent {
58  string name () raises (Error);
59  size_t id () raises (Error);
60 
61  Graph parentGraph () raises (Error);
62 
63  void addNumericalConstraint (in constraints_idl::Implicit nm) raises (Error);
64  void addNumericalCost (in constraints_idl::Implicit nm) raises (Error);
65 
66  constraints_idl::Implicits numericalConstraints () raises (Error);
67 
68  constraints_idl::Implicits numericalCosts () raises (Error);
69 
70  void resetNumericalConstraints () raises (Error);
71 
72  void setSolveLevelByLevel(in boolean input) raises(Error);
73  //-> solveLevelByLevel
74  boolean getSolveLevelByLevel() raises(Error);
75  //-> solveLevelByLevel
76  }; // interface GraphComponent
77 
78  interface StateSelector
79  {
80  string name () raises (Error);
81 
82  Graph parentGraph () raises (Error);
83 
84  States getStates () raises (Error);
85  }; // interface StateSelector
86 
87  interface Graph : GraphComponent
88  {
89  StateSelector getStateSelector () raises (Error);
90  //-> stateSelector
91  GraphComponent get (in size_t id) raises (Error);
92  size_t nbComponents () raises (Error);
93  void initialize () raises (Error);
94 
95  State getState (in floatSeq config) raises (Error);
96  Edges getEdges (in State from, in State to) raises (Error);
97  }; // interface Graph
98 
99  interface State : GraphComponent
100  {
101  boolean contains (in floatSeq config) raises (Error);
102  Edge linkTo (in string name, in State to, in size_type weight) raises (Error);
103 
104  Edges neighborEdges () raises (Error);
105  Edges hiddenNeighbors () raises (Error);
106 
107  core_idl::ConstraintSet configConstraint () raises (Error);
108  }; // interface State
109 
110  interface Edge : GraphComponent
111  {
112  State stateFrom () raises (Error);
113  State stateTo () raises (Error);
114  State getState () raises (Error);
115  //-> state
116  void setState (in State st) raises (Error);
117  //-> state
118  intSeqSeq getRelativeMotion () raises (Error);
119  //* return corbaServer::matrixToIntSeqSeq(getT()->relativeMotion().template cast<CORBA::Long>());
120  floatSeqSeq getSecurityMargins () raises (Error);
121  //-> securityMargins
122  void setSecurityMarginForPair(in size_type row, in size_type col, in value_type margin) raises (Error);
123  //-> securityMarginForPair
124 
125  boolean generateTargetConfig(in floatSeq qStart, inout floatSeq q)
126  raises(Error);
127 
128  core_idl::SteeringMethod getSteeringMethod () raises (Error);
129  //-> steeringMethod
130  core_idl::PathValidation getPathValidation () raises (Error);
131  //-> pathValidation
132 
134  core_idl::ConstraintSet configConstraint () raises (Error);
135  //-> targetConstraint
136 
137  core_idl::ConstraintSet targetConstraint () raises (Error);
138 
139  core_idl::ConstraintSet pathConstraint () raises (Error);
140  }; // interface Edge
141 
142  interface LevelSetEdge : Edge
143  {
144  constraints_idl::Implicits paramConstraints() raises(Error);
145  constraints_idl::Implicits conditionConstraints() raises(Error);
146  boolean generateTargetConfigOnLeaf(in floatSeq qStart,
147  in floatSeq qLeaf,
148  inout floatSeq q) raises(Error);
149  }; // interface LevelSetEdge
150 
151  interface Validation
152  {
153  string str () raises (Error);
154 
155  boolean hasErrors () raises (Error);
156 
157  boolean hasWarnings () raises (Error);
158 
159  stringSeqSeq getCollisionsForNode (in string name) raises (Error);
160  //* std::string _name (name);
161  //* hpp::stringSeqSeq* __return__ (hpp::corbaServer::vectorToStringSeqSeq(getT()->getCollisionsForNode (_name)));
162  //* return __return__;
163 
164  boolean validate (in GraphComponent comp) raises (Error);
165  }; // interface Validation
166  }; // module graph
167  }; // module manipulation
168 }; // module hpp
169 
170 //* #include <hpp/constraints_idl/constraints.hh>
171 //* #include <hpp/core_idl/steering_methods.hh>
172 //* #include <hpp/core_idl/path_validations.hh>
173 //* #include <hpp/manipulation/graph/edge.hh>
174 //* #include <hpp/manipulation/graph/graph.hh>
175 //* #include <hpp/manipulation/graph/state.hh>
176 //* #include <hpp/manipulation/graph/state-selector.hh>
177 //* #include <hpp/manipulation/graph/validation.hh>
178 
179 #endif // HPP_MANIPULATION_STEERING_METHODS_IDL
unsigned long long size_t
Definition: _graph.idl:50
sequence< Edge > Edges
Definition: _graph.idl:53
Definition: client.hh:46
core::ConstraintSet ConstraintSet
Definition: fwd.hh:38
sequence< LockedJoint > LockedJoints
Definition: _graph.idl:41
sequence< State > States
Definition: _graph.idl:51
Definition: _graph.idl:110