VAPoR  0.1
params.h
Go to the documentation of this file.
1 //************************************************************************
2 // *
3 // Copyright (C) 2004 *
4 // University Corporation for Atmospheric Research *
5 // All Rights Reserved *
6 // *
7 //************************************************************************/
8 //
9 // File: params.h
10 //
11 // Author: Alan Norton
12 // National Center for Atmospheric Research
13 // PO 3000, Boulder, Colorado
14 //
15 // Date: October 2004
16 //
17 // Description: Defines the Params and the RendererParams classes.
18 // This is an abstract class for all the tabbed panel params classes.
19 // Supports functionality common to all the tabbed panel params.
20 //
21 #ifndef PARAMS_H
22 #define PARAMS_H
23 
24 #include <cassert>
25 #include <qwidget.h>
26 #include <vapor/XmlNode.h>
27 #include <vapor/ExpatParseMgr.h>
28 #include <vapor/ParamNode.h>
29 #include <vapor/common.h>
30 #include <vapor/ParamsBase.h>
31 #include <vapor/RegularGrid.h>
32 #include "Box.h"
33 
34 class QWidget;
35 
36 using namespace VetsUtil;
37 //Error tolerance for gui parameters:
38 #define ROUND_OFF 1.e-6f
39 #define MAXVIZWINS 16
40 #define OUT_OF_BOUNDS -1.e30f
41 
42 namespace VAPoR{
59 };
60 class XmlNode;
61 class ParamNode;
62 class DummyParams;
63 class MapperFunction;
64 class TransferFunction;
65 class ViewpointParams;
66 class RegionParams;
67 class DataMgr;
68 class Histo;
75 class PARAMS_API Params : public MyBase, public ParamsBase {
76 
77 public:
82 Params(
83  XmlNode *parent, const string &name, int winNum
84  );
86 Params(int winNum, const string& name) : ParamsBase(name) {
87  vizNum = winNum;
88  if(winNum < 0) local = false; else local = true;
89  for (int i = 0; i<6; i++) {
90  savedBoxVoxExts[i] =0;
91  savedBoxExts[i] =0;
92  }
93  savedRefLevel = -1;
94 
95  previousClass = 0;
96 }
97 
99  Params(const Params& p);
105  virtual ~Params();
106 
109  virtual const std::string& getShortName()=0;
110 
115  static int GetCurrentParamsInstanceIndex(int pType, int winnum){
116  return currentParamsInstance[make_pair(pType,winnum)];
117  }
123  static int GetCurrentParamsInstanceIndex(const std::string tag, int winnum){
124  return GetCurrentParamsInstanceIndex(GetTypeFromTag(tag),winnum);
125  }
126 
131  static void SetCurrentParamsInstanceIndex(int pType, int winnum, int instance){
132  currentParamsInstance[make_pair(pType,winnum)] = instance;
133  }
134 
141  static Params* GetParamsInstance(int pType, int winnum = -1, int instance = -1);
142 
149  static Params* GetParamsInstance(const std::string tag, int winnum = -1, int instance = -1){
150  return GetParamsInstance(GetTypeFromTag(tag), winnum, instance);
151  }
152 
157  static Params* GetCurrentParamsInstance(int pType, int winnum){
158  Params* p = GetParamsInstance(pType, winnum, -1);
159  if (p->isLocal()) return p;
160  return GetDefaultParams(pType);
161  }
162 
168  return defaultParamsInstance[pType];
169  }
170 
176  static Params* GetDefaultParams(const string& tag){
177  return defaultParamsInstance[GetTypeFromTag(tag)];
178  }
179 
184  static void SetDefaultParams(int pType, Params* p) {
185  defaultParamsInstance[pType] = p;
186  }
187 
193  static void SetDefaultParams(const string& tag, Params* p) {
194  defaultParamsInstance[GetTypeFromTag(tag)] = p;
195  }
199  static Params* CreateDefaultParams(int pType){
200  Params*p = (Params*)(createDefaultFcnMap[pType])();
201  return p;
202  }
203 
204 
210  static int GetNumParamsInstances(int pType, int winnum){
211  return paramsInstances[make_pair(pType, winnum)].size();
212  }
213 
220  static int GetNumParamsInstances(const std::string tag, int winnum){
221  return GetNumParamsInstances(GetTypeFromTag(tag), winnum);
222  }
223 
229  static void AppendParamsInstance(int pType, int winnum, Params* p){
230  paramsInstances[make_pair(pType,winnum)].push_back(p);
231  }
232 
239  static void AppendParamsInstance(const std::string tag, int winnum, Params* p){
240  AppendParamsInstance(GetTypeFromTag(tag),winnum, p);
241  }
242 
248  static void RemoveParamsInstance(int pType, int winnum, int instance);
249 
256  static void InsertParamsInstance(int pType, int winnum, int posn, Params* dp){
257  vector<Params*>& instances = paramsInstances[make_pair(pType,winnum)];
258  instances.insert(instances.begin()+posn, dp);
259  }
260 
266  static vector<Params*>& GetAllParamsInstances(int pType, int winnum){
267  return paramsInstances[make_pair(pType,winnum)];
268  }
269 
276  static vector<Params*>& GetAllParamsInstances(const std::string tag, int winnum){
277  return GetAllParamsInstances(GetTypeFromTag(tag),winnum);
278  }
279 
284  static map <int, vector<Params*> >* cloneAllParamsInstances(int winnum);
285 
290  static vector <Params*>* cloneAllDefaultParams();
291 
295  static bool IsRenderingEnabled(int winnum);
296 
300  virtual bool isRenderParams() {return false;}
301 
305  virtual Params* deepCopy(ParamNode* nd = 0);
306 
308  virtual void restart() = 0;
309 
312  virtual int getVizNum() {return vizNum;}
313 
316  virtual void setLocal(bool lg){ if (lg) {
317  local = true;
318  }
319  else local = false;
320  }
321 
324  bool isLocal() {return local;}
325 
328  virtual void setVizNum(int vnum){vizNum = vnum;}
329 
330  virtual void SetVisualizerNum(int viznum);
331  virtual int GetVisualizerNum();
337 //
338  virtual bool reinit(bool) {return false;}
344  virtual Box* GetBox() {return 0;}
349  virtual int getOrientation() { assert(0); return -1;}
350 
351 
357  virtual void calcContainingStretchedBoxExtentsInCube(float extents[6], bool rotated = false)
358  {if (!rotated) calcStretchedBoxExtentsInCube(extents, -1);
359  else calcRotatedStretchedBoxExtentsInCube(extents);}
360 
361  void calcRotatedStretchedBoxExtentsInCube(float extents[6]);
362 
367  virtual bool isDomainConstrained() {return true;}
368 
369  //Following methods, while public, are not part of extensibility API
370 
371 #ifndef DOXYGEN_SKIP_THIS
372  void setLocalBox(const float boxMin[3], const float boxMax[3], int timestep = -1 ) {
379  double extents[6];
380  for (int i = 0; i<3; i++){
381  extents[i] = boxMin[i];
382  extents[i+3] = boxMax[i];
383  }
384  GetBox()->SetLocalExtents(extents,timestep);
385  }
386  void setLocalBox(const double boxMin[3], const double boxMax[3], int timestep = -1 ) {
387  double extents[6];
388  for (int i = 0; i<3; i++){
389  extents[i] = boxMin[i];
390  extents[i+3] = boxMax[i];
391  }
392  GetBox()->SetLocalExtents(extents,timestep);
393  }
394  //Map min/max corners of box to voxels
395  void mapBoxToVox(DataMgr* dataMgr, double bxmin[3], double bxmax[3], int refLevel, int lod, size_t timestep, size_t voxExts[6]);
396  void setTheta(float th) {
397  double angles[3];
398  GetBox()->GetAngles(angles);
399  angles[0]=th;
400  GetBox()->SetAngles(angles);
401  }
402  void setPhi(float ph) {
403  double angles[3];
404  GetBox()->GetAngles(angles);
405  angles[1]=ph;
406  GetBox()->SetAngles(angles);
407  }
408  void setPsi(float ps) {
409  double angles[3];
410  GetBox()->GetAngles(angles);
411  angles[2]=ps;
412  GetBox()->SetAngles(angles);
413  }
414 
421  void getLocalBox(float boxMin[3], float boxMax[3], int timestep = -1) {
422  double extents[6];
423  GetBox()->GetLocalExtents(extents, timestep);
424  for (int i = 0; i<3; i++){
425  boxMin[i] = extents[i];
426  boxMax[i] = extents[i+3];
427  }
428  }
429  void getLocalBox(double boxMin[3], double boxMax[3], int timestep = -1) {
430  double extents[6];
431  GetBox()->GetLocalExtents(extents, timestep);
432  for (int i = 0; i<3; i++){
433  boxMin[i] = extents[i];
434  boxMax[i] = extents[i+3];
435  }
436  }
437 
438  float getPhi() {
439  if (GetBox()->GetAngles().size() < 2) return 0.f;
440  return((float)GetBox()->GetAngles()[1]);
441  }
442  float getTheta() {
443  if (GetBox()->GetAngles().size() < 1) return 0.f;
444  return((float)GetBox()->GetAngles()[0]);
445  }
446  float getPsi() {
447  if (GetBox()->GetAngles().size() < 3) return 0.f;
448  return((float)GetBox()->GetAngles()[2]);
449  }
450 
451  static Params* CreateDummyParams(std::string tag);
452  static void BailOut (const char *errstr, const char *fname, int lineno);
453 
454  static int getNumDummyClasses(){return dummyParamsInstances.size();}
455  static Params* getDummyParamsInstance(int i) {return dummyParamsInstances[i];}
456  static void addDummyParamsInstance(Params*const & p ) {dummyParamsInstances.push_back(p);}
457 
458  static void clearDummyParamsInstances();
459  static const std::string& paramName(ParamsBaseType t);
460  static const string _dvrParamsTag;
461  static const string _isoParamsTag;
462 
463  static const string _probeParamsTag;
464  static const string _twoDParamsTag;
465  static const string _twoDDataParamsTag;
466  static const string _twoDImageParamsTag;
467  static const string _regionParamsTag;
468  static const string _viewpointParamsTag;
469  static const string _animationParamsTag;
470  static const string _flowParamsTag;
471  static const string _RefinementLevelTag;
472  static const string _CompressionLevelTag;
473  static const string _FidelityLevelTag;
474  static const string _IgnoreFidelityTag;
475  static const string _VariableNameTag;
476  static const string _VariableNamesTag;
477  static const string _VisualizerNumTag;
478  static const string _VariablesTag;
479  static const string _Variables2DTag;
480  static const string _Variables3DTag;
481 
482  static const string _vizNumAttr;
483  static const string _localAttr;
484  static const string _numVariablesAttr;
485  static const string _variableTag;
486  static const string _leftEditBoundAttr;
487  static const string _rightEditBoundAttr;
488  static const string _variableNumAttr;
489  static const string _variableNameAttr;
490  static const string _opacityScaleAttr;
491  static const string _numTransformsAttr;
492  static const string _useTimestepSampleListAttr;
493  static const string _timestepSampleListAttr;
494 
495 
496  void setStretchedBox(const float[3], const float[3], int);
497  void getStretchedBox(float boxmin[3], float boxmax[3], int timestep);
498  //Determine the box extents in the unit cube.
499  void calcStretchedBoxExtentsInCube(float extents[6], int timestep);
500 
501  void calcStretchedBoxExtents(float* extents, int timestep);
502  void calcBoxExtents(float* extents, int timestep);
503  //Calculate the box in local coords, using any theta or phi
504  virtual void calcLocalBoxCorners(float corners[8][3], float extraThickness, int timestep, float rotation = 0.f, int axis = -1);
505 
506  // Construct transformation as a mapping of [-1,1]^3 into volume array
507  // coordinates at current resolution
508  void buildLocalCoordTransform(float transformMatrix[12], float extraThickness, int timestep, float rotation = 0.f, int axis = -1);
509  void buildLocalCoordTransform(double transformMatrix[12], double extraThickness, int timestep, float rotation = 0.f, int axis = -1);
510 
511  //Construct transform of form (x,y)-> a[0]x+b[0],a[1]y+b[1],
512  //Mapping [-1,1]X[-1,1] into local 3D volume coordinates.
513  void buildLocal2DTransform(int dataOrientation, float a[2],float b[2], float* constVal, int mappedDims[3]);
514 
515  //Method indicates if the geometry is contstrained to fit in a plane (e.g. for manips)
516  //Default is false;
517  virtual bool isPlanar() {return false;}
518 
519  //Helper function for testing distances,
520  //testing whether a point is inside or outside of cube
521  //Return is positive if point is outside. Arguments are outward pointing
522  //unit normal vectors and associated points (corners) of probe faces.
523  static float distanceToCube(const float point[3],const float faceNormals[6][3], const float faceCorners[6][3]);
524  //Modifiction of above that provides x,y,z components of distances outside, when point is outside.
525  //This is useful if the box is highly nonuniform in x,y,z
526  static float distancesToCube(const float point[3],const float faceNormals[6][3], const float faceCorners[6][3], float maxDist[3]);
527 
528 
529  //
530  // Parse command line arguements
531  //
532  static bool searchCmdLine(const char *flag);
533  static const char* parseCmdLine(const char *flag);
534 
535  //Determine a new value of theta and phi when the probe is rotated around either the
536  //x-, y-, or z- axis. axis is 0,1,or 1. rotation is in degrees.
537  void convertThetaPhiPsi(float *newTheta, float* newPhi, float* newPsi, int axis, float rotation);
538  static int getGrids(size_t ts, const vector<string>& varnames, double extents[6], int* refLevel, int* lod, RegularGrid** grids);
539 
540 
541 protected:
542  bool local;
543 
544  //Keep track of which window number corresp to this. -1 for global or default parameters.
545  //
546  int vizNum;
547  double savedBoxExts[6];
548  int savedBoxVoxExts[6];
549  int savedRefLevel;
550 
551  //Params instances are vectors of Params*, one per instance, indexed by paramsBaseType, winNum
552  static map<pair<int,int>,vector<Params*> > paramsInstances;
553  //CurrentRenderParams indexed by paramsBaseType, winNum
554  static map<pair<int,int>, int> currentParamsInstance;
555  //Dummy params are those that are found in a session file but not
556  //available in the current code.
557  //default params instances indexed by paramsBaseType
558  static map<int, Params*> defaultParamsInstance;
559  static vector<Params*> dummyParamsInstances;
560 #endif //DOXYGEN_SKIP_THIS
561 };
562 
570 public:
571 
576  RenderParams(XmlNode *parent, const string &name, int winnum);
577 
578 
581  bool isEnabled(){return enabled;}
582 
585  virtual void setEnabled(bool value) {enabled = value; stopFlag = false;}
586 
590  virtual bool usingVariable(const std::string& varname) = 0;
591  virtual void SetRefinementLevel(int level){
592  GetRootNode()->SetElementLong(_RefinementLevelTag, level);
593  setAllBypass(false);
594  }
595  virtual int GetRefinementLevel(){
596  const vector<long>defaultRefinement(1,0);
597  return (GetRootNode()->GetElementLong(_RefinementLevelTag,defaultRefinement)[0]);
598  }
602  virtual int GetCompressionLevel();
606  virtual int GetFidelityLevel();
610  virtual void SetFidelityLevel(int level);
614  virtual bool GetIgnoreFidelity();
618  virtual void SetIgnoreFidelity(bool val);
622  virtual void SetCompressionLevel(int val);
623 
629  virtual const float* getSelectedPointLocal() {
630  return 0;
631  }
632 
634  // \param[in] ViewpointParams* vpp Current applicable ViewpointParams instance
635  // \param[in] const float extents[6] Box extents in world coordinates.
636  // \retval float distance from camera to box
637  static float getCameraDistance(ViewpointParams* vpp, const double exts[6]);
638 
639  // Pure virtual method indicates whether or not the geometry is opaque.
640  // \retval true if it is opaque.
641  virtual bool IsOpaque()=0;
642 
647  void setBypass(int timestep) {bypassFlags[timestep] = 2;}
648 
653  void setPartialBypass(int timestep) {bypassFlags[timestep] = 1;}
654 
659  void setAllBypass(bool val);
660 
664  bool doBypass(int ts) {return ((ts < bypassFlags.size()) && bypassFlags[ts]);}
665 
670  bool doAlwaysBypass(int ts) {return ((ts < bypassFlags.size()) && bypassFlags[ts]>1);}
671 
672 
676  virtual bool UsesMapperFunction() {return false;}
677 
682  virtual bool VariablesAre3D() {return true;}
683 
684 #ifndef DOXYGEN_SKIP_THIS
685  //Following methods are deprecated, used by some built-in renderparams classes
686 
691  // \param[in] vpp Current applicable ViewpointParams instance
692  // \param[in] rp Current applicable RegionParams instance
693  // \param[in] timestep Current applicable time step
694  // \retval float distance from camera
695  virtual float getCameraDistance(ViewpointParams* vpp, RegionParams* rp, int timestep);
696 
697  //Deprecated constructor used by some built-in classes
698  RenderParams(int winNum, const string& name) : Params(winNum, name) {
699 
700  local = true;
701 
702  previousClass = 0;
703  minColorEditBounds = 0;
704  maxColorEditBounds = 0;
705  minOpacEditBounds = 0;
706  maxOpacEditBounds = 0;
707 
708  }
709  virtual ~RenderParams(){
710  if (minColorEditBounds) delete [] minColorEditBounds;
711  if (maxColorEditBounds) delete [] maxColorEditBounds;
712  if (minOpacEditBounds) delete [] minOpacEditBounds;
713  if (maxOpacEditBounds) delete [] maxOpacEditBounds;
714 
715  }
716 
717  virtual Params* deepCopy(ParamNode* nd = 0);
718  virtual bool isRenderParams() {return true;}
719 
720  //following does nothing for renderParams
721  virtual void setLocal(bool ){ assert(0);}
722 
723  virtual int getSessionVarNum(){assert(0); return -1;} //needed for transfer functions
724  virtual float GetHistoStretch() { assert(0); return 1.f;}
725  virtual bool getEditMode() {assert(0); return true;}
726  virtual const float* getCurrentDatarange(){assert(0); return(0);}
727  virtual void hookupTF(TransferFunction* , int ) {assert(0);}
728 
729 
730  //The following may be redefined by some renderer params. Parent version should never be invoked
731  virtual void setMinColorMapBound(float) {assert(0);}
732  virtual void setMaxColorMapBound(float){assert(0);}
733  virtual void setMinOpacMapBound(float){assert(0);}
734  virtual void setMaxOpacMapBound(float){assert(0);}
735 
736 
737  float getMinColorMapBound();
738  float getMaxColorMapBound();
739 
740  virtual void setMinColorEditBound(float val, int var) {
741  minColorEditBounds[var] = val;
742  }
743  virtual void setMaxColorEditBound(float val, int var) {
744  maxColorEditBounds[var] = val;
745  }
746  virtual float getMinColorEditBound(int var) {
747  return minColorEditBounds[var];
748  }
749  virtual float getMaxColorEditBound(int var) {
750  return maxColorEditBounds[var];
751  }
752  //And opacity:
753 
754  virtual float getMinOpacMapBound();
755  virtual float getMaxOpacMapBound();
756 
757 
758  virtual void setMinOpacEditBound(float val, int var) {
759  minOpacEditBounds[var] = val;
760  }
761  virtual void setMaxOpacEditBound(float val, int var) {
762  maxOpacEditBounds[var] = val;
763  }
764  virtual float getMinOpacEditBound(int var) {
765  return minOpacEditBounds[var];
766  }
767  virtual float getMaxOpacEditBound(int var) {
768  return maxOpacEditBounds[var];
769  }
770 
771  virtual MapperFunction* GetMapperFunc() {return 0;}
772 
773  void setStopFlag(bool val = true) {stopFlag = val;}
774  bool getStopFlag() {return stopFlag;}
775  int getBypassValue(int i) {return bypassFlags[i];} //only used for debugging
776 
777  void initializeBypassFlags();
778  //Used only by params with rotated boxes:
779  bool cropToBox(const double boxExts[6]);
780  bool intersectRotatedBox(double boxexts[6], double pointFound[3], double probeCoords[2]);
781  bool fitToBox(const double boxExts[6]);
782  int interceptBox(const double boxExts[6], double intercept[6][3]);
783  //change box dimensions after a rotation so that it appears to be the same size:
784  void rotateAndRenormalizeBox(int axis, float rotVal);
785  //Obtain region that contains rotated box
786  void getLocalContainingRegion(float regMin[3], float regMax[3]);
787  void getRotatedVoxelExtents(float voxdims[2]);
788  //Calculate a histogram of a slice of 3d variables
789  void calcSliceHistogram(int ts, Histo* histo);
790  //Used for rendering texture of variable. Default is linear:
791  virtual int getInterpolationOrder() {return 1;}
792 
793 protected:
794 
795  // The enabled flag is only used by renderer params
796  //
797  bool enabled;
798  bool stopFlag; //Indicates if user asked to stop (only with flow calc now)
799  //Needed for renderer params:
800  float* minColorEditBounds;
801  float* maxColorEditBounds;
802  float* minOpacEditBounds;
803  float* maxOpacEditBounds;
804 
805  vector<int> bypassFlags;
806 #endif //DOXYGEN_SKIP_THIS
807 };
808 #ifndef DOXYGEN_SKIP_THIS
809 class DummyParams : public Params {
810  public:
811  DummyParams(XmlNode *parent, const std::string tag, int winnum);
812  virtual ~DummyParams(){}
813  virtual void restart(){}
814  virtual int GetRefinementLevel() {
815  return 0;
816  }
817 
818  virtual int GetCompressionLevel() {return 0;}
819 
820  virtual void SetCompressionLevel(int){}
821 
822  virtual bool reinit(bool){return false;}
823 
824  virtual bool IsOpaque() {return true;}
825 
826  virtual bool usingVariable(const std::string& ){
827  return false;
828  }
829  const std::string &getShortName(){return myTag;}
830 
831  std::string myTag;
832 
833 };
834 
835 class PARAMS_API Point4{
836 public:
837  Point4() {point[0]=point[1]=point[2]=point[3]=0.f;}
838  Point4(const float data[4]){setVal(data);}
839  void setVal(const float sourceData[4]){
840  for (int i = 0; i< 4; i++) point[i] = sourceData[i];
841  }
842  void set3Val(const float sourceData[3]){
843  for (int i = 0; i< 3; i++) point[i] = sourceData[i];
844  }
845  void set1Val(int index, float sourceData){
846  point[index] = sourceData;
847  }
848  float getVal(int i){return point[i];}
849  void copy3Vals(float* dest) {dest[0]=point[0];dest[1]=point[1];dest[2]=point[2];}
850 protected:
851  float point[4];
852 };
853 #endif //DOXYGEN_SKIP_THIS
854 }; //End namespace VAPoR
855 #endif //PARAMS_H
#define PARAMS_API
Definition: common.h:63
static void AppendParamsInstance(const std::string tag, int winnum, Params *p)
Definition: params.h:239
static Params * CreateDefaultParams(int pType)
Definition: params.h:199
virtual void setVizNum(int vnum)
Definition: params.h:328
3D or 2D box with options for orientation angles and extents changing in time. Intended to be used in...
Definition: Box.h:34
A pure virtual class for managing parameters used in visualization.
Definition: params.h:75
virtual const float * getSelectedPointLocal()
Definition: params.h:629
A Params subclass for managing parameters used by Renderers.
Definition: params.h:569
static int GetCurrentParamsInstanceIndex(const std::string tag, int winnum)
Definition: params.h:123
virtual bool isDomainConstrained()
Definition: params.h:367
bool doAlwaysBypass(int ts)
Definition: params.h:670
static Params * GetParamsInstance(const std::string tag, int winnum=-1, int instance=-1)
Definition: params.h:149
virtual bool UsesMapperFunction()
Definition: params.h:676
static Params * GetCurrentParamsInstance(int pType, int winnum)
Definition: params.h:157
virtual int getOrientation()
Definition: params.h:349
Region bit indicates the region bounds have changed.
Definition: params.h:48
static int GetNumParamsInstances(int pType, int winnum)
Definition: params.h:210
A class for describing a 3D axis-aligned region in user space.
Definition: regionparams.h:52
Nodes with state in Xml tree representation.
Definition: ParamsBase.h:57
virtual bool VariablesAre3D()
Definition: params.h:682
An Xml tree.
Definition: XmlNode.h:47
static void InsertParamsInstance(int pType, int winnum, int posn, Params *dp)
Definition: params.h:256
Definition: Base64.h:6
This class implements a 2D or 3D regular grid: a tessellation of Euculidean space by rectangles (2D) ...
static void SetCurrentParamsInstanceIndex(int pType, int winnum, int instance)
Definition: params.h:131
static Params * GetDefaultParams(ParamsBase::ParamsBaseType pType)
Definition: params.h:167
static void SetDefaultParams(const string &tag, Params *p)
Definition: params.h:193
virtual void calcContainingStretchedBoxExtentsInCube(float extents[6], bool rotated=false)
Definition: params.h:357
virtual void setLocal(bool lg)
Definition: params.h:316
A class for describing the viewpoint and lights.
virtual bool reinit(bool)
Definition: params.h:338
NavigatingBit indicates the viewpoint is currently moving.
Definition: params.h:50
LightingBit indicates there has been a change in lighting.
Definition: params.h:52
DirtyBitType
Definition: params.h:46
Params(int winNum, const string &name)
Deprecated constructor, needed for built-in classes that do not have associated XML node: ...
Definition: params.h:86
virtual bool isRenderParams()
Definition: params.h:300
virtual void SetRefinementLevel(int level)
Definition: params.h:591
virtual void setEnabled(bool value)
Definition: params.h:585
virtual int GetRefinementLevel()
Definition: params.h:595
static vector< Params * > & GetAllParamsInstances(const std::string tag, int winnum)
Definition: params.h:276
void setBypass(int timestep)
Definition: params.h:647
virtual Box * GetBox()
Definition: params.h:344
VetsUtil base class.
Definition: MyBase.h:68
ProjMatrixBit indicates there has been a change in the projection matrix (e.g. viewpoint change) ...
Definition: params.h:54
void setPartialBypass(int timestep)
Definition: params.h:653
static Params * GetDefaultParams(const string &tag)
Definition: params.h:176
static int GetNumParamsInstances(const std::string tag, int winnum)
Definition: params.h:220
virtual int getVizNum()
Definition: params.h:312
static void SetDefaultParams(int pType, Params *p)
Definition: params.h:184
static int GetCurrentParamsInstanceIndex(int pType, int winnum)
Definition: params.h:115
bool doBypass(int ts)
Definition: params.h:664
bool isLocal()
Definition: params.h:324
static vector< Params * > & GetAllParamsInstances(int pType, int winnum)
Definition: params.h:266
static void AppendParamsInstance(int pType, int winnum, Params *p)
Definition: params.h:229
An Xml tree.
Definition: ParamNode.h:30
bool isEnabled()
Definition: params.h:581
ViewportBit indicates a change in viewport, e.g. resize of window.
Definition: params.h:56
AnimationBit indicates a change in current frame.
Definition: params.h:58