00001 /* 00002 * PROPRIETARY INFORMATION. This software is proprietary to 00003 * Side Effects Software Inc., and is not to be reproduced, 00004 * transmitted, or disclosed in any way without written permission. 00005 * 00006 * Produced by: 00007 * Mark Elendt 00008 * Side Effects Software Inc 00009 * 477 Richmond Street West 00010 * Toronto, Ontario 00011 * Canada M5V 3E7 00012 * 416-504-9876 00013 * 00014 * NAME: GU_Resample.h ( GU Library, C++) 00015 * 00016 * COMMENTS: Resample polygons 00017 */ 00018 00019 #ifndef __GU_Resample__ 00020 #define __GU_Resample__ 00021 00022 #include "GU_API.h" 00023 class GEO_PrimPoly; 00024 class GB_PrimitiveGroup; 00025 00026 class GU_API GU_Resample { // Parameters for resample 00027 public: 00028 GU_Resample(); 00029 ~GU_Resample(); 00030 00031 enum MeasureType { ARC, CHORD }; 00032 enum MethodType { DIST, X, Y, Z }; 00033 00034 void setType(MeasureType type) { myType = type; } 00035 void setMethod(MethodType type) { myMethod = type; } 00036 void setMaxSegments(int seg) { mySegments = seg; } 00037 void setLength(float len) { myLength = len; } 00038 void setMaintainLast(int onoff) { myMaintain = onoff; } 00039 00040 float totalLength(const GEO_PrimPoly *poly); 00041 GEO_PrimPoly *resampleFace(GEO_PrimPoly *poly, 00042 GB_PrimitiveGroup *delgroup = 0); 00043 GEO_PrimPoly *resampleEdges(GEO_PrimPoly *poly, 00044 GB_PrimitiveGroup *delgroup = 0); 00045 private: 00046 MeasureType myType; 00047 MethodType myMethod; 00048 int mySegments; 00049 int myMaintain; 00050 float myLength; 00051 }; 00052 00053 #endif 00054
1.5.9