00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include "stdafx.h"
00012
00013 #include "ippdme/ippToolChanger.h"
00014 #include "ippdme/ippGoToPars.h"
00015 #include "ippdme/ippTargetVector.h"
00016 #include "ippdme/ippKTool.h"
00017 #include "ippdme/ippPtMeasPars.h"
00018 #include "ippdme/Property/ippOnePropertyCollisionVolume.h"
00019
00020 #define MAXTOOLS 100
00021
00022
00023 ippToolChanger::ippToolChanger()
00024
00025 {
00026
00027 _noTool = new ippKTool("NoTool", "NoToolId", new ippGoToPars,
00028 new ippPtMeasPars, new ippScanPars, false,
00029 new ippOnePropertyCollisionVolume(Tool), 0, 0);
00030
00031
00032 _baseTool = new ippKTool("BaseTool", "BaseToolId", new ippGoToPars,
00033 new ippPtMeasPars,new ippScanPars, false,
00034 new ippOnePropertyCollisionVolume(Tool), 0, 0);
00035
00036 _refTool = new ippKTool("RefTool", "RefToolId", new ippGoToPars,
00037 new ippPtMeasPars,new ippScanPars, false,
00038 new ippOnePropertyCollisionVolume(Tool), 0, 0);
00039
00040 _unDefTool = new ippKTool("UnDefTool", "UnDefToolId", new ippGoToPars,
00041 new ippPtMeasPars,new ippScanPars, false,
00042 new ippOnePropertyCollisionVolume(Tool), 0, 0);
00043
00044
00045 _activeTool = _unDefTool;
00046 _foundTool = _noTool;
00047
00048 _tools.reserve(MAXTOOLS);
00049
00050 _tools.push_back(_noTool);
00051 _tools.push_back(_unDefTool);
00052 _tools.push_back(_baseTool);
00053 _tools.push_back(_refTool);
00054
00055
00056 _checkIn.setValues(0, 0, 0);
00057 _alignment1.setValues(0, 0, 1);
00058 _alignment2.setValues(0, 0, 0);
00059
00060
00061 }
00062
00063 ippToolChanger::~ippToolChanger()
00064
00065 {
00066
00067 clear();
00068
00069 _activeTool = 0;
00070 _foundTool = 0;
00071
00072 _tools.clear();
00073 }
00074
00075
00076 void ippToolChanger::setActiveTool( ippKToolPtr inTool)
00077
00078 {
00079
00080 if (inTool) {
00081
00082 _activeTool = inTool;
00083 }
00084 }
00085
00086
00087 void ippToolChanger::setCheckIn( const ippTargetVector& inCheckIn)
00088
00089 {
00090 _checkIn = inCheckIn;
00091 }
00092
00093
00094 void ippToolChanger::setFoundTool(ippKToolPtr inTool)
00095
00096 {
00097
00098 if (inTool) {
00099 _foundTool = inTool;
00100 }
00101
00102 }
00103
00104
00105 void ippToolChanger::clear()
00106
00107 {
00108 std::vector<ippKToolPtr>::iterator p;
00109 for (p = _tools.begin()+4; p != _tools.end(); p++)
00110 {
00111 ippKToolPtr ret = (*p);
00112
00113 }
00114 _tools.resize(4);
00115 setActiveTool(getNoTool().get());
00116 }
00117
00118
00119 void ippToolChanger::addTool(ippKToolPtr addIt)
00120
00121 {
00122 _tools.push_back(addIt);
00123 }
00124
00125
00126
00127 ippKToolPtr ippToolChanger::removeTool(const ippKToolPtr removeIt)
00128
00129 {
00130 std::vector<ippKToolPtr>::iterator p;
00131 for (p = _tools.begin(); p != _tools.end(); p++)
00132 {
00133 if ((*p).get() == removeIt)
00134 {
00135 ippKToolPtr ret = (*p);
00136 _tools.erase(p);
00137 return ret;
00138 }
00139 }
00140 return NULL;
00141 }
00142
00143
00144 ippKToolPtr ippToolChanger::findTool(const char * name)
00145
00146 {
00147 std::vector<ippKToolPtr>::iterator p;
00148 for (p = _tools.begin(); p != _tools.end(); p++)
00149 {
00150 if (strcmp(name, (*p)->getName()) == 0)
00151 return (*p);
00152 }
00153 return NULL;
00154 }