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