00001 /* BurrTools 00002 * 00003 * BurrTools is the legal property of its developers, whose 00004 * names are listed in the COPYRIGHT file, which is included 00005 * within the source distribution. 00006 * 00007 * This program is free software; you can redistribute it and/or 00008 * modify it under the terms of the GNU General Public License 00009 * as published by the Free Software Foundation; either version 2 00010 * of the License, or (at your option) any later version. 00011 00012 * This program is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 * GNU General Public License for more details. 00016 00017 * You should have received a copy of the GNU General Public License 00018 * along with this program; if not, write to the Free Software 00019 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00020 */ 00021 #ifndef __STL_0_H__ 00022 #define __STL_0_H__ 00023 00024 #include "stl.h" 00025 00027 class stlExporter_0_c : public stlExporter_c { 00028 00029 public: 00030 00031 stlExporter_0_c(void) : bevel(0.3), cube_scale(10), shrink(0.01), hole(0), tubes(0.05), leaveGroovesInside(false), leaveGroovesOutside(false), smoothVoid(false) {} 00032 00033 virtual Polyhedron * getMesh(const voxel_c & v, const faceList_c & holes) const; 00034 virtual unsigned int numParameters(void) const { return 8; } 00035 virtual const char * getParameterName(unsigned int idx) const; 00036 virtual double getParameter(unsigned int idx) const; 00037 virtual void setParameter(unsigned int idx, double value); 00038 virtual const char * getParameterTooltip(unsigned int idx) const; 00039 virtual parameterTypes getParameterType(unsigned int idx) const; 00040 00041 private: 00042 00043 double bevel; 00044 double cube_scale; 00045 double shrink; 00046 double hole; 00047 double tubes; // size of the tubes that connect inside and outside 00048 bool leaveGroovesInside; 00049 bool leaveGroovesOutside; 00050 bool smoothVoid; 00051 00052 private: 00053 00054 // no copying and assigning 00055 stlExporter_0_c(const stlExporter_0_c&); 00056 void operator=(const stlExporter_0_c&); 00057 00058 }; 00059 00060 #endif