1eacf67bdc817f8122ad021e4272a846273a2180
[occt.git] / src / Graphic3d / Graphic3d_TextureParams.cxx
1 // Copyright (c) 2013-2014 OPEN CASCADE SAS
2 //
3 // This file is part of Open CASCADE Technology software library.
4 //
5 // This library is free software; you can redistribute it and/or modify it under
6 // the terms of the GNU Lesser General Public License version 2.1 as published
7 // by the Free Software Foundation, with special exception defined in the file
8 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
9 // distribution for complete text of the license and disclaimer of any warranty.
10 //
11 // Alternatively, this file may be used under the terms of Open CASCADE
12 // commercial license or contractual agreement.
13
14 #include <Graphic3d_TextureParams.hxx>
15
16 IMPLEMENT_STANDARD_RTTIEXT(Graphic3d_TextureParams,Standard_Transient)
17
18 // =======================================================================
19 // function : Graphic3d_TextureParams
20 // purpose  :
21 // =======================================================================
22 Graphic3d_TextureParams::Graphic3d_TextureParams()
23 : myGenPlaneS  (0.0f, 0.0f, 0.0f, 0.0f),
24   myGenPlaneT  (0.0f, 0.0f, 0.0f, 0.0f),
25   myScale      (1.0f, 1.0f),
26   myTranslation(0.0f, 0.0f),
27   mySamplerRevision (0),
28   myTextureUnit(Graphic3d_TextureUnit_BaseColor),
29   myFilter     (Graphic3d_TOTF_NEAREST),
30   myAnisoLevel (Graphic3d_LOTA_OFF),
31   myGenMode    (Graphic3d_TOTM_MANUAL),
32   myRotAngle   (0.0f),
33   myToModulate (Standard_False),
34   myToRepeat   (Standard_False)
35 {
36   //
37 }
38
39 // =======================================================================
40 // function : ~Graphic3d_TextureParams
41 // purpose  :
42 // =======================================================================
43 Graphic3d_TextureParams::~Graphic3d_TextureParams()
44 {
45   //
46 }
47
48 // =======================================================================
49 // function : SetModulate
50 // purpose  :
51 // =======================================================================
52 void Graphic3d_TextureParams::SetModulate (const Standard_Boolean theToModulate)
53 {
54   myToModulate = theToModulate;
55 }
56
57 // =======================================================================
58 // function : SetRepeat
59 // purpose  :
60 // =======================================================================
61 void Graphic3d_TextureParams::SetRepeat (const Standard_Boolean theToRepeat)
62 {
63   if (myToRepeat != theToRepeat)
64   {
65     myToRepeat = theToRepeat;
66     updateSamplerRevision();
67   }
68 }
69
70 // =======================================================================
71 // function : SetFilter
72 // purpose  :
73 // =======================================================================
74 void Graphic3d_TextureParams::SetFilter (const Graphic3d_TypeOfTextureFilter theFilter)
75 {
76   if (myFilter != theFilter)
77   {
78     myFilter = theFilter;
79     updateSamplerRevision();
80   }
81 }
82
83 // =======================================================================
84 // function : SetAnisoFilter
85 // purpose  :
86 // =======================================================================
87 void Graphic3d_TextureParams::SetAnisoFilter (const Graphic3d_LevelOfTextureAnisotropy theLevel)
88 {
89   if (myAnisoLevel != theLevel)
90   {
91     myAnisoLevel = theLevel;
92     updateSamplerRevision();
93   }
94 }
95
96 // =======================================================================
97 // function : SetRotation
98 // purpose  :
99 // =======================================================================
100 void Graphic3d_TextureParams::SetRotation (const Standard_ShortReal theAngleDegrees)
101 {
102   myRotAngle = theAngleDegrees;
103 }
104
105 // =======================================================================
106 // function : SetScale
107 // purpose  :
108 // =======================================================================
109 void Graphic3d_TextureParams::SetScale (const Graphic3d_Vec2 theScale)
110 {
111   myScale = theScale;
112 }
113
114 // =======================================================================
115 // function : SetTranslation
116 // purpose  :
117 // =======================================================================
118 void Graphic3d_TextureParams::SetTranslation (const Graphic3d_Vec2 theVec)
119 {
120   myTranslation = theVec;
121 }
122
123 // =======================================================================
124 // function : SetGenMode
125 // purpose  :
126 // =======================================================================
127 void Graphic3d_TextureParams::SetGenMode (const Graphic3d_TypeOfTextureMode theMode,
128                                           const Graphic3d_Vec4              thePlaneS,
129                                           const Graphic3d_Vec4              thePlaneT)
130 {
131   myGenMode   = theMode;
132   myGenPlaneS = thePlaneS;
133   myGenPlaneT = thePlaneT;
134 }