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

ippScanInPlaneEndIsCylCommand.h

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 #pragma once 
00011 #include "ippdme/Command/ippCommand.h"
00012 #include "ippdme/ippTargetVector.h"
00013 
00014 // 1.40
00015 // 1.43 :11.3.2-4 ScanInPlanEndIsXXX scanning plane definition by additional vector
00016 
00017 /* 
00018  * ScanInPlaneEndIsCyl
00019  * The ScanInPlaneEndIsCyl allows scanning an unknown contour. The scan will stop if the cylinder
00020  * stop criterion is matched.
00021  */
00022 class IPPDME_EXT_CLASS ippScanInPlaneEndIsCylCommand : public ippCommand {
00023 
00024 public:
00025 
00026   ippScanInPlaneEndIsCylCommand(
00027     unsigned int tgNum,
00028                 double inSx, double inSy, double inSz, //<! defines the scan start point
00029                 double inSI, double inSJ, double inSK, //<! defines the surface direction in the start point
00030     double inNI, double inNJ, double inNK, //<! defines the normal vector of the scanning plane
00031                 double inDx, double inDy, double inDz, //<! defines the scan direction point
00032                 double inStepW,                        //<! StepW is the average distance between 2 measured points
00033                 double inCx, double inCy, double inCz, 
00034                 double inCI, double inCJ, double inCK, //<! defines the cylinder where the scan stops
00035                 double inDia,                          //<! defines the diameter of the cylinder where the scan stops
00036                 int inNum,                             //<! Number of through the cylinder
00037                 double inEI, double inEJ, double inEK  //<! defines the surface vector at the end point.
00038                                            //<! It defines the direction for retracting
00039   );
00040 
00041   virtual ~ippScanInPlaneEndIsCylCommand();
00042 
00043   void setSx(double inSx){ _sx = inSx; }
00044   void setSy(double inSy){ _sy = inSy; }
00045   void setSz(double inSz){ _sz = inSz; }
00046   void setSIJK(double inSI, double inSJ, double inSK)
00047     { _sIJK.setValues(inSI, inSJ, inSK); }
00048   void setNIJK(double inNI, double inNJ, double inNK)
00049     { _nIJK.setValues(inNI, inNJ, inNK); }
00050   void setDx(double inDx){ _dx = inDx; }
00051   void setDy(double inDy){ _dy = inDy; }
00052   void setDz(double inDz){ _dz = inDz; }
00053   void setStepW(double inStepW){ _stepW = inStepW; }
00054   void setCx(double inCx){ _cx = inCx; }
00055   void setCy(double inCy){ _cy = inCy; }
00056   void setCz(double inCz){ _cz = inCz; }
00057   void setCIJK(double inCI, double inCJ, double inCK)
00058     { _cIJK.setValues(inCI, inCJ, inCK); }
00059   void setDia(double inDia){ _dia = inDia; }
00060   void setNum(int inNum){ _num = inNum; }
00061   void setEIJK(double inEI, double inEJ, double inEK)
00062     { _eIJK.setValues(inEI, inEJ, inEK); }
00063 
00064   double getSx()const{ return _sx; }
00065   double getSy()const{ return _sy; }
00066   double getSz()const{ return _sz; }
00067   double getSI()const{ return _sIJK.getI(); }
00068   double getSJ()const{ return _sIJK.getJ(); }
00069   double getSK()const{ return _sIJK.getK(); }
00070   double getDx()const{ return _dx; }
00071   double getDy()const{ return _dy; }
00072   double getDz()const{ return _dz; }
00073   double getStepW()const{ return _stepW; }
00074   double getCx()const{ return _cx; }
00075   double getCy()const{ return _cy; }
00076   double getCz()const{ return _cz; }
00077   double getCI()const{ return _cIJK.getI(); }
00078   double getCJ()const{ return _cIJK.getJ(); }
00079   double getCK()const{ return _cIJK.getK(); }
00080   double getDia()const{ return _dia; }
00081   int getNum()const{ return _num; }
00082   double getEI()const{ return _eIJK.getI(); }
00083   double getEJ()const{ return _eIJK.getJ(); }
00084   double getEK()const{ return _eIJK.getK(); }
00085 
00086   virtual std::string getCommandString() const;
00087 
00088 
00089 private:
00090   double _sx;
00091   double _sy;
00092   double _sz;
00093   ippTargetVector _sIJK;
00094   ippTargetVector _nIJK;
00095   double _dx;
00096   double _dy;
00097   double _dz;
00098   double _stepW;
00099   double _cx;
00100   double _cy;
00101   double _cz;
00102   ippTargetVector _cIJK;
00103   double _dia;
00104   int _num;
00105   ippTargetVector _eIJK;
00106 
00107   ippScanInPlaneEndIsCylCommand(const ippScanInPlaneEndIsCylCommand&);
00108   void operator=(const ippScanInPlaneEndIsCylCommand&);
00109 };
00110 IPP_DECLARE_SMARTPOINTER(ippScanInPlaneEndIsCylCommand);

Generated on Wed Nov 8 00:19:57 2006 for IPPDME by  doxygen 1.4.1