ROOT logo
// $Id: GTSRetriangulator.h 2414 2010-07-18 21:28:23Z matevz $

// Copyright (C) 1999-2008, Matevz Tadel. All rights reserved.
// This file is part of GLED, released under GNU General Public License version 2.
// For the licensing terms see $GLEDSYS/LICENSE or http://www.gnu.org/.

#ifndef GTS_GTSRetriangulator_H
#define GTS_GTSRetriangulator_H

#include <Glasses/ZGlass.h>
#include <Glasses/GTSurf.h>

class GTSRetriangulator : public ZGlass
{
  MAC_RNR_FRIENDS(GTSRetriangulator);

public:
  enum StopOpts_e    { SO_Number,  SO_Cost };
  enum CostOpts_e    { CO_Length,  CO_Volume, CO_Angle };
  enum MidvertOpts_e { MO_Midvert, MO_Volume };

private:
  void _init();

protected:
  ZLink<GTSurf>		mTarget;      // X{gS} L{}

  StopOpts_e		mStopOpts;    // X{gS} 7 PhonyEnum(-join=>1)
  UInt_t		mStopNumber;  // X{gS} 7 Value(-range=>[0,1e8,1,1])
  Double_t		mStopCost;    // X{gS} 7 Value(-range=>[0,1e9,1,1e9])

  CostOpts_e		mCostOpts;        // X{gS} 7 PhonyEnum()
  Double_t		mVO_VolumeWght;   // X{gS} 7 Value(-join=>1, -range=>[0,10,1,1e6])
  Double_t		mVO_BoundaryWght; // X{gS} 7 Value(-join=>1, -range=>[0,10,1,1e6])
  Double_t		mVO_ShapeWght;    // X{gS} 7 Value(-range=>[0,10,1,1e9])

  MidvertOpts_e		mMidvertOpts; // X{gS} 7 PhonyEnum()

  Double_t		mMinAngleDeg; // X{gS} 7 Value(-range=>[0,180,1,1000])

  Double_t              mOutOfCoreDelta;  // X{GS} 7 Value(-range=>[0,100,1,1e6])

  Bool_t                bMeasureTime; //! X{GS} 7 Bool(-join=>1)
  Double_t              mRunTime;     //! X{GS} 7 ValOut()

public:
  GTSRetriangulator(const Text_t* n="GTSRetriangulator", const Text_t* t=0) : ZGlass(n,t) { _init(); }

  void Coarsen(); // X{ED} 7 MButt(-join=>1)
  void Refine();  // X{ED} 7 MButt()

  void OutOfCoreSimplification(); // X{ED} 7 MButt()

#include "GTSRetriangulator.h7"
  ClassDef(GTSRetriangulator, 1); // Coarsen or refine GTSurf
}; // endclass GTSRetriangulator


#endif
 GTSRetriangulator.h:1
 GTSRetriangulator.h:2
 GTSRetriangulator.h:3
 GTSRetriangulator.h:4
 GTSRetriangulator.h:5
 GTSRetriangulator.h:6
 GTSRetriangulator.h:7
 GTSRetriangulator.h:8
 GTSRetriangulator.h:9
 GTSRetriangulator.h:10
 GTSRetriangulator.h:11
 GTSRetriangulator.h:12
 GTSRetriangulator.h:13
 GTSRetriangulator.h:14
 GTSRetriangulator.h:15
 GTSRetriangulator.h:16
 GTSRetriangulator.h:17
 GTSRetriangulator.h:18
 GTSRetriangulator.h:19
 GTSRetriangulator.h:20
 GTSRetriangulator.h:21
 GTSRetriangulator.h:22
 GTSRetriangulator.h:23
 GTSRetriangulator.h:24
 GTSRetriangulator.h:25
 GTSRetriangulator.h:26
 GTSRetriangulator.h:27
 GTSRetriangulator.h:28
 GTSRetriangulator.h:29
 GTSRetriangulator.h:30
 GTSRetriangulator.h:31
 GTSRetriangulator.h:32
 GTSRetriangulator.h:33
 GTSRetriangulator.h:34
 GTSRetriangulator.h:35
 GTSRetriangulator.h:36
 GTSRetriangulator.h:37
 GTSRetriangulator.h:38
 GTSRetriangulator.h:39
 GTSRetriangulator.h:40
 GTSRetriangulator.h:41
 GTSRetriangulator.h:42
 GTSRetriangulator.h:43
 GTSRetriangulator.h:44
 GTSRetriangulator.h:45
 GTSRetriangulator.h:46
 GTSRetriangulator.h:47
 GTSRetriangulator.h:48
 GTSRetriangulator.h:49
 GTSRetriangulator.h:50
 GTSRetriangulator.h:51
 GTSRetriangulator.h:52
 GTSRetriangulator.h:53
 GTSRetriangulator.h:54
 GTSRetriangulator.h:55
 GTSRetriangulator.h:56
 GTSRetriangulator.h:57
 GTSRetriangulator.h:58
 GTSRetriangulator.h:59