Initial commit.
This commit is contained in:
commit
44b5f2392f
98 changed files with 11750 additions and 0 deletions
74
lighting.h
Normal file
74
lighting.h
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
// -*- C++ -*-
|
||||
|
||||
#ifndef MBOSTOCK_LIGHTING_H
|
||||
#define MBOSTOCK_LIGHTING_H
|
||||
|
||||
#include <OpenGL/gl.h>
|
||||
|
||||
namespace mbostock {
|
||||
|
||||
class Light {
|
||||
public:
|
||||
Light();
|
||||
|
||||
void initialize() const;
|
||||
void display() const;
|
||||
|
||||
void enable();
|
||||
void disable();
|
||||
inline bool enabled() const { return enabled_; }
|
||||
|
||||
void setAmbient(float r, float g, float b, float a);
|
||||
void setDiffuse(float r, float g, float b, float a);
|
||||
void setSpecular(float r, float g, float b, float a);
|
||||
void setPosition(float x, float y, float z, float w);
|
||||
void setSpotDirection(float x, float y, float z);
|
||||
void setSpotExponent(float e);
|
||||
void setConstantAttenuation(float a);
|
||||
void setLinearAttenuation(float a);
|
||||
void setQuadraticAttenuation(float a);
|
||||
|
||||
private:
|
||||
GLenum id_;
|
||||
bool enabled_;
|
||||
float ambient_[4];
|
||||
float diffuse_[4];
|
||||
float specular_[4];
|
||||
float position_[4];
|
||||
float spotDirection_[3];
|
||||
float spotExponent_;
|
||||
float spotCutoff_;
|
||||
float constantAttenuation_;
|
||||
float linearAttenuation_;
|
||||
float quadraticAttenuation_;
|
||||
|
||||
friend class Lighting;
|
||||
};
|
||||
|
||||
class Lighting {
|
||||
public:
|
||||
Lighting();
|
||||
|
||||
void initialize() const;
|
||||
void display() const;
|
||||
|
||||
void setGlobalAmbient(float r, float g, float b, float a);
|
||||
inline Light& light(int i) { return lights_[i]; }
|
||||
inline int lights() const { return 8; }
|
||||
|
||||
private:
|
||||
float globalAmbient_[4];
|
||||
Light lights_[8];
|
||||
};
|
||||
|
||||
class Lightings {
|
||||
public:
|
||||
static const Lighting& standard();
|
||||
|
||||
private:
|
||||
Lightings();
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue