Ausgabe einer definierten Variable

Gast #3698741
Lesenswert?

Hallo allerseits,

ich steht grad aufm Schlauch.

Ich habe da eine Variable:
http://www.mira-project.org/MIRA-doc/group__TransformModule.html#ga9eb50accf00ac658449edfdf6c9adb72

typedef RigidTransform<float,2> Pose2

printf("Pose2: %??", Pose2)

Dieses Pose2 will ich mit printf in der Console ausgeben.
Das sind halt 2 floats. Ich weiß nicht wie das geht.

Danke.
Gast #3698747
Lesenswert?

template <typename T, int D>
class RigidTransform
{
static_assert(D!=D,"RigidTransform is not defined for this dimension. "
                      "Only 2 and 3 dimensions are available.");
 };


Des ist ne Klasse. Bzw. ein Objekt. Das hat 2 Werte. Wie kann ich jetzt 
einen der 2 Werte abfragen.
#3698904
Lesenswert?

Georg schrieb:

> ich steht grad aufm Schlauch.

Aber mächtig!

> Ich habe da eine Variable:
> typedef RigidTransform<float,2> Pose2

Pose2 ist der Name eines Typs. Nicht der Name einer Variable. 
Darüber hinaus ist RigidTransform<float,2> eine C++ Klasse (genauer 
gesagt: eine Instanz des Klassentemplates RigidTransform<T, D>)

> printf("Pose2: %??", Pose2)
>
> Dieses Pose2 will ich mit printf in der Console ausgeben.
> Das sind halt 2 floats. Ich weiß nicht wie das geht.

Wie bereits gesagt, ist Pose2 nicht der Name der Variable, sondern der 
Typ. Außerdem kann printf() nichts mit C++ Klassen anfangen. Es kennt 
nur die klassischen C Datentypen.

Wenn ein Pose2 Objekt intern aus 2 floats besteht, dann mußt du die 
einzeln herausoperieren und ebenso einzeln an printf() verfüttern.
Wie das geht, sagt dir die Doku zur RigidTransform<T, D> Klasse.

Allerdings hast du auch hier nicht Recht. Es sind nämlich drei Werte. 
Verfügbar über die Zugriffsfunktionen x(), y() und phi().

aus http://www.mira-project.org/MIRA-doc/RigidTransform_8h_source.html
1
00294 template <typename T>
2
00295 class RigidTransform<T,2> : public RigidTransformBase<T, 2,
3
00296                                      Eigen::Rotation2D<T>, RigidTransform<T,2> >
4
00297 {
5
...
6
00347 public:
7
00348 
8
00350     T& x() { return this->t.x(); }
9
00352     T  x() const { return this->t.x(); }
10
00353 
11
00355     T& y() { return this->t.y(); }
12
00357     T  y() const { return this->t.y(); }
13
00358 
14
00360     T& phi() { return this->r.angle(); }
15
00362     T  phi() const { return this->r.angle(); }

Den Rest lernst du jetzt aber selber.


XL

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren