1 // Copyright (C) 2012-2019 The VPaint Developers. 2 // See the COPYRIGHT file at the top-level directory of this distribution 3 // and at https://github.com/dalboris/vpaint/blob/master/COPYRIGHT 4 // 5 // Licensed under the Apache License, Version 2.0 (the "License"); 6 // you may not use this file except in compliance with the License. 7 // You may obtain a copy of the License at 8 // 9 // http://www.apache.org/licenses/LICENSE-2.0 10 // 11 // Unless required by applicable law or agreed to in writing, software 12 // distributed under the License is distributed on an "AS IS" BASIS, 13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 // See the License for the specific language governing permissions and 15 // limitations under the License. 16 17 #ifndef GLWIDGET_MATERIAL_H 18 #define GLWIDGET_MATERIAL_H 19 20 class GLWidget_Material 21 { 22 public: 23 GLWidget_Material(QString s = QString("unnamed material")) : name_(s)24 name_(s), 25 26 ambientFront_r(0.8f), 27 ambientFront_g(0.8f), 28 ambientFront_b(0.8f), 29 ambientFront_a(1.0f), 30 31 diffuseFront_r(0.8f), 32 diffuseFront_g(0.8f), 33 diffuseFront_b(0.8f), 34 diffuseFront_a(1.0f), 35 36 specularFront_r(0.8f), 37 specularFront_g(0.8f), 38 specularFront_b(0.8f), 39 specularFront_a(1.0f), 40 41 emissionFront_r(0.0f), 42 emissionFront_g(0.0f), 43 emissionFront_b(0.0f), 44 emissionFront_a(0.0f), 45 46 shininessFront(96), 47 48 ambientBack_r(0.8f), 49 ambientBack_g(0.8f), 50 ambientBack_b(0.8f), 51 ambientBack_a(1.0f), 52 53 diffuseBack_r(0.8f), 54 diffuseBack_g(0.8f), 55 diffuseBack_b(0.8f), 56 diffuseBack_a(1.0f), 57 58 specularBack_r(0.8f), 59 specularBack_g(0.8f), 60 specularBack_b(0.8f), 61 specularBack_a(1.0f), 62 63 emissionBack_r(0.0f), 64 emissionBack_g(0.0f), 65 emissionBack_b(0.0f), 66 emissionBack_a(0.0f), 67 68 shininessBack(96) 69 { 70 } 71 72 73 GLWidget_Material(float r, float g, float b, QString s = QString("unnammed material"), float specular = 0.8f, float shininess = 96.0f) : name_(s)74 name_(s), 75 76 ambientFront_r(r), 77 ambientFront_g(g), 78 ambientFront_b(b), 79 ambientFront_a(1.0f), 80 81 diffuseFront_r(r), 82 diffuseFront_g(g), 83 diffuseFront_b(b), 84 diffuseFront_a(1.0f), 85 86 specularFront_r(specular), 87 specularFront_g(specular), 88 specularFront_b(specular), 89 specularFront_a(1.0f), 90 91 emissionFront_r(0.0f), 92 emissionFront_g(0.0f), 93 emissionFront_b(0.0f), 94 emissionFront_a(0.0f), 95 96 shininessFront(shininess), 97 98 ambientBack_r(r), 99 ambientBack_g(g), 100 ambientBack_b(b), 101 ambientBack_a(1.0f), 102 103 diffuseBack_r(r), 104 diffuseBack_g(g), 105 diffuseBack_b(b), 106 diffuseBack_a(1.0f), 107 108 specularBack_r(specular), 109 specularBack_g(specular), 110 specularBack_b(specular), 111 specularBack_a(1.0f), 112 113 emissionBack_r(0.0f), 114 emissionBack_g(0.0f), 115 emissionBack_b(0.0f), 116 emissionBack_a(0.0f), 117 118 shininessBack(shininess) 119 { 120 } 121 name()122 QString name() const {return name_;} 123 124 QString name_; 125 126 float ambientFront_r, 127 ambientFront_g, 128 ambientFront_b, 129 ambientFront_a, 130 131 diffuseFront_r, 132 diffuseFront_g, 133 diffuseFront_b, 134 diffuseFront_a, 135 136 specularFront_r, 137 specularFront_g, 138 specularFront_b, 139 specularFront_a, 140 141 emissionFront_r, 142 emissionFront_g, 143 emissionFront_b, 144 emissionFront_a, 145 146 shininessFront, 147 148 149 ambientBack_r, 150 ambientBack_g, 151 ambientBack_b, 152 ambientBack_a, 153 154 diffuseBack_r, 155 diffuseBack_g, 156 diffuseBack_b, 157 diffuseBack_a, 158 159 specularBack_r, 160 specularBack_g, 161 specularBack_b, 162 specularBack_a, 163 164 emissionBack_r, 165 emissionBack_g, 166 emissionBack_b, 167 emissionBack_a, 168 169 shininessBack; 170 }; 171 172 #endif 173