CollisionBoxComponent::CollisionBoxComponent(GameObject& aGameObject, eCollisionGroup aCollisionGroup, const Vector2<float>& someDimensions) : CollisionComponent(aGameObject, aCollisionGroup) { myDimensions = someDimensions; Line<float> aLine; Vector2<float> position1(-myDimensions.myX / 2, -myDimensions.myY / 2); Vector2<float> position2(-myDimensions.myX / 2, myDimensions.myY / 2); Vector2<float> position3(myDimensions.myX / 2, myDimensions.myY / 2); Vector2<float> position4(myDimensions.myX / 2, -myDimensions.myY / 2); aLine.InitWith2Points(position1, position2); myLineVolume.AddLine(aLine); aLine.InitWith2Points(position2, position3); myLineVolume.AddLine(aLine); aLine.InitWith2Points(position3, position4); myLineVolume.AddLine(aLine); aLine.InitWith2Points(position4, position1); myLineVolume.AddLine(aLine); myParent->SetValue<CollisionBoxComponent*>("CollisionBoxComponent", this); //mySprite = ResourceManager::GetInstance()->GetSprite("../Data/Gfx/debugBox.png", { someDimensions.x, someDimensions.y }, { someDimensions.x / 2.f, someDimensions.y / 2.f }); }
CollisionBoxComponent::CollisionBoxComponent(GameObject& aGameObject, eCollisionGroup aCollisionGroup, const Vector2<float>& someDimensions, const Vector2<float>& aCenterPosition) : CollisionComponent(aGameObject, aCollisionGroup, aCenterPosition) { myDimensions = someDimensions; Line<float> aLine; Vector2<float> position1(-myDimensions.myX / 2, -myDimensions.myY / 2); Vector2<float> position2(-myDimensions.myX / 2, myDimensions.myY / 2); Vector2<float> position3(myDimensions.myX / 2, myDimensions.myY / 2); Vector2<float> position4(myDimensions.myX / 2, -myDimensions.myY / 2); aLine.InitWith2Points(position1, position2); myLineVolume.AddLine(aLine); aLine.InitWith2Points(position2, position3); myLineVolume.AddLine(aLine); aLine.InitWith2Points(position3, position4); myLineVolume.AddLine(aLine); aLine.InitWith2Points(position4, position1); myLineVolume.AddLine(aLine); myParent->SetValue<CollisionBoxComponent*>("CollisionBoxComponent", this); }
int main(int argc, char* argv[]) { ExplorationShared shared; EBehavior behavior(&shared); EBWaitIdle waitStart("Start"); EBWaitIdle waitMotion1("ArmPositioning"); EBWaitIdle waitMotion2("Turn1"); EBWaitIdle waitMotion3("Turn2"); EBWaitIdle waitMotion4("Turn3"); EBWaitIdle waitMotion5("Turn4"); EBWaitIdle waitMotion6("Turn5"); EBWaitIdle waitMotion7("Final pos"); EBWaitIdle waitMotion8("Going back to rest"); EBWaitIdle endState1("end1"); EBWaitIdle endState2("end2"); EBWaitIdle stateInhibitHandTracking("Inhibit hand tracking"); EBWaitIdle stateEnableHandTracking("Enable hand tracking"); EBWaitIdle position1Wait("Position1 done"); EBWaitIdle position2Wait("Position2 done"); EBWaitIdle position3Wait("Position3 done"); EBWaitDeltaT position2Train(6); EBWaitDeltaT position3Train(6); EBWaitDeltaT position4Train(6); EBWaitIdle position2("Waiting arm done"); EBWaitIdle position3("Waiting arm done"); EBWaitIdle position4("Waiting arm done"); EBWaitIdle waitArmAck("Wait armAck"); EBWaitDeltaT dT1(6); EBWaitDeltaT dT2(0.2); EBWaitDeltaT dT3OneSecond(3); EBWaitDeltaT dTHandClosing(0.1); EBWaitDeltaT waitArmSeemsToRest(5); EBBehaviorOutput startTrain(YBVKFTrainStart); EBBehaviorOutput startSequence(YBVKFStart); EBBehaviorOutput stopTrain(YBVKFTrainStop); EBBehaviorOutput stop(YBVKFStop); EBSimpleOutput forceOpen(YBVGraspRflxForceOpen); EBSimpleOutput parkArm(YBVArmForceRestingTrue); // output: enable and disable hand tracking system EBEnableTracker enableHandTracking; EBInhibitTracker inhibitHandTracking; EBOutputCommand cmd1(YBVArmForceNewCmd, YVector(_nJoints, pos1)); EBOutputCommand cmd2(YBVArmForceNewCmd, YVector(_nJoints, pos2)); EBOutputCommand cmd3(YBVArmForceNewCmd, YVector(_nJoints, pos3)); // EBOutputCommand cmd4(YBVArmForceNewCmd, YVector(_nJoints, pos4)); // EBOutputCommand cmd5(YBVArmForceNewCmd, YVector(_nJoints, pos5)); // EBOutputCommand cmd6(YBVArmForceNewCmd, YVector(_nJoints, pos6)); EBOutputCommand cmd7(YBVArmForceNewCmd, YVector(_nJoints, pos7)); EBOutputCommand cmd8(YBVArmForceNewCmd, YVector(_nJoints, pos8)); EBOutputCommand cmd9(YBVArmForceNewCmd, YVector(_nJoints, pos9)); EBOutputCommand cmd10(YBVArmForceNewCmd, YVector(_nJoints, pos10)); EBSimpleInput armDone(YBVArmDone); EBSimpleInput handDone(YBVHandDone); EBSimpleInput start(YBVKFExplorationStart); EBSimpleInput start2(YBVGraspRflxClutch); EBSimpleInput armAck(YBVArmIssuedCmd); EBSimpleInput armNAck(YBVArmIsBusy); behavior.setInitialState(&waitStart); behavior.add(&start, &waitStart, &waitMotion1, &cmd1); behavior.add(&start2, &waitStart, &dTHandClosing, &enableHandTracking); behavior.add(NULL, &dTHandClosing, &waitArmAck, &cmd1); behavior.add(&armAck, &waitArmAck, &stateEnableHandTracking, &startSequence); behavior.add(&armNAck, &waitArmAck, &waitArmSeemsToRest, &inhibitHandTracking); behavior.add(NULL, &waitArmSeemsToRest, &waitStart, &forceOpen); behavior.add(NULL, &stateEnableHandTracking, &waitMotion1, &enableHandTracking); behavior.add(&armDone, &waitMotion1, &dT3OneSecond); // wait some extra time before issueing the startKF signal behavior.add(NULL, &dT3OneSecond, &dT1, &startTrain); // july 21/04 behavior.add(NULL, &dT1, &waitMotion6); behavior.add(NULL, &waitMotion6, &position1Wait, &stopTrain); // position2 behavior.add(NULL, &position1Wait, &position2, &cmd7); behavior.add(&armDone, &position2, &position2Train, &startTrain); behavior.add(NULL, &position2Train, &position2Wait, &stopTrain); //position3 behavior.add(NULL, &position2Wait, &position3, &cmd8); behavior.add(&armDone, &position3, &position3Train, &startTrain); behavior.add(NULL, &position3Train, &position3Wait, &stopTrain); //position 4 behavior.add(NULL, &position3Wait, &position4, &cmd9); behavior.add(&armDone, &position4, &position4Train, &startTrain); behavior.add(NULL, &position4Train, &stateInhibitHandTracking, &stopTrain); behavior.add(NULL, &stateInhibitHandTracking, &dT2); /* behavior.add(NULL, &dT1, &waitMotion2, &cmd2); // behavior.add(&armDone, &waitMotion1, &waitMotion2, &cmd2); behavior.add(&armDone, &waitMotion2, &waitMotion3, &cmd3); behavior.add(&armDone, &waitMotion3, &waitMotion4, &cmd4); behavior.add(&armDone, &waitMotion4, &waitMotion5, &cmd5); behavior.add(&armDone, &waitMotion5, &waitMotion6, &cmd6); behavior.add(&armDone, &waitMotion6, &dT2, &stopKF); */ behavior.add(NULL, &dT2, &waitMotion7, &cmd10); behavior.add(&armDone, &waitMotion7, &waitMotion8, &forceOpen); behavior.add(&handDone, &waitMotion8, &endState1, &parkArm); behavior.add(NULL, &endState1, &endState2, &inhibitHandTracking); behavior.add(NULL, &endState2, &waitStart, &stop); behavior.Begin(); behavior.loop(); return 0; }
/// Tests the Operators /// @return True if all tests were executed, false if not bool PositionTestSuite::TestCaseOperator() { //------Last Checked------// // - Jan 18, 2005 // TEST CASE: Assignment Operator { Position position(12,4,2); Position position2 = position; TEST(wxT("Operator="), (position == position2) ); // TEST CASE: Operator= (self-assignment) position = position; TEST(wxT("Operator= (self-assignment)"), (position == position) ); } // TEST CASE: Equality Operator { Position position(12,4,2); Position position2(12,4,2); Position position3(13,4,2); Position position4(12,8,2); Position position5(12,4,1); Position position6(12,4,2); position6.SetIrregularGroupingTiming(3,2); Position position7(12,4,2); position7.SetPreviousBeamDurationType(16); Position position8(12,4,2); position8.SetBeamStart(); Position position9(12,4,2); position9.SetFractionalLeftBeam(); Position position10(12,4,2); position10.SetFractionalRightBeam(); Position position11(12,4,2); position11.SetBeamEnd(); Position position12(12,4,2); position12.SetDotted(); Position position13(12,4,2); position13.SetRest(); Position position14(12,4,2); position14.SetVibrato(); Position position15(12,4,2); position15.SetWideVibrato(); Position position16(12,4,2); position16.SetArpeggioUp(); Position position17(12,4,2); position17.SetArpeggioDown(); Position position18(12,4,2); position18.SetPickStrokeUp(); Position position19(12,4,2); position19.SetPickStrokeDown(); Position position20(12,4,2); position20.SetStaccato(); Position position21(12,4,2); position21.SetMarcato(); Position position22(12,4,2); position22.SetSforzando(); Position position23(12,4,2); position23.SetTremoloPicking(); Position position24(12,4,2); position24.SetPalmMuting(); Position position25(12,4,2); position25.SetTap(); Position position26(12,4,2); position26.SetAcciaccatura(); Position position27(12,4,2); position27.SetTripletFeel1st(); Position position28(12,4,2); position28.SetTripletFeel2nd(); Position position29(12,4,2); position29.SetLetRing(); Position position30(12,4,2); position30.SetFermata(); Position position31(12,4,2); position31.SetIrregularGroupingStart(); Position position32(12,4,2); position32.SetIrregularGroupingMiddle(); Position position33(12,4,2); position33.SetIrregularGroupingEnd(); Position position34(12,4,2); position34.SetVolumeSwell(Dynamic::off, Dynamic::mp, 1); Position position35(12,4,2); position35.SetTremoloBar(Position::invertedDip, 1, 12); TEST(wxT("Operator== - position == position"), (position == position2)); TEST(wxT("Operator== - position != position"), !(position == position3)); TEST(wxT("Operator== - position != position 2"), !(position == position4)); TEST(wxT("Operator== - position != position 3"), !(position == position5)); TEST(wxT("Operator== - position != position 4"), !(position == position6)); TEST(wxT("Operator== - position != position 5"), !(position == position7)); TEST(wxT("Operator== - position != position 6"), !(position == position8)); TEST(wxT("Operator== - position != position 7"), !(position == position9)); TEST(wxT("Operator== - position != position 8"), !(position == position10)); TEST(wxT("Operator== - position != position 9"), !(position == position11)); TEST(wxT("Operator== - position != position 10"), !(position == position12)); TEST(wxT("Operator== - position != position 11"), !(position == position13)); TEST(wxT("Operator== - position != position 12"), !(position == position14)); TEST(wxT("Operator== - position != position 13"), !(position == position15)); TEST(wxT("Operator== - position != position 14"), !(position == position16)); TEST(wxT("Operator== - position != position 15"), !(position == position17)); TEST(wxT("Operator== - position != position 16"), !(position == position18)); TEST(wxT("Operator== - position != position 17"), !(position == position19)); TEST(wxT("Operator== - position != position 18"), !(position == position20)); TEST(wxT("Operator== - position != position 19"), !(position == position21)); TEST(wxT("Operator== - position != position 20"), !(position == position22)); TEST(wxT("Operator== - position != position 21"), !(position == position23)); TEST(wxT("Operator== - position != position 22"), !(position == position24)); TEST(wxT("Operator== - position != position 23"), !(position == position25)); TEST(wxT("Operator== - position != position 24"), !(position == position26)); TEST(wxT("Operator== - position != position 25"), !(position == position27)); TEST(wxT("Operator== - position != position 26"), !(position == position28)); TEST(wxT("Operator== - position != position 27"), !(position == position29)); TEST(wxT("Operator== - position != position 28"), !(position == position30)); TEST(wxT("Operator== - position != position 29"), !(position == position31)); TEST(wxT("Operator== - position != position 30"), !(position == position32)); TEST(wxT("Operator== - position != position 31"), !(position == position33)); TEST(wxT("Operator== - position != position 32"), !(position == position34)); TEST(wxT("Operator== - position != position 33"), !(position == position35)); } // Inequality Operator { Position position(12,4,2); Position position2(12,4,2); Position position3(13,4,2); Position position4(12,8,2); Position position5(12,4,1); Position position6(12,4,2); position6.SetIrregularGroupingTiming(3,2); Position position7(12,4,2); position7.SetPreviousBeamDurationType(16); Position position8(12,4,2); position8.SetBeamStart(); Position position9(12,4,2); position9.SetFractionalLeftBeam(); Position position10(12,4,2); position10.SetFractionalRightBeam(); Position position11(12,4,2); position11.SetBeamEnd(); Position position12(12,4,2); position12.SetDotted(); Position position13(12,4,2); position13.SetRest(); Position position14(12,4,2); position14.SetVibrato(); Position position15(12,4,2); position15.SetWideVibrato(); Position position16(12,4,2); position16.SetArpeggioUp(); Position position17(12,4,2); position17.SetArpeggioDown(); Position position18(12,4,2); position18.SetPickStrokeUp(); Position position19(12,4,2); position19.SetPickStrokeDown(); Position position20(12,4,2); position20.SetStaccato(); Position position21(12,4,2); position21.SetMarcato(); Position position22(12,4,2); position22.SetSforzando(); Position position23(12,4,2); position23.SetTremoloPicking(); Position position24(12,4,2); position24.SetPalmMuting(); Position position25(12,4,2); position25.SetTap(); Position position26(12,4,2); position26.SetAcciaccatura(); Position position27(12,4,2); position27.SetTripletFeel1st(); Position position28(12,4,2); position28.SetTripletFeel2nd(); Position position29(12,4,2); position29.SetLetRing(); Position position30(12,4,2); position30.SetFermata(); Position position31(12,4,2); position31.SetIrregularGroupingStart(); Position position32(12,4,2); position32.SetIrregularGroupingMiddle(); Position position33(12,4,2); position33.SetIrregularGroupingEnd(); Position position34(12,4,2); position34.SetVolumeSwell(Dynamic::off, Dynamic::mp, 1); Position position35(12,4,2); position35.SetTremoloBar(Position::invertedDip, 1, 12); TEST(wxT("Operator!= - position == position"), !(position != position2)); TEST(wxT("Operator!= - position != position"), (position != position3)); TEST(wxT("Operator!= - position != position 2"), (position != position4)); TEST(wxT("Operator!= - position != position 3"), (position != position5)); TEST(wxT("Operator!= - position != position 4"), (position != position6)); TEST(wxT("Operator!= - position != position 5"), (position != position7)); TEST(wxT("Operator!= - position != position 6"), (position != position8)); TEST(wxT("Operator!= - position != position 7"), (position != position9)); TEST(wxT("Operator!= - position != position 8"), (position != position10)); TEST(wxT("Operator!= - position != position 9"), (position != position11)); TEST(wxT("Operator!= - position != position 10"), (position != position12)); TEST(wxT("Operator!= - position != position 11"), (position != position13)); TEST(wxT("Operator!= - position != position 12"), (position != position14)); TEST(wxT("Operator!= - position != position 13"), (position != position15)); TEST(wxT("Operator!= - position != position 14"), (position != position16)); TEST(wxT("Operator!= - position != position 15"), (position != position17)); TEST(wxT("Operator!= - position != position 16"), (position != position18)); TEST(wxT("Operator!= - position != position 17"), (position != position19)); TEST(wxT("Operator!= - position != position 18"), (position != position20)); TEST(wxT("Operator!= - position != position 19"), (position != position21)); TEST(wxT("Operator!= - position != position 20"), (position != position22)); TEST(wxT("Operator!= - position != position 21"), (position != position23)); TEST(wxT("Operator!= - position != position 22"), (position != position24)); TEST(wxT("Operator!= - position != position 23"), (position != position25)); TEST(wxT("Operator!= - position != position 24"), (position != position26)); TEST(wxT("Operator!= - position != position 25"), (position != position27)); TEST(wxT("Operator!= - position != position 26"), (position != position28)); TEST(wxT("Operator!= - position != position 27"), (position != position29)); TEST(wxT("Operator!= - position != position 28"), (position != position30)); TEST(wxT("Operator!= - position != position 29"), (position != position31)); TEST(wxT("Operator!= - position != position 30"), (position != position32)); TEST(wxT("Operator!= - position != position 31"), (position != position33)); TEST(wxT("Operator!= - position != position 32"), (position != position34)); TEST(wxT("Operator!= - position != position 33"), (position != position35)); } return (true); }