ROOT logo
// $Id: TriMeshLightField.h 2363 2010-04-06 20:49:16Z matevz $

// Copyright (C) 1999-2008, Matevz Tadel. All rights reserved.
// This file is part of GLED, released under GNU General Public License version 2.
// For the licensing terms see $GLEDSYS/LICENSE or http://www.gnu.org/.

#ifndef Var1_TriMeshLightField_H
#define Var1_TriMeshLightField_H

#include <Glasses/TriMeshField.h>

#include <Stones/ZTrans.h>

class ZNode;

class TriMeshLightField : public TriMeshField
{
  MAC_RNR_FRIENDS(TriMeshLightField);

private:
  void _init();

protected:
  Float_t    mAmbiLit;      // X{GS} 7 Value(-range=>[0,1, 1,1000])
  Float_t    mAmbiShadowed; // X{GS} 7 Value(-range=>[0,1, 1,1000])
  Float_t    mAmbiBackFace; // X{GS} 7 Value(-range=>[0,1, 1,1000])

  ZPoint     mLampPos;      // X{GSR} 7 ZPoint()
  Bool_t     bDirectional;  // X{GS}  7 Bool()

public:
  TriMeshLightField(const Text_t* n="TriMeshLightField", const Text_t* t=0) :
    TriMeshField(n,t) { _init(); }

  void ModulateColors(Bool_t regen_tring_cols=true);  // X{E} 7 MCWButt()
  void PartiallyModulateColors(set<Int_t> vertices, Bool_t regen_tring_cols=true);

  void CalculateLightField(); // X{E} 7 MButt()

  void SetupLampPos(ZNode* lamp, ZNode* mesh);                // X{E} C{2} 7 MCWButt()
  void SetupLampDir(ZNode* mesh, Float_t theta, Float_t phi); // X{E} C{1} 7 MCWButt()

#include "TriMeshLightField.h7"
  ClassDef(TriMeshLightField, 1); // TriMeshFiled with support for light-map tracing.
}; // endclass TriMeshLightField


#endif
 TriMeshLightField.h:1
 TriMeshLightField.h:2
 TriMeshLightField.h:3
 TriMeshLightField.h:4
 TriMeshLightField.h:5
 TriMeshLightField.h:6
 TriMeshLightField.h:7
 TriMeshLightField.h:8
 TriMeshLightField.h:9
 TriMeshLightField.h:10
 TriMeshLightField.h:11
 TriMeshLightField.h:12
 TriMeshLightField.h:13
 TriMeshLightField.h:14
 TriMeshLightField.h:15
 TriMeshLightField.h:16
 TriMeshLightField.h:17
 TriMeshLightField.h:18
 TriMeshLightField.h:19
 TriMeshLightField.h:20
 TriMeshLightField.h:21
 TriMeshLightField.h:22
 TriMeshLightField.h:23
 TriMeshLightField.h:24
 TriMeshLightField.h:25
 TriMeshLightField.h:26
 TriMeshLightField.h:27
 TriMeshLightField.h:28
 TriMeshLightField.h:29
 TriMeshLightField.h:30
 TriMeshLightField.h:31
 TriMeshLightField.h:32
 TriMeshLightField.h:33
 TriMeshLightField.h:34
 TriMeshLightField.h:35
 TriMeshLightField.h:36
 TriMeshLightField.h:37
 TriMeshLightField.h:38
 TriMeshLightField.h:39
 TriMeshLightField.h:40
 TriMeshLightField.h:41
 TriMeshLightField.h:42
 TriMeshLightField.h:43
 TriMeshLightField.h:44
 TriMeshLightField.h:45
 TriMeshLightField.h:46
 TriMeshLightField.h:47
 TriMeshLightField.h:48