maxtess.h

Go to the documentation of this file.
00001 /**********************************************************************
00002  *<
00003     FILE: maxtess.h
00004 
00005     DESCRIPTION: Tessellation Approximation class
00006 
00007     CREATED BY: Charles Thaeler
00008 
00009     HISTORY: created 12 Dec 1996
00010              Updated 12-10-98 Peter Watje to support hidden interior edges
00011 
00012  *> Copyright (c) 1996, All Rights Reserved.
00013  **********************************************************************/
00014 
00015 #pragma once
00016 #include "maxheap.h"
00017 #include <WTypes.h>
00018 #include "maxtypes.h"
00019 
00020 // forward declarations
00021 class ILoad;
00022 class ISave;
00023 
00024 enum TessType
00025 {
00026     TESS_SET,       // This is the old MAX form for Bezier Patches
00027     TESS_ISO,       // This is obsolete and should not be used.
00028     TESS_PARAM,
00029     TESS_SPATIAL,
00030     TESS_CURVE,
00031     TESS_LDA,
00032     TESS_REGULAR 
00033 };
00034 
00035 enum ViewConfig
00036 {
00037     ISO_ONLY,
00038     ISO_AND_MESH,
00039     MESH_ONLY
00040 };
00041 
00042 enum TessSubdivStyle
00043 {
00044     SUBDIV_TREE,
00045     SUBDIV_GRID,
00046     SUBDIV_DELAUNAY
00047 };
00048 
00167 class TessApprox: public MaxHeapOperators {
00168 public:
00169     TessType type;
00170     ViewConfig vpt_cfg;
00171     TessSubdivStyle subdiv;
00172     BOOL view;
00173     float merge;
00174     int u, v;
00175     int u_iso, v_iso;
00176     float ang, dist, edge;
00177     int minSub, maxSub, maxTris;
00178 
00179 //watje 12-10-98
00180     BOOL showInteriorFaces;
00181 
00198     UtilExport TessApprox();
00200     UtilExport TessApprox(TessType type, float distance, float edge, float angle,
00201                           TessSubdivStyle subdivStyle, int minSub, int maxSub,
00202                           float m = 0.0f);
00207     UtilExport TessApprox(const TessApprox &tess);
00212     UtilExport TessApprox & operator=(const TessApprox& tess);
00218     UtilExport int operator==(const TessApprox &tess) const;
00219 
00220 
00221     UtilExport IOResult Load(ILoad* iload);
00222     UtilExport IOResult Save(ISave* isave);
00223 };
00224