7 #ifndef CAFU_SCENEGRAPH_BEZIERPATCHNODE_HPP_INCLUDED
8 #define CAFU_SCENEGRAPH_BEZIERPATCHNODE_HPP_INCLUDED
18 class RenderMaterialT;
26 template<
class T>
class BezierPatchT;
34 friend class ::MapBezierPatchT;
58 void UpdateMeshColor(
const float red,
const float green,
const float blue,
const float alpha);
61 void WriteTo(std::ostream& OutFile,
aux::PoolT& Pool)
const;
67 void DrawStencilShadowVolumes(
const Vector3dT& LightPos,
const float LightRadius)
const;
68 void DrawLightSourceContrib(
const Vector3dT& ViewerPos,
const Vector3dT& LightPos)
const;
69 void DrawTranslucentContrib(
const Vector3dT& ViewerPos)
const;
80 unsigned short LightMapNr;
93 unsigned long GetAutoSubdivsHorz()
const;
98 unsigned long GetAutoSubdivsVert()
const;
117 LightMapInfoT LightMapInfo;
BezierPatchNodeT(LightMapManT &LMM, float MaxError)
The constructor for creating an "empty" bezier patch.
Definition: BezierPatchNode.cpp:30
This class manages lightmaps, e.g. by "allocating" rectangular areas in larger bitmaps.
Definition: LightMapMan.hpp:25
static BezierPatchNodeT * CreateFromFile_cw(std::istream &InFile, aux::PoolT &Pool, LightMapManT &LMM, SHLMapManT &SMM)
Named constructor.
Definition: BezierPatchNode.cpp:87
This class represents a surface render material.
Definition: RenderMaterial.hpp:25
void InitDefaultLightMaps(const float LightMapPatchSize)
If this NodeT uses lightmaps, this methods initializes default (full-bright) lightmaps for it at the ...
Definition: BezierPatchNode.cpp:339
bool IsOpaque() const
TODO / FIXME: This method is a hot-fix for getting the render order with translucent Bezier Patches r...
Definition: BezierPatchNode.cpp:235
This class manages SHL maps, e.g. by "allocating" rectangular areas in larger coefficient maps...
Definition: SHLMapMan.hpp:25
const BoundingBox3T< double > & GetBoundingBox() const
Returns the bounding box of the contents of this scene node.
Definition: BezierPatchNode.cpp:229
Definition: PatchMesh.hpp:33
Definition: BezierPatchNode.hpp:32
This class represents a surface material ("A datastructural representation of a scripts material def...
Definition: Material.hpp:22
void BackToLightMap(const PatchMeshT &PatchMesh, const float LightMapPatchSize)
Takes the patches of the given patch mesh back into the lightmap of this node.
Definition: BezierPatchNode.cpp:586
~BezierPatchNodeT()
The destructor.
Definition: BezierPatchNode.cpp:168
This class represents a bezier patch.
Definition: MapBezierPatch.hpp:44
void CreatePatchMeshes(ArrayT< PatchMeshT > &PatchMeshes, ArrayT< ArrayT< ArrayT< Vector3dT > > > &SampleCoords, const float LightMapPatchSize) const
Creates the patch meshes for this NodeT for the purpose of radiosity computations (CaLight)...
Definition: BezierPatchNode.cpp:395
void UpdateMeshColor(const float red, const float green, const float blue, const float alpha)
Sets color for all meshes of this bezier patch.
Definition: BezierPatchNode.cpp:323
void DrawAmbientContrib(const Vector3dT &ViewerPos) const
Draws the contents of this scene node.
Definition: BezierPatchNode.cpp:241
This class represents a mesh that approximates a Bezier patch.
Definition: BezierPatch.hpp:40