src/tron/zone/zZoneInfluence.cpp

Go to the documentation of this file.
00001 #include "zZoneInfluence.h"
00002 
00003 zZoneInfluence::zZoneInfluence(zZonePtr _zone) : zone(_zone), zoneInfluenceItems() { }
00004 
00005 zZoneInfluence::~zZoneInfluence() { }
00006 
00007 void
00008 zZoneInfluence::apply(const tPolynomial<nMessage> &value)
00009 {
00010     zZoneInfluenceItemList::const_iterator iter;
00011     for (iter=zoneInfluenceItems.begin();
00012             iter!=zoneInfluenceItems.end();
00013             ++iter)
00014     {
00015         (*iter)->apply(value);
00016     }
00017 
00018     zone->RequestSync();
00019 }
00020 
00021 zZoneInfluenceItem::zZoneInfluenceItem(zZonePtr aZone):zone(aZone) {}
00022 
00023 zZoneInfluenceItem::~zZoneInfluenceItem() {}
00024 
00025 
00026 zZoneInfluenceItemRotation::zZoneInfluenceItemRotation(zZonePtr aZone):
00027         zZoneInfluenceItem(aZone),
00028         rotation()
00029 {}
00030 
00031 void
00032 zZoneInfluenceItemRotation::apply(const tPolynomial<nMessage> &valueEq) {
00033 
00034     tPolynomial<nMessage> tf = rotation.marshal(valueEq);
00035     
00036     zone->getShape()->setRotation2( tf );
00037 }
00038 
00039 zZoneInfluenceItemScale::zZoneInfluenceItemScale(zZonePtr aZone):
00040         zZoneInfluenceItem(aZone),
00041         scale(0.0)
00042 {}
00043 
00044 void
00045 zZoneInfluenceItemScale::apply(const tPolynomial<nMessage> &value) {
00046     tFunction tfScale;
00047     tfScale.SetOffset( scale );
00048     tfScale.SetSlope( 0.0f );
00049     zone->getShape()->setScale( tfScale );
00050 }
00051 
00052 zZoneInfluenceItemPosition::zZoneInfluenceItemPosition(zZonePtr aZone):
00053         zZoneInfluenceItem(aZone),
00054         pos(0.0, 0.0)
00055 {}
00056 
00057 void
00058 zZoneInfluenceItemPosition::apply(const tPolynomial<nMessage> &value) {
00059     tFunction tfPosition;
00060 
00061     tfPosition.SetOffset( pos.x );
00062     tfPosition.SetSlope( 0.0f );
00063     zone->getShape()->setPosX( tfPosition );
00064 
00065     tfPosition.SetOffset( pos.y );
00066     zone->getShape()->setPosY( tfPosition );
00067 }
00068 
00069 zZoneInfluenceItemColor::zZoneInfluenceItemColor(zZonePtr aZone):
00070         zZoneInfluenceItem(aZone),
00071         color(0.0, 0.0, 0.0, 0.0)
00072 {}
00073 
00074 void
00075 zZoneInfluenceItemColor::apply(const tPolynomial<nMessage> &value) {
00076     zone->getShape()->setColorNow( color );
00077 }
00078 

Generated on Sat Mar 15 22:56:13 2008 for Armagetron Advanced by  doxygen 1.5.4