Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

ippToolChanger.cpp

Go to the documentation of this file.
00001 // 
00002 // DISCLAIMER: 
00003 //  This software was produced by the National Institute of Standards 
00004 //  and Technology (NIST), an agency of the U.S. government, and by statute is 
00005 //  not subject to copyright in the United States.  Recipients of this 
00006 //  software assume all responsibility associated with its operation,
00007 //  modification,maintenance, and subsequent redistribution. 
00008 //
00009 //  See NIST Administration Manual 4.09.07 b and Appendix I. 
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(); // remove all customs tools
00068 
00069   _activeTool = 0;
00070   _foundTool = 0;
00071 
00072   _tools.clear();
00073 }
00074 
00075 //==============================================================================
00076 void ippToolChanger::setActiveTool( ippKToolPtr inTool)
00077 //-----------------------------------------------------------------------------
00078 {
00079    // [todo] : check that inTools is NULL or is in collection
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    // [todo] : check that inTools is NULL or is in collection
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 }

Generated on Wed Nov 8 00:20:04 2006 for IPPDME by  doxygen 1.4.1