hpp-manipulation-corba  4.9.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 // This file is part of hpp-manipulation-corba.
5 // hpp-manipulation-corba is free software: you can redistribute it
6 // and/or modify it under the terms of the GNU Lesser General Public
7 // License as published by the Free Software Foundation, either version
8 // 3 of the License, or (at your option) any later version.
9 //
10 // hpp-manipulation-corba is distributed in the hope that it will be
11 // useful, but WITHOUT ANY WARRANTY; without even the implied warranty
12 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 // General Lesser Public License for more details. You should have
14 // received a copy of the GNU Lesser General Public License along with
15 // hpp-manipulation-corba. If not, see <http://www.gnu.org/licenses/>.
16 
17 
18 #ifndef HPP_MANIPULATION_GRAPH_IDL
19 #define HPP_MANIPULATION_GRAPH_IDL
20 
22 #include <hpp/common.idl>
26 
27 module hpp {
28  module constraints_idl {
29  interface Implicit;
30  interface LockedJoint;
31  typedef sequence <LockedJoint> LockedJoints;
32  };
33  module core_idl {
34  interface SteeringMethod;
35  interface PathValidation;
36  };
37  module manipulation_idl {
38  module graph_idl {
39  typedef unsigned long long size_t;
40  interface State;
41  typedef sequence<State> States;
42  interface Edge;
43  typedef sequence<Edge> Edges;
44  interface Graph;
45 
46  interface GraphComponent {
47  string name () raises (Error);
48  size_t id () raises (Error);
49 
50  Graph parentGraph () raises (Error);
51 
52  void addNumericalConstraint (in constraints_idl::Implicit nm) raises (Error);
53  void addNumericalCost (in constraints_idl::Implicit nm) raises (Error);
54 
55  constraints_idl::Implicits numericalConstraints () raises (Error);
56 
57  constraints_idl::Implicits numericalCosts () raises (Error);
58 
59  void resetNumericalConstraints () raises (Error);
60  }; // interface GraphComponent
61 
62  interface StateSelector
63  {
64  string name () raises (Error);
65 
66  Graph parentGraph () raises (Error);
67 
68  States getStates () raises (Error);
69  }; // interface StateSelector
70 
71  interface Graph : GraphComponent
72  {
73  StateSelector getStateSelector () raises (Error);
74  //-> stateSelector
75  GraphComponent get (in size_t id) raises (Error);
76  size_t nbComponents () raises (Error);
77  void initialize () raises (Error);
78 
79  State getState (in floatSeq config) raises (Error);
80  Edges getEdges (in State from, in State to) raises (Error);
81  }; // interface Graph
82 
83  interface State : GraphComponent
84  {
85  boolean contains (in floatSeq config) raises (Error);
86  Edge linkTo (in string name, in State to, in size_type weight) raises (Error);
87 
88  Edges neighborEdges () raises (Error);
89  Edges hiddenNeighbors () raises (Error);
90 
91  core_idl::ConstraintSet configConstraint () raises (Error);
92  }; // interface State
93 
94  interface Edge : GraphComponent
95  {
96  State stateFrom () raises (Error);
97  State stateTo () raises (Error);
98  State getState () raises (Error);
99  //-> state
100  void setState (in State st) raises (Error);
101  //-> state
102  intSeqSeq getRelativeMotion () raises (Error);
103  //* return matrixToIntSeqSeq(getT()->relativeMotion().template cast<CORBA::Long>());
104  floatSeqSeq getSecurityMargins () raises (Error);
105  //-> securityMargins
106  void setSecurityMarginForPair(in size_type row, in size_type col, in value_type margin) raises (Error);
107  //-> securityMarginForPair
108 
109  boolean generateTargetConfig(in floatSeq qStart, inout floatSeq q)
110  raises(Error);
111 
112  core_idl::SteeringMethod getSteeringMethod () raises (Error);
113  //-> steeringMethod
114  core_idl::PathValidation getPathValidation () raises (Error);
115  //-> pathValidation
116 
118  core_idl::ConstraintSet configConstraint () raises (Error);
119  //-> targetConstraint
120 
121  core_idl::ConstraintSet targetConstraint () raises (Error);
122 
123  core_idl::ConstraintSet pathConstraint () raises (Error);
124  }; // interface Edge
125 
126  interface LevelSetEdge : Edge
127  {
128  constraints_idl::Implicits paramConstraints() raises(Error);
129  constraints_idl::Implicits conditionConstraints() raises(Error);
130  boolean generateTargetConfigOnLeaf(in floatSeq qStart,
131  in floatSeq qLeaf,
132  inout floatSeq q) raises(Error);
133  }; // interface LevelSetEdge
134 
135  interface Validation
136  {
137  string str () raises (Error);
138 
139  boolean hasErrors () raises (Error);
140 
141  boolean hasWarnings () raises (Error);
142 
143  boolean validate (in GraphComponent comp) raises (Error);
144  }; // interface Validation
145  }; // module graph
146  }; // module manipulation
147 }; // module hpp
148 
149 //* #include <hpp/constraints_idl/constraints.hh>
150 //* #include <hpp/core_idl/steering_methods.hh>
151 //* #include <hpp/core_idl/path_validations.hh>
152 //* #include <hpp/manipulation/graph/edge.hh>
153 //* #include <hpp/manipulation/graph/graph.hh>
154 //* #include <hpp/manipulation/graph/state.hh>
155 //* #include <hpp/manipulation/graph/state-selector.hh>
156 //* #include <hpp/manipulation/graph/validation.hh>
157 
158 #endif // HPP_MANIPULATION_STEERING_METHODS_IDL
unsigned long long size_t
Definition: _graph.idl:39
ImplicitServant< POA_hpp::constraints_idl::Implicit, constraints::ImplicitPtr_t > Implicit
sequence< Implicit > Implicits
sequence< Edge > Edges
Definition: _graph.idl:42
double value_type
bool initialize(MeshCollisionTraversalNode< BV, RelativeTransformationIsIdentity > &node, BVHModel< BV > &model1, Transform3f &tf1, BVHModel< BV > &model2, Transform3f &tf2, CollisionResult &result, bool use_refit=false, bool refit_bottomup=false)
sequence< floatSeq > floatSeqSeq
sequence< LockedJoint > LockedJoints
Definition: _graph.idl:30
sequence< State > States
Definition: _graph.idl:40
PathValidationServant< POA_hpp::core_idl::PathValidation, core::PathValidationPtr_t > PathValidation
SteeringMethodServant< POA_hpp::core_idl::SteeringMethod, SteeringMethodStorage< core::SteeringMethod > > SteeringMethod
sequence< double > floatSeq
sequence< intSeq > intSeqSeq
long long size_type