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

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.