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.
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.
Georg schrieb: > Das sind halt 2 floats. Ich weiß nicht wie das geht. Google kaput? Vielleicht ist hier was für dich dabei http://en.wikipedia.org/wiki/Printf_format_string
Ich denke printf ist nicht das Problem, sondern es fehlt an Verständnis für objektorientiertes Programmieren. http://cplus.kompf.de/tutor.html
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.