#include <radiosty.h>
Inheritance diagram for csRadElement:

Public Methods | |
| csRadElement () | |
| ~csRadElement () | |
| float | GetPriority () |
| for queueing of elements to shoot their light. | |
| float | GetArea () const |
| get area size of element, precomputed. | |
| float | GetDiffuse () const |
| Get diffuse reflection value for element. 0.55-0.75 is nice. | |
| int | GetWidth () const |
| get width of lightmap and deltamap. | |
| int | GetHeight () const |
| get height of lightmap and deltamap. | |
| int | GetSize () const |
| get size of lightmap and deltamap. | |
| bool | DeltaIsZero (int suv) |
| check if a delta lumel is zero. | |
| virtual csSector* | GetSector () const=0 |
| return the sector of this element. | |
| virtual const csVector3& | GetNormal (int x, int y) const=0 |
| return the normal at the point x, y. | |
| csVector3 | GetAvgNormal () const |
| return the average normal for this element. | |
| bool | DeltaIsZero (int suv, int w, int h) |
| check if a patch has zero delta. | |
| void | GetTextureColour (int suv, int w, int h, csColor &avg, csRGBMap *texturemap) |
| Get avg texture colour for a patch. | |
| void | CapDelta (int suv, int w, int h, float max) |
| Cap every delta in patch to value. | |
| void | GetSummedDelta (int suv, int w, int h, csColor &sum) |
| Get the summed delta of a patch. | |
| csRGBFloatLightMap* | GetDeltaMap () |
| get the delta map. | |
| void | ShowDeltaMap () |
| For debugging: keep a pointer of the static lightmap and temporarily copy the deltamap to the static lightmap again. | |
| void | RestoreStaticMap () |
| For debugging: restore the state of the static lightmaps and free the copy of the static lightmap. | |
| float | GetLastShootingPriority () |
| Get last shooting priority of this radpoly. | |
| void | SetLastShootingPriority (float val) |
| Set last shooting priority. | |
| int | GetRepeatCount () |
| Get number of repeats shooting at the same priority for this poly. | |
| void | IncNumRepeats () |
| Increment the number of repeats of shooting at same priority by one. | |
| virtual void | Lumel2World (csVector3 &res, int x, int y)=0 |
| Get world coordinates for a lumel. | |
| float | GetOneLumelArea () const |
| get area of one lumel in world space. | |
| virtual void | GetCoverageMatrix (csFrustumView *lview, csCoverageMatrix *shadow_matrix)=0 |
| Populates the shadow coverage Matrix for this element. | |
| void | ComputePriority () |
| computes new priority value, summing the light unshot. More... | |
| void | AddDelta (csRadElement *src, int suv, int ruv, float fraction, const csColor &filtercolor) |
| Add a fraction to delta map of lumel from given source RadPoly. More... | |
| void | AddToDelta (int ruv, const csColor &value) |
| Add a value *to* the deltamap. | |
| void | CopyAndClearDelta () |
| light has been shot, copy delta to lightmap, clear delta, recompute priority. More... | |
| void | GetDeltaSums (float &red, float &green, float &blue) |
| Get the sums of red.green.blue in the delta map. | |
| void | ApplyAmbient (int red, int green, int blue) |
| Add ambient value to deltamap. | |
| csRGBMap* | ComputeTextureLumelSized () |
| Compute the texture map at the size of the lumel map. More... | |
Public Attributes | |
| csLightMap* | csmap |
Static Public Methods | |
| csRadElement* | GetRadElement (csPolygon3D &object) |
| Get a RadElement when you have a csPolygon3D or a csCurve. | |
| csRadElement* | GetRadElement (csCurve &object) |
| Get a RadElement. | |
Protected Methods | |
| virtual iMaterialWrapper* | GetMaterialWrapper ()=0 |
| return the material handle. | |
| virtual csColor | GetFlatColor () const=0 |
| return the flat color value. | |
| virtual void | Setup () |
Protected Attributes | |
| float | area |
| float | total_unshot_light |
| int | width |
| int | height |
| int | size |
| csRGBMap* | lightmap |
| ptr to static lightmap of polygon. | |
| csRGBFloatLightMap* | deltamap |
| the change to this lightmap, unshot light. | |
| csRGBMap* | copy_lightmap |
| if we are debugging radiosity then this is a copy of the lightmap that we store in order to restore the static lightmap values later. | |
| float | one_lumel_area |
| the area of one lumel of the polygon. | |
| float | last_shoot_priority |
| values for loop detection, last shooting priority and repeats. | |
| int | num_repeats |
Radiosity rendering specific info is kept here.
|
|
Add a fraction to delta map of lumel from given source RadPoly. suv is index in src, ruv is index in maps of this poly. |
|
|
computes new priority value, summing the light unshot. Note: Do no touch the variable total_unshot_light without doing a list->Delete(this), beforehand. |
|
|
Compute the texture map at the size of the lumel map. Gets the texture, and scales down. You must delete the map. |
|
|
light has been shot, copy delta to lightmap, clear delta, recompute priority. (this radpoly may not be in list as the total_unshot_light value changes). |