NTRT Simulator
 All Classes Files Functions Variables Typedefs Friends Pages
CPGEdge.h
Go to the documentation of this file.
1 /*
2  * Copyright © 2012, United States Government, as represented by the
3  * Administrator of the National Aeronautics and Space Administration.
4  * All rights reserved.
5  *
6  * The NASA Tensegrity Robotics Toolkit (NTRT) v1 platform is licensed
7  * under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * http://www.apache.org/licenses/LICENSE-2.0.
11  *
12  * Unless required by applicable law or agreed to in writing,
13  * software distributed under the License is distributed on an
14  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
15  * either express or implied. See the License for the specific language
16  * governing permissions and limitations under the License.
17 */
18 
19 #ifndef SIMULATOR_SRC_LIB_MODELS_SNAKE_CPGS_CPGEDGE
20 #define SIMULATOR_SRC_LIB_MODELS_SNAKE_CPGS_CPGEDGE
21 
30 #include <math.h>
31 #include <sstream>
32 #include <vector>
33 
34 #include "CPGNode.h"
35 
36 class CPGNode; //Forward declaration
37 
41 class CPGEdge
42 {
43  public:
44  CPGEdge(CPGNode* newTarget,
45  double newWeight,
46  double newPhase);
50  ~CPGEdge();
51 
57  virtual void couple(CPGNode & currentNode);
58 
59  CPGNode* getTargetNode(){
60  return targetNode;
61  }
62 
63  std::string toString(const std::string& prefix = "") const;
64 
65  protected:
66 
67  CPGNode* targetNode;
68 
69  double weight;
70 
71  double phaseOffset;
72 
73 };
74 
82 inline std::ostream&
83 operator<<(std::ostream& os, const CPGEdge& obj)
84 {
85  os << obj.toString() << std::endl;
86  return os;
87 }
88 
89 #endif // SIMULATOR_SRC_LIB_MODELS_SNAKE_CPGS_CPGEDGE
~CPGEdge()
Definition: CPGEdge.cpp:40
virtual void couple(CPGNode &currentNode)
Definition: CPGEdge.cpp:45
std::ostream & operator<<(std::ostream &os, const CPGEdge &obj)
Definition: CPGEdge.h:83
Definition of class CPGNode.