File: V3d_PositionalLight.hxx

package info (click to toggle)
oce 0.18.3-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 301,548 kB
  • sloc: cpp: 1,190,609; ansic: 67,225; sh: 11,630; tcl: 7,954; cs: 5,221; python: 2,867; java: 1,522; makefile: 342; xml: 292; perl: 37
file content (117 lines) | stat: -rw-r--r-- 4,523 bytes parent folder | download | duplicates (5)
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
// 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 _V3d_PositionalLight_HeaderFile
#define _V3d_PositionalLight_HeaderFile

#include <Standard.hxx>
#include <Standard_DefineHandle.hxx>
#include <Handle_V3d_PositionalLight.hxx>

#include <V3d_PositionLight.hxx>
#include <Handle_V3d_Viewer.hxx>
#include <V3d_Coordinate.hxx>
#include <Quantity_NameOfColor.hxx>
#include <Quantity_Coefficient.hxx>
#include <Handle_V3d_View.hxx>
#include <V3d_TypeOfRepresentation.hxx>
#include <Handle_Graphic3d_Group.hxx>
class V3d_BadValue;
class V3d_Viewer;
class V3d_View;
class Graphic3d_Group;


//! Creation and modification of an isolated
//! (positional) light source.
class V3d_PositionalLight : public V3d_PositionLight
{

public:

  
  //! Creates an isolated light source X,Y,Z in the viewer.
  //! It is also defined by the color Color and
  //! two attenuation factors Attenuation1, Attenuation2.
  //! The resulting attenuation factor determining the
  //! illumination of a surface depends on the following
  //! formula :
  //! F = 1/(A1 + A2*Length)
  //! A1,A2 being the two factors of attenuation
  //! Length is the distance of the isolated source
  //! from the surface.
  //! Warning!  raises BadValue from V3d
  //! if one of the attenuation coefficients is not between 0 et 1.
  Standard_EXPORT V3d_PositionalLight(const Handle(V3d_Viewer)& VM, const V3d_Coordinate X, const V3d_Coordinate Y, const V3d_Coordinate Z, const Quantity_NameOfColor Color = Quantity_NOC_WHITE, const Quantity_Coefficient Attenuation1 = 1.0, const Quantity_Coefficient Attenuation2 = 0.0);
  
  //! Creates a light source of the Positional type
  //! in the viewer.
  //! Xt,Yt,Zt : Coordinate of Target light source.
  //! Xp,Yp,Zp : Coordinate of Position light source.
  //! The light source is also defined by the color Color
  //! and two attenuation factors Attenuation1,
  //! Attenuation2 that determine the illumination of a
  //! surface using the following formula :
  //! F = 1/(A1 + A2*Length) where:
  //! -   A1,A2 are the two attenuation factors, and
  //! -   Length is the distance from the isolated source.
  //! Warning! raises BadValue from V3d
  //! if one of the attenuation coefficients is not between 0 et 1.
  Standard_EXPORT V3d_PositionalLight(const Handle(V3d_Viewer)& VM, const V3d_Coordinate Xt, const V3d_Coordinate Yt, const V3d_Coordinate Zt, const V3d_Coordinate Xp, const V3d_Coordinate Yp, const V3d_Coordinate Zp, const Quantity_NameOfColor Color = Quantity_NOC_WHITE, const Quantity_Coefficient Attenuation1 = 1.0, const Quantity_Coefficient Attenuation2 = 0.0);
  
  //! Defines the position of the light source.
  Standard_EXPORT virtual   void SetPosition (const V3d_Coordinate X, const V3d_Coordinate Y, const V3d_Coordinate Z) ;
  
  //! Defines the attenuation factors.
  //! Warning: raises BadValue from V3d
  //! if one of the attenuation coefficients is not between 0 et 1.
  Standard_EXPORT   void SetAttenuation (const Quantity_Coefficient A1, const Quantity_Coefficient A2) ;
  
  //! Display the graphic structure of light source
  //! in the choosen view. We have three type of representation
  //! - SIMPLE   : Only the light source is displayed.
  //! - PARTIAL  : The light source and the light space are
  //! displayed.
  //! - COMPLETE : The light source, the light space and the
  //! radius of light space are displayed.
  //! We can choose the "SAMELAST" as parameter of representation
  //! In this case the graphic structure representation will be
  //! the last displayed.
  Standard_EXPORT   void Display (const Handle(V3d_View)& aView, const V3d_TypeOfRepresentation Representation) ;
  
  //! Returns the position of the light source.
  Standard_EXPORT   void Position (V3d_Coordinate& X, V3d_Coordinate& Y, V3d_Coordinate& Z)  const;
  
  //! Returns the attenuation factors A1,A2 of the light
  //! source used at construction time.
  Standard_EXPORT   void Attenuation (Quantity_Coefficient& A1, Quantity_Coefficient& A2)  const;




  DEFINE_STANDARD_RTTI(V3d_PositionalLight)

protected:




private: 

  
  //! Defined the representation of the positional light source.
  Standard_EXPORT   void Symbol (const Handle(Graphic3d_Group)& gsymbol, const Handle(V3d_View)& aView)  const;



};







#endif // _V3d_PositionalLight_HeaderFile