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 * Luke Moore 00008 * Side Effects 00009 * 477 Richmond Street West 00010 * Toronto, Ontario 00011 * Canada M5V 3E7 00012 * 416-504-9876 00013 * 00014 * NAME: GU Library. 00015 * 00016 * COMMENTS: This file contains GU_Detail methods related to cloth seams. 00017 */ 00018 00019 #ifndef __GU_CLOTHSEAM_H__ 00020 #define __GU_CLOTHSEAM_H__ 00021 00022 #include <UT/UT_IntArray.h> 00023 class GB_PointGroup; 00024 class GEO_Point; 00025 00026 // This class stores the two points making up a "stitch" in a seam. 00027 class GU_ClothStitchPair 00028 { 00029 public: 00030 GU_ClothStitchPair(GEO_Point *point = 0, GEO_Point *goal_point = 0) 00031 : myPoint(point), myGoalPoint(goal_point) 00032 {} 00033 00034 GEO_Point *myPoint; 00035 GEO_Point *myGoalPoint; 00036 }; 00037 00038 // When matching cloth seams you can modify both halves of the seam, or 00039 // you can only modify one half and leave the other as it is. The latter 00040 // option is useful when attaching cloth to other geometry. 00041 enum GU_ClothMatchSeamsOperation { MODIFY_BOTH, MODIFY_FIRST, MODIFY_SECOND }; 00042 00043 // This class stores parameters to GU_Detail::matchClothSeams(). 00044 class GU_ClothMatchSeamsParms 00045 { 00046 public: 00047 const GB_PointGroup *myGroup; 00048 00049 // Which seams can be modified. 00050 GU_ClothMatchSeamsOperation myOperation; 00051 00052 // The maximum parametric distance between seam points before a point will 00053 // be inserted. 00054 float myTolerance; 00055 00056 // If they're not matching all the seams, mySeamNumbers will contain 00057 // the ones being matched. 00058 bool myMatchAllSeams; 00059 UT_IntArray mySeamNumbers; 00060 00061 // If refining is done, it will use the maximum seam length. 00062 bool myShouldRefine; 00063 float myMaxStitchLength; 00064 }; 00065 00066 #endif
1.5.9