lux::Cloud Class Reference

#include <cloud.h>

Inheritance diagram for lux::Cloud:
[legend]
Collaboration diagram for lux::Cloud:
[legend]

List of all members.

Public Member Functions

 Cloud (const RGBColor &sa, const RGBColor &ss, float gg, const RGBColor &emit, const BBox &e, const float &r, const Transform &v2w, const float &noiseScale, const float &t, const float &sharp, const float &v, const float &baseflatness, const int &octaves, const float &o, const float &offSet, const int &numspheres, const float &spheresize)
virtual ~Cloud ()
virtual bool IntersectP (const Ray &r, float *t0, float *t1) const
virtual BBox WorldBound () const
virtual float Density (const Point &p) const

Static Public Member Functions

static VolumeRegionCreateVolumeRegion (const Transform &volume2world, const ParamSet &params)

Private Member Functions

bool SphereFunction (const Point &p) const
float CloudShape (const Point &p) const
float NoiseMask (const Point &p) const
Vector Turbulence (const Point p, float noiseScale, int octaves) const
Vector Turbulence (const Vector &v, float &noiseScale, int &octaves) const
float CloudNoise (Point p, const float &omegaValue, int octaves) const

Private Attributes

BBox extent
Vector scale
PointsphereCentre
float inputRadius
float radius
bool cumulus
int numSpheres
float sphereSize
CumulusSpherespheres
float baseFadeDistance
float sharpness
float baseFlatness
float variability
float omega
float firstNoiseScale
float noiseOffSet
float turbulenceAmount
int numOctaves

Detailed Description

Definition at line 43 of file cloud.h.


Constructor & Destructor Documentation

lux::Cloud::Cloud ( const RGBColor sa,
const RGBColor ss,
float  gg,
const RGBColor emit,
const BBox e,
const float &  r,
const Transform v2w,
const float &  noiseScale,
const float &  t,
const float &  sharp,
const float &  v,
const float &  baseflatness,
const int octaves,
const float &  o,
const float &  offSet,
const int numspheres,
const float &  spheresize 
)
virtual lux::Cloud::~Cloud (  )  [inline, virtual]

Definition at line 50 of file cloud.h.

References sphereCentre, and spheres.


Member Function Documentation

float lux::Cloud::CloudNoise ( Point  p,
const float &  omegaValue,
int  octaves 
) const [private]

Definition at line 231 of file cloud.h.

References lux::Noise().

Referenced by NoiseMask(), and Turbulence().

float lux::Cloud::CloudShape ( const Point p  )  const [private]
VolumeRegion * Cloud::CreateVolumeRegion ( const Transform volume2world,
const ParamSet params 
) [static]
float lux::Cloud::Density ( const Point p  )  const [virtual]
virtual bool lux::Cloud::IntersectP ( const Ray r,
float *  t0,
float *  t1 
) const [inline, virtual]

Implements lux::VolumeRegion.

Definition at line 55 of file cloud.h.

References extent, lux::BBox::IntersectP(), and lux::DensityRegion::WorldToVolume.

float lux::Cloud::NoiseMask ( const Point p  )  const [private]

Definition at line 217 of file cloud.h.

References CloudNoise(), omega, and radius.

Referenced by Turbulence().

bool lux::Cloud::SphereFunction ( const Point p  )  const [private]

Definition at line 222 of file cloud.h.

References numSpheres, and spheres.

Referenced by CloudShape().

Vector lux::Cloud::Turbulence ( const Vector v,
float &  noiseScale,
int octaves 
) const [private]

Definition at line 183 of file cloud.h.

References Turbulence(), lux::Vector::x, lux::Vector::y, and lux::Vector::z.

Vector lux::Cloud::Turbulence ( const Point  p,
float  noiseScale,
int  octaves 
) const [private]
virtual BBox lux::Cloud::WorldBound (  )  const [inline, virtual]

Implements lux::VolumeRegion.

Definition at line 59 of file cloud.h.

References extent, lux::Transform::GetInverse(), and lux::DensityRegion::WorldToVolume.


Member Data Documentation

Definition at line 82 of file cloud.h.

Referenced by Cloud(), CloudShape(), and Turbulence().

float lux::Cloud::baseFlatness [private]

Definition at line 82 of file cloud.h.

Referenced by Cloud().

bool lux::Cloud::cumulus [private]

Definition at line 77 of file cloud.h.

Referenced by Cloud(), and CloudShape().

Definition at line 72 of file cloud.h.

Referenced by Cloud(), Density(), IntersectP(), and WorldBound().

float lux::Cloud::firstNoiseScale [private]

Definition at line 83 of file cloud.h.

Referenced by Cloud(), and Density().

float lux::Cloud::inputRadius [private]

Definition at line 75 of file cloud.h.

Referenced by Cloud().

float lux::Cloud::noiseOffSet [private]

Definition at line 83 of file cloud.h.

Referenced by Cloud(), and Turbulence().

Definition at line 84 of file cloud.h.

Referenced by Density().

Definition at line 78 of file cloud.h.

Referenced by Cloud(), CreateVolumeRegion(), and SphereFunction().

float lux::Cloud::omega [private]

Definition at line 83 of file cloud.h.

Referenced by CreateVolumeRegion(), NoiseMask(), and Turbulence().

float lux::Cloud::radius [private]

Definition at line 75 of file cloud.h.

Referenced by Cloud(), CloudShape(), CreateVolumeRegion(), and NoiseMask().

Definition at line 73 of file cloud.h.

float lux::Cloud::sharpness [private]

Definition at line 82 of file cloud.h.

Referenced by CreateVolumeRegion(), and Density().

Definition at line 74 of file cloud.h.

Referenced by Cloud(), CloudShape(), Turbulence(), and ~Cloud().

Definition at line 80 of file cloud.h.

Referenced by Cloud(), SphereFunction(), and ~Cloud().

float lux::Cloud::sphereSize [private]

Definition at line 79 of file cloud.h.

Referenced by Cloud().

Definition at line 83 of file cloud.h.

Referenced by Cloud(), and Density().

float lux::Cloud::variability [private]

Definition at line 82 of file cloud.h.

Referenced by CreateVolumeRegion(), and Turbulence().


The documentation for this class was generated from the following files:
Generated by  doxygen 1.6.2-20100208