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 //----------------------------------------------------------------------------- 00012 // 00013 // Description : 00014 // Use this for data from GetProp(Tool.CollisionVolume()) or 00015 // GetPropE(Tool.CollisionVolume()). CollisionVolume may not be queried 00016 // for FoundTool. 00017 //----------------------------------------------------------------------------- 00018 #pragma once 00019 00020 class ippBox; 00021 #include "ippdme/Property/ippOneProperty.h" 00022 #include "ippdme/ippBox.h" 00023 00024 EXPIMP_TEMPLATE template class IPPDME_EXT_CLASS std::allocator<ippBox>; 00025 EXPIMP_TEMPLATE template class IPPDME_EXT_CLASS std::vector<ippBox>; 00026 00027 //----------------------------------------------------------------------------- 00028 class IPPDME_EXT_CLASS ippOnePropertyCollisionVolume : public ippOneProperty 00029 { 00030 00031 public: 00032 ippOnePropertyCollisionVolume( 00033 ippOtherKeyType _keyword 00034 ); 00035 ippOnePropertyCollisionVolume( 00036 ippOtherKeyType _keyword, 00037 const std::vector<ippBox>& boxes 00038 ); 00039 00040 virtual ~ippOnePropertyCollisionVolume(); 00041 00042 // add a box to the collision volume property 00043 void addBox(const ippBox&) ; 00044 00045 void setBoxes(const std::vector<ippBox>& boxes); 00046 00047 int getNumberBoxes() const { return (int)_boxes.size(); } 00048 const ippBox& getBox(int i) const ; 00049 00050 virtual void propString(ippStringBuilder& ) const; 00051 00052 private: 00053 std::vector<ippBox> _boxes; 00054 ippOtherKeyType _keyword; 00055 private: 00056 ippOnePropertyCollisionVolume(const ippOnePropertyCollisionVolume&); 00057 void operator=(const ippOnePropertyCollisionVolume&); 00058 }; 00059 IPP_DECLARE_SMARTPOINTER(ippOnePropertyCollisionVolume);