/********************************************************************************************
ezwSwap.cpp
Jim Millard
for CO311
EZwindows sort visualizations
********************************************************************************************/
#include "ezwSwap.h"
#include <ezwin.h>
#include <ray.h>
#include "ezwSort.h"
#include "ezwUtils.h"
#include "ezwMove.h"
extern float baseline; //Bottom edge of all bars
extern float tempX; //horizontal position used when swapped to a "temp" location
/*********************************************************************************************/
void Swap(int& A, int& B)
{
int temp = A;
A = B;
B = temp;
}
/*********************************************************************************************/
void Swap(SimpleWindow& W, RaySegment& barA, RaySegment& barB, const short load)
{
//highlight the bars
Highlight(barA,Blue);
Highlight(barB,Magenta,load * 2);
RaySegment* temp = new RaySegment(W, tempX,0, tempX,baseline/2, Black, barA.GetThickness());
Move(barA, *temp, load);
Move(barB, barA, load);
Move(*temp, barB, load);
delete temp;
//unhighlight the bars
Highlight(barA,Red);
Highlight(barB,Red);
return;
}