Retour
Version Originale

./aip/1.8aipmod/include/SLight.h :


// Copyright (C) 2002-2011 Nikolaus Gebhardt

// This file is part of the "Irrlicht Engine".

// For conditions of distribution and use, see copyright notice in irrlicht.h


#ifndef __S_LIGHT_H_INCLUDED__
#define __S_LIGHT_H_INCLUDED__

#include "SColor.h"

namespace irr
{
namespace video
{

//! Enumeration for different types of lights

enum E_LIGHT_TYPE
{
	//! point light, it has a position in space and radiates light in all directions

	ELT_POINT,
	//! spot light, it has a position in space, a direction, and a limited cone of influence

	ELT_SPOT,
	//! directional light, coming from a direction from an infinite distance

	ELT_DIRECTIONAL
};

//! Names for light types

const c8* const LightTypeNames[] =
{
	"Point",
	"Spot",
	"Directional",
	0
};

//! structure for holding data describing a dynamic point light.

/** Irrlicht supports point lights, spot lights, and directional lights.
*/
struct SLight
{
	SLight() : AmbientColor(0.f,0.f,0.f), DiffuseColor(1.f,1.f,1.f),
		SpecularColor(1.f,1.f,1.f), Attenuation(1.f,0.f,0.f),
		OuterCone(45.f), InnerCone(0.f), Falloff(2.f),
		Position(0.f,0.f,0.f), Direction(0.f,0.f,1.f),
		Radius(100.f), Type(ELT_POINT), CastShadows(true)
		{}

	//! Ambient color emitted by the light

	SColorf AmbientColor;

	//! Diffuse color emitted by the light.

	/** This is the primary color you want to set. */
	SColorf DiffuseColor;

	//! Specular color emitted by the light.

	/** For details how to use specular highlights, see SMaterial::Shininess */
	SColorf SpecularColor;

	//! Attenuation factors (constant, linear, quadratic)

	/** Changes the light strength fading over distance.
	Can also be altered by setting the radius, Attenuation will change to
	(0,1.f/radius,0). Can be overridden after radius was set. */
	core::vector3df Attenuation;

	//! The angle of the spot's outer cone. Ignored for other lights.

	f32 OuterCone;

	//! The angle of the spot's inner cone. Ignored for other lights.

	f32 InnerCone;

	//! The light strength's decrease between Outer and Inner cone.

	f32 Falloff;

	//! Read-ONLY! Position of the light.

	/** If Type is ELT_DIRECTIONAL, it is ignored. Changed via light scene node's position. */
	core::vector3df Position;

	//! Read-ONLY! Direction of the light.

	/** If Type is ELT_POINT, it is ignored. Changed via light scene node's rotation. */
	core::vector3df Direction;

	//! Read-ONLY! Radius of light. Everything within this radius will be lighted.

	f32 Radius;

	//! Read-ONLY! Type of the light. Default: ELT_POINT

	E_LIGHT_TYPE Type;

	//! Read-ONLY! Does the light cast shadows?

	bool CastShadows:1;
};

} // end namespace video

} // end namespace irr


#endif

Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
883 membres
1429 sujets
11121 messages
Dernier membre inscrit: Saidov17
19 invités en ligne
Aucun membre connecté
RSS Feed