Rogue Wave Views
Foundation Package API Reference Guide
Product Documentation:

Rogue Wave Views
Documentation Home
List of all members | Public Member Functions
IlvSpecularLightingFilter Class Reference

Specular Lighting filter. More...

#include <ilviews/bitmaps/filters/lighting.h>

Inheritance diagram for IlvSpecularLightingFilter:
IlvLightingFilter IlvBitmapFilter IlvValueInterface

Public Member Functions

 IlvSpecularLightingFilter (IlFloat surfaceScale=1.0, IlFloat specularConstant=1.0, IlFloat specularExponent=1.0, IlvLightSource *light=0)
 Constructor. More...
 
 ~IlvSpecularLightingFilter ()
 Destructor. More...
 
IlvBitmapDataapply (IlUInt count=0, const IlvBitmapData **inputs=0)
 
IlFloat getSpecularConstant () const
 Returns the specular constant. More...
 
IlFloat getSpecularExponent () const
 Returns the specular exponent. More...
 
void setSpecularConstant (IlFloat specularConstant)
 Sets the specular constant value. More...
 
void setSpecularExponent (IlFloat specularExponent)
 Sets the specular exponent value. More...
 
- Public Member Functions inherited from IlvLightingFilter
 IlvLightingFilter (IlFloat surfaceScale=1.0, IlvLightSource *light=0)
 Constructor. More...
 
virtual ~IlvLightingFilter ()
 Destructor. More...
 
IlFloatcomputeBumpMap (const IlvRGBBitmapData *src, IlFloat scaleX, IlFloat scaleY)
 Computes the bump map for the given image. More...
 
IlvLightSourcegetLightSource () const
 Returns the light source. More...
 
IlFloat getSurfaceScale () const
 Returns the surface scale. More...
 
void setLightSource (IlvLightSource *light)
 
void setSurfaceScale (IlFloat scale)
 Sets the surface scale. More...
 
- Public Member Functions inherited from IlvBitmapFilter
 IlvBitmapFilter ()
 Constructor. More...
 
virtual ~IlvBitmapFilter ()
 Destructor. More...
 
IlvBitmapDataapplyUnary (const IlvBitmapData *data)
 Convenience method for unary filters. More...
 
virtual const char * getClassName () const
 Returns the class name of the filter. More...
 
IlUInt getHeight () const
 Returns the height of the filter effect region. More...
 
const char *const * getInputs (IlUInt &count) const
 Returns the name of the input bitmap data. More...
 
const char * getName () const
 Returns the name of the filter. More...
 
IlUInt getRefCount () const
 Returns the reference count for this instance.
 
const char * getResult () const
 Returns the name of the result bitmap data. More...
 
IlUInt getWidth () const
 Returns the width of the filter effect region. More...
 
IlInt getX () const
 Returns the left coordinate of the filter effect region. More...
 
IlInt getY () const
 Returns the top coordinate of the filter effect region. More...
 
void lock ()
 Locks the current instance.
 
void setHeight (IlUInt height)
 Sets the height of the filter effect region. More...
 
void setInputs (IlUInt count, const char *const *name)
 Sets the input names of the filter. More...
 
void setName (const char *id)
 Sets the name of the filter. More...
 
void setResult (const char *name)
 Sets the result name of the filter. More...
 
void setWidth (IlUInt width)
 Sets the width of the filter effect region. More...
 
void setX (IlInt x)
 Sets the left coordinate of the filter effect region. More...
 
void setY (IlInt y)
 Sets the top coordinate of the filter effect region. More...
 
void unLock ()
 Unlocks the current instance. When the reference count is 0, the instance is deleted.
 
- Public Member Functions inherited from IlvValueInterface
virtual IlBoolean applyValue (const IlvValue &value)
 Apply an accessor. More...
 
virtual IlBoolean changeValue (const IlvValue &val)
 Changes the value of an accessor. More...
 
virtual IlBoolean changeValues (const IlvValue *values, IlUShort count=0)
 Changes several accessor values simultaneously. More...
 
