//
//  Vrml 97 library
//  Copyright (C) 1998 Chris Morley
//
//  %W% %G%
//  VrmlNodeFog.h

#ifndef  _VRMLNODEFOG_
#define  _VRMLNODEFOG_

#include "VrmlNodeChild.h"

#include "VrmlSFColor.h"
#include "VrmlSFFloat.h"
#include "VrmlSFString.h"

class VrmlScene;

class VrmlNodeFog : public VrmlNodeChild {

public:

  // Define the fields of Fog nodes
  static VrmlNodeType *defineType(VrmlNodeType *t = 0);
  virtual VrmlNodeType *nodeType() const;

  VrmlNodeFog(VrmlScene *);
  virtual ~VrmlNodeFog();

  virtual VrmlNode *cloneMe() const;

  virtual VrmlNodeFog* toFog() const;

  virtual void addToScene( VrmlScene *s, const char *relUrl );

  virtual ostream& printFields(ostream& os, int indent);

  virtual void eventIn(double timeStamp,
		       const char *eventName,
		       const VrmlField *fieldValue);

  virtual void setField(const char *fieldName, const VrmlField &fieldValue);

  float *color()		{ return d_color.get(); }
  const char *fogType()		{ return d_fogType.get(); }
  float visibilityRange()	{ return d_visibilityRange.get(); }

private:

  VrmlSFColor d_color;
  VrmlSFString d_fogType;
  VrmlSFFloat d_visibilityRange;

};

#endif // _VRMLNODEFOG_

