trajectory.hpp
Go to the documentation of this file.
1 
5 /* Copyright (c) 2005-2009,2011 Taneli Kalvas. All rights reserved.
6  *
7  * You can redistribute this software and/or modify it under the terms
8  * of the GNU General Public License as published by the Free Software
9  * Foundation; either version 2 of the License, or (at your option)
10  * any later version.
11  *
12  * This library is distributed in the hope that it will be useful, but
13  * WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this library (file "COPYING" included in the package);
19  * if not, write to the Free Software Foundation, Inc., 51 Franklin
20  * Street, Fifth Floor, Boston, MA 02110-1301 USA
21  *
22  * If you have questions about your rights to use or distribute this
23  * software, please contact Berkeley Lab's Technology Transfer
24  * Department at TTD@lbl.gov. Other questions, comments and bug
25  * reports should be sent directly to the author via email at
26  * taneli.kalvas@jyu.fi.
27  *
28  * NOTICE. This software was developed under partial funding from the
29  * U.S. Department of Energy. As such, the U.S. Government has been
30  * granted for itself and others acting on its behalf a paid-up,
31  * nonexclusive, irrevocable, worldwide license in the Software to
32  * reproduce, prepare derivative works, and perform publicly and
33  * display publicly. Beginning five (5) years after the date
34  * permission to assert copyright is obtained from the U.S. Department
35  * of Energy, and subject to any subsequent five (5) year renewals,
36  * the U.S. Government is granted for itself and others acting on its
37  * behalf a paid-up, nonexclusive, irrevocable, worldwide license in
38  * the Software to reproduce, prepare derivative works, distribute
39  * copies to the public, perform publicly and display publicly, and to
40  * permit others to do so.
41  */
42 
43 #ifndef TRAJECTORY_HPP
44 #define TRAJECTORY_HPP 1
45 
46 
52 };
53 
54 
62 
63  trajectory_rep_e _rep;
64  double _A, _B, _C, _D, _E;
65 
66  static bool in( double K, int extrapolate );
67 
68 public:
69 
73 
81  TrajectoryRep1D( double dt, double x1, double v1, double x2, double v2,
82  trajectory_rep_e force = TRAJ_EMPTY );
83 
87 
95  void construct( double dt, double x1, double v1, double x2, double v2,
96  trajectory_rep_e force = TRAJ_EMPTY );
97 
101  void coord( double &x, double &v, double K );
102 
112  int solve( double K[3], double x, int extrapolate = 0 );
113 
116  void debug_print( std::ostream &os ) const;
117 };
118 
119 
120 #endif
121 
122 
123 
124 
125 
126 
127 
128 
129 
130 
131 
132 
133 
134 
135 
136 
137 
138 
139 
~TrajectoryRep1D()
Destructor.
Definition: trajectory.hpp:86
TrajectoryRep1D()
Default constructor for empty representation.
Definition: trajectory.hpp:72
Trajectory representation between two calculated points in 1d.
Definition: trajectory.hpp:61
trajectory_rep_e
Definition: trajectory.hpp:47
Definition: trajectory.hpp:48
void debug_print(std::ostream &os) const
Print debugging information to os.
Definition: trajectory.hpp:51
Definition: trajectory.hpp:49
void coord(double &x, double &v, double K)
Calculate location x and velocity v at parametric time K.
int solve(double K[3], double x, int extrapolate=0)
Solves for trajectory intersection with location.
void construct(double dt, double x1, double v1, double x2, double v2, trajectory_rep_e force=TRAJ_EMPTY)
Construct representation of trajectory from (x1,v1) to (x2,v2) in time dt.
Definition: trajectory.hpp:50