virtual void getAccessors (const IlSymbol *const **names, const IlvValueTypeClass *const **types, IlUInt &count) const
 Retrieves the list of available accessors of an object. More...
 
virtual IlvValuequeryValue (IlvValue &val) const
 Retrieves an accessor value. More...
 
virtual void queryValues (IlvValue *values, IlUShort count) const
 Retrieves multiple accessor values simultaneously. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from IlvBitmapFilter
static IlvBitmapFilterCreate (const char *classname, IlBoolean forceLoad=IlTrue)
 This static method creates an instance of a bitmap filter of given classname. If the filter class is not registered and forceLoad is IlTrue, an attempt to load a dynamic module for this filter is made. More...
 
static const char ** GetRegisteredFilters (IlUInt &num)
 This static method returns an array of registered filter class names. More...
 

Detailed Description

Specular Lighting filter.

Library: ilvbmpflt

This class allows you to light an image using a specular lighting model. The alpha channel of the source image is used as the bump map.

The resulting image is computed as follows: Sr = ks * pow(N.H, specularExponent) * Lr Sg = ks * pow(N.H, specularExponent) * Lg Sb = ks * pow(N.H, specularExponent) * Lb Sa = Max(Sr, Sg, Sb) where ks = specular lighting constant. N = surface normal unit vector, a function of x and y. H = unit vector pointing from surface to light, a function of x and y in the point and spot light cases. Lr, Lg, Lb = RGB components of the light, a function of x and y in the spot light case. N is a function of x and y and depends on the surface gradient as follows: The surface described by the input alpha image A(x, y) is: Z(x, y) = surfaceScale * Ain(x, y)

See IlvDiffuseLightingFilter for a definition of N. Unlike IlvDiffuseLightingFilter, IlvSpecularLightingFilter produces a non-opaque image.

See also
IlvRGBBitmapData, IlvBitmapFilter, IlvLightingFilter, IlvDiffuseLightingFilter, IlvLightSource, IlvDistantLight, IlvPointLight, IlvSpotLight

Constructor & Destructor Documentation

§ IlvSpecularLightingFilter()

IlvSpecularLightingFilter::IlvSpecularLightingFilter ( IlFloat  surfaceScale = 1.0,
IlFloat  specularConstant = 1.0,
IlFloat  specularExponent = 1.0,
IlvLightSource light = 0 
)

Constructor.

Initializes a new instance of the class IlvSpecularLightingFilter.

The default surface scale is 1.0. The default specular constant is 1.0. The default specular exponent is 1.0.

§ ~IlvSpecularLightingFilter()

IlvSpecularLightingFilter::~IlvSpecularLightingFilter ( )

Destructor.

The destructor releases all the memory used by the instance.

Member Function Documentation

§ apply()

IlvBitmapData* IlvSpecularLightingFilter::apply ( IlUInt  count = 0,
const IlvBitmapData **  inputs = 0 
)
virtual

Applies the specular lighting to the given image.

Reimplemented from IlvBitmapFilter.

§ getSpecularConstant()

IlFloat IlvSpecularLightingFilter::getSpecularConstant ( ) const

Returns the specular constant.

Returns
The specular constant.

§ getSpecularExponent()

IlFloat IlvSpecularLightingFilter::getSpecularExponent ( ) const

Returns the specular exponent.

Returns
The specular exponent.

§ setSpecularConstant()

void IlvSpecularLightingFilter::setSpecularConstant ( IlFloat  specularConstant)

Sets the specular constant value.

Parameters
specularConstantThe new specular constant.

§ setSpecularExponent()

void IlvSpecularLightingFilter::setSpecularExponent ( IlFloat  specularExponent)

Sets the specular exponent value.

Parameters
specularExponentThe new specular exponent.

© Copyright 2017, Rogue Wave Software, Inc. All Rights Reserved.
Rogue Wave is a registered trademark of Rogue Wave Software, Inc. in the United States and other countries. All other trademarks are the property of their respective owners.