GyotoWorldline.h File Reference

Timelike or null geodesics. More...

`#include <iostream>`
`#include <fstream>`
`#include <string>`
`#include <vector>`
`#include <GyotoDefs.h>`
`#include <functional>`
`#include <array>`
`#include <boost/numeric/odeint/stepper/controlled_step_result.hpp>`
`#include <GyotoSmartPointer.h>`
`#include <GyotoMetric.h>`
`#include <GyotoScreen.h>`
`#include <GyotoHooks.h>`

Go to the source code of this file.

## Classes

class | Gyoto::Worldline
| Timelike or null geodesics. More...
class | Gyoto::Worldline::IntegState
class | Gyoto::Worldline::IntegState::Generic
| Current state of a geodesic integration. More...
class | Gyoto::Worldline::IntegState::Legacy
| Obsolete: Home-brewed integrator. More...
class | Gyoto::Worldline::IntegState::Boost
| Boost integrator. More...

## Namespaces

namespace | Gyoto
| Namespace for the Gyoto library.

## Macros

#define | GYOTO_WORLDLINE_PROPERTIES(c)
| Define the bunch of Properties that make up the Worldline interface.
#define | GYOTO_WORLDLINE_ACCESSORS(c)
| Define the wrapper accessors used in GYOTO_WORLDLINE_PROPERTIES(class).
#define | GYOTO_WORLDLINE_PROPERTY_END(c, a)
| Drop-in replacement for GYOTO_PROPERTY_END(), which adds the Worldline interface.
#define | GYOTO_WORLDLINE
| Declare the Worldline interface wrappers.

## Detailed Description

Timelike or null geodesics.

## Macro Definition Documentation

## GYOTO_WORLDLINE

#define GYOTO_WORLDLINE

Declare the Worldline interface wrappers.

This macro must be called in the class declaration (.h file), in a public section. Its sibling GYOTO_WORLDLINE_ACCESSORS(c) must be called with the class method definition (.C file). Note that GYOTO_WORLDLINE_PROPERTY_END(c, a) calls GYOTO_WORLDLINE_ACCESSORS(c).

## GYOTO_WORLDLINE_ACCESSORS

#define GYOTO_WORLDLINE_ACCESSORS | ( |  | c | ) |

Define the wrapper accessors used in GYOTO_WORLDLINE_PROPERTIES(class).

This macro, which is called automatically by GYOTO_WORLDLINE_PROPERTY_END(c, a), must be called once with the definition of the methods (.C file) of any class that derives from Worldline. The corresponding macro GYOTO_WORLDLINE must be called in the corresponding class declaration (.h file).

This is made necessary by how multiple inheritence works: directly using the accessors in the Worldline API leads to segfault at runtime (unless too much extra care is taken) and may go unnoticed.

These accessors must be declared in the class declaration using the GYOTO_WORLDLINE macro.

## GYOTO_WORLDLINE_PROPERTIES

#define GYOTO_WORLDLINE_PROPERTIES | ( |  | c | ) |

Define the bunch of Properties that make up the Worldline interface.

This macro, which is called automatically by GYOTO_WORLDLINE_PROPERTY_END(c, a), must be inserted in the definition of the Property list for any class derived from Worldline.

## GYOTO_WORLDLINE_PROPERTY_END

#define GYOTO_WORLDLINE_PROPERTY_END | ( |  | c,
|  |  | a )

Value:
GYOTO_WORLDLINE_PROPERTIES(c) \
GYOTO_PROPERTY_END(c, a) \
GYOTO_WORLDLINE_ACCESSORS(c)
GYOTO_WORLDLINE_PROPERTIES
#define GYOTO_WORLDLINE_PROPERTIES(c)
Define the bunch of Properties that make up the Worldline interface.
Definition GyotoWorldline.h:58

Drop-in replacement for GYOTO_PROPERTY_END(), which adds the Worldline interface.

This macro replaces GYOTO_PROPERTY_END(c, a) for classes that derive from Worldline. It calls GYOTO_WORLDLINE_PROPERTIES(a) and GYOTO_WORLDLINE_ACCESSORS(c). If this macro is used, GYOTO_WORLDLINE must be called in the class declaration (.h file).