30 #include "util/log/logger.h"
31 #include "util/base/exception.h"
33 #include "model/structures/instance.h"
34 #include "model/metamodel/object.h"
35 #include "model/metamodel/action.h"
42 static Logger _log(LM_VIEW);
50 ObjectVisual::ObjectVisual() {
55 throw Duplicate(
"Object already contains visualization");
58 object->adoptVisual(v);
66 m_angle2img[angle % 360] = image_index;
70 int32_t closestMatch = 0;
75 int32_t closestMatch = 0;
82 type_angle2id::const_iterator i(m_angle2img.begin());
83 while (i != m_angle2img.end()) {
84 angles.push_back(i->first);
89 InstanceVisual::InstanceVisual():
95 throw Duplicate(
"Instance already contains visualization");
105 ActionVisual::ActionVisual(): m_animation_map(), m_map() {
110 throw Duplicate(
"Action already contains visualization");
113 action->adoptVisual(v);
121 m_animation_map[angle % 360] = animationptr;
122 m_map[angle % 360] = angle % 360;
126 int32_t closestMatch = 0;
132 AngleAnimationMap::const_iterator i(m_animation_map.begin());
133 while (i != m_animation_map.end()) {
134 angles.push_back(i->first);
static InstanceVisual * create(Instance *instance)
int32_t getClosestMatchingAngle(int32_t angle)
static ActionVisual * create(Action *action)
void setVisual(IVisual *visual)
int32_t getStaticImageIndexByAngle(int32_t angle)
void getActionImageAngles(std::vector< int32_t > &angles)
void getStaticImageAngles(std::vector< int32_t > &angles)
void addAnimation(uint32_t angle, AnimationPtr animationptr)
static ObjectVisual * create(Object *object)
void addStaticImage(uint32_t angle, int32_t image_index)
AnimationPtr getAnimationByAngle(int32_t angle)
int32_t getIndexByAngle(int32_t angle, const type_angle2id &angle2id, int32_t &closestMatchingAngle)
virtual ~InstanceVisual()
credit to phoku for his NodeDisplay example which the visitor code is adapted from ( he coded the qua...