summaryrefslogtreecommitdiff
path: root/inc/Vrml_SpotLight.hxx
blob: 8830d7fd8375d84dcde50ae819c729a5a6e75417 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _Vrml_SpotLight_HeaderFile
#define _Vrml_SpotLight_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_Macro_HeaderFile
#include <Standard_Macro.hxx>
#endif

#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Quantity_Color_HeaderFile
#include <Quantity_Color.hxx>
#endif
#ifndef _gp_Vec_HeaderFile
#include <gp_Vec.hxx>
#endif
#ifndef _Standard_OStream_HeaderFile
#include <Standard_OStream.hxx>
#endif
class Quantity_Color;
class gp_Vec;


//! specifies a spot light node of VRML nodes specifying <br>
//!         properties of lights. <br>
//!  This  node  defines  a  spotlight  light  source. <br>
//!  A  spotlight  is  placed  at  a  fixed  location  in  3D-space <br>
//!  and  illuminates in  a  cone  along  a  particular  direction. <br>
//!  The  intensity  of  the  illumination  drops  off  exponentially <br>
//!  as  a  ray  of  light  diverges  from  this  direction  toward <br>
//!  the  edges  of  cone. <br>
//!  The  rate  of  drop-off  and  agle  of  the  cone  are  controlled <br>
//!  by  the  dropOfRate  and  cutOffAngle <br>
//!  Color is  written  as  an  RGB  triple. <br>
//!  Light intensity must be in the range 0.0 to 1.0, inclusive. <br>
class Vrml_SpotLight  {
public:

  void* operator new(size_t,void* anAddress) 
  {
    return anAddress;
  }
  void* operator new(size_t size) 
  {
    return Standard::Allocate(size); 
  }
  void  operator delete(void *anAddress) 
  {
    if (anAddress) Standard::Free((Standard_Address&)anAddress); 
  }

  
  Standard_EXPORT   Vrml_SpotLight();
  
  Standard_EXPORT   Vrml_SpotLight(const Standard_Boolean aOnOff,const Standard_Real aIntensity,const Quantity_Color& aColor,const gp_Vec& aLocation,const gp_Vec& aDirection,const Standard_Real aDropOffRate,const Standard_Real aCutOffAngle);
  
  Standard_EXPORT     void SetOnOff(const Standard_Boolean anOnOff) ;
  
  Standard_EXPORT     Standard_Boolean OnOff() const;
  
  Standard_EXPORT     void SetIntensity(const Standard_Real aIntensity) ;
  
  Standard_EXPORT     Standard_Real Intensity() const;
  
  Standard_EXPORT     void SetColor(const Quantity_Color& aColor) ;
  
  Standard_EXPORT     Quantity_Color Color() const;
  
  Standard_EXPORT     void SetLocation(const gp_Vec& aLocation) ;
  
  Standard_EXPORT     gp_Vec Location() const;
  
  Standard_EXPORT     void SetDirection(const gp_Vec& aDirection) ;
  
  Standard_EXPORT     gp_Vec Direction() const;
  
  Standard_EXPORT     void SetDropOffRate(const Standard_Real aDropOffRate) ;
  
  Standard_EXPORT     Standard_Real DropOffRate() const;
  
  Standard_EXPORT     void SetCutOffAngle(const Standard_Real aCutOffAngle) ;
  
  Standard_EXPORT     Standard_Real CutOffAngle() const;
  
  Standard_EXPORT     Standard_OStream& Print(Standard_OStream& anOStream) const;





protected:





private:



Standard_Boolean myOnOff;
Standard_Real myIntensity;
Quantity_Color myColor;
gp_Vec myLocation;
gp_Vec myDirection;
Standard_Real myDropOffRate;
Standard_Real myCutOffAngle;


};





// other Inline functions and methods (like "C++: function call" methods)


#endif