Page MenuHomec4science

Oncilla.h
No OneTemporary

File Metadata

Created
Sat, May 4, 20:46

Oncilla.h

/*
* Oncilla.h
*
* Created on: 15 dec. 2011
* Author: Alexandre Tuleu, Arne Nordmann
*/
#pragma once
#include <vector>
#include <iostream>
#include <tr1/memory>
namespace rci {
namespace oncilla {
class Oncilla;
typedef std::tr1::shared_ptr<Oncilla> OncillaPtr;
class OncillaSynchronizer;
typedef std::tr1::shared_ptr<OncillaSynchronizer> OncillaSynchronizerPtr;
class OncillaTrunk;
typedef std::tr1::shared_ptr<OncillaTrunk> OncillaTrunkPtr;
class OncillaL0;
typedef std::tr1::shared_ptr<OncillaL0> OncillaL0Ptr;
class OncillaL1L2;
typedef std::tr1::shared_ptr<OncillaL1L2> OncillaL1Ptr;
typedef std::tr1::shared_ptr<OncillaL1L2> OncillaL2Ptr;
class OncillaL3;
typedef std::tr1::shared_ptr<OncillaL3> OncillaL3Ptr;
class OncillaL4;
typedef std::tr1::shared_ptr<OncillaL4> OncillaL4Ptr;
class Oncilla {
public:
enum Leg {
LEFT_FORE = 0,
RIGHT_FORE = 1,
LEFT_HIND = 2,
RIGHT_HIND = 3,
NUM_LEGS = 4
};
static const std::string & nameOfLeg(Leg l);
Oncilla();
virtual ~Oncilla();
OncillaL0Ptr getL0(Leg l) const;
OncillaL1Ptr getL1(Leg l) const;
OncillaL2Ptr getL2(Leg l) const;
OncillaL3Ptr getL3(Leg l) const;
OncillaL4Ptr getL4(Leg l) const;
OncillaTrunkPtr getTrunk() const;
OncillaSynchronizerPtr getSynchronizer() const;
private:
typedef std::vector<std::string> LegNames;
static LegNames s_legNames;
void init();
static OncillaSynchronizerPtr s_synchronizer;
std::vector<OncillaL0Ptr> d_L0s;
std::vector<OncillaL1Ptr> d_L1s;
std::vector<OncillaL2Ptr> d_L2s;
std::vector<OncillaL3Ptr> d_L3s;
std::vector<OncillaL4Ptr> d_L4s;
OncillaTrunkPtr d_trunk;
};
}
}

Event Timeline