Home | nevrax.com |
|
primitive.hGo to the documentation of this file.00001 00007 /* Copyright, 2001 Nevrax Ltd. 00008 * 00009 * This file is part of NEVRAX NEL. 00010 * NEVRAX NEL is free software; you can redistribute it and/or modify 00011 * it under the terms of the GNU General Public License as published by 00012 * the Free Software Foundation; either version 2, or (at your option) 00013 * any later version. 00014 00015 * NEVRAX NEL is distributed in the hope that it will be useful, but 00016 * WITHOUT ANY WARRANTY; without even the implied warranty of 00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00018 * General Public License for more details. 00019 00020 * You should have received a copy of the GNU General Public License 00021 * along with NEVRAX NEL; see the file COPYING. If not, write to the 00022 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, 00023 * MA 02111-1307, USA. 00024 */ 00025 00026 #ifndef __PRIMITIVE_H__ 00027 #define __PRIMITIVE_H__ 00028 00029 #include "nel/misc/vector.h" 00030 #include <vector> 00031 00032 namespace NLLIGO 00033 { 00034 00035 // There are only x and y used in the vector 00036 // LayerName is the Group to which the primitive belongs to 00037 // Hide say if the primitive is hidden or not 00038 00039 00040 // *************************************************************************** 00041 class CPrimPoint 00042 { 00043 00044 public: 00045 00046 NLMISC::CVector Point; 00047 std::string Name; 00048 std::string LayerName; 00049 00050 public: 00051 00052 void serial (NLMISC::IStream &f); 00053 }; 00054 00055 // *************************************************************************** 00056 class CPrimPath 00057 { 00058 00059 public: 00060 00061 std::vector<NLMISC::CVector> VPoints; 00062 std::string Name; 00063 std::string LayerName; 00064 00065 public: 00066 00067 void serial (NLMISC::IStream &f); 00068 }; 00069 00070 00071 // *************************************************************************** 00072 class CPrimZone 00073 { 00074 00075 public: 00076 00077 std::vector<NLMISC::CVector> VPoints; 00078 std::string Name; 00079 std::string LayerName; 00080 00081 public: 00082 00083 bool contains (NLMISC::CVector &v); 00084 void serial (NLMISC::IStream &f); 00085 }; 00086 00087 // *************************************************************************** 00088 class CPrimRegion 00089 { 00090 00091 public: 00092 00093 std::string Name; 00094 std::vector<CPrimPoint> VPoints; 00095 std::vector<CPrimZone> VZones; 00096 std::vector<CPrimPath> VPaths; 00097 00098 std::vector<bool> VHidePoints; 00099 std::vector<bool> VHideZones; 00100 std::vector<bool> VHidePaths; 00101 00102 public: 00103 00104 void serial (NLMISC::IStream &f); 00105 }; 00106 00107 } // namespace NLLIGO 00108 00109 #endif // __PRIMITIVE_H__ |