CoverityFix-CID:1350962,1350985 Questionable use of reference
[scilab.git] / scilab / modules / graphic_objects / src / java / org / scilab / modules / graphic_objects / lighting / Material.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2013 - Pedro SOUZA
4  *
5  * Copyright (C) 2012 - 2016 - Scilab Enterprises
6  *
7  * This file is hereby licensed under the terms of the GNU GPL v2.0,
8  * pursuant to article 5.3.4 of the CeCILL v.2.1.
9  * This file was originally licensed under the terms of the CeCILL v2.1,
10  * and continues to be available under such terms.
11  * For more information, see the COPYING file which you should have received
12  * along with this program.
13  *
14  */
15
16 package org.scilab.modules.graphic_objects.lighting;
17
18 import org.scilab.modules.graphic_objects.lighting.ColorTriplet;
19 import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStatus;
20
21 /**
22  * Material class
23  * @author Pedro SOUZA
24  */
25
26 public class Material extends ColorTriplet {
27
28     /** material properties */
29     public enum MaterialProperty {COLOR_MATERIAL, SHININESS};
30     /** Specifies if the sufarce color will be used as diffuse color */
31     private Boolean useColorMaterial;
32
33     /** Specular shininess parameter*/
34     private Double shininess;
35
36
37     public Material() {
38         super();
39         useColorMaterial = true;
40         ambient[0] = ambient[1] = ambient[2] = 0.0;
41         diffuse[0] = diffuse[1] = diffuse[2] = 1.0;
42         specular[0] = specular[1] = specular[2] = 1.0;
43         shininess = 2.0;
44     }
45
46     /**
47      * Sets color-material mode, if true
48      * the surface color is used as diffuse color.
49      */
50     public UpdateStatus setColorMaterialMode(Boolean status) {
51         if (!useColorMaterial.equals(status)) {
52             useColorMaterial = status;
53             return UpdateStatus.Success;
54         }
55         return UpdateStatus.NoChange;
56     }
57
58     /** returns the color-material status*/
59     public Boolean getColorMaterialMode() {
60         return useColorMaterial;
61     }
62
63     /** Sets shininess level*/
64     public UpdateStatus setShininess(Double s) {
65         if (!shininess.equals(s)) {
66             shininess = s;
67             return UpdateStatus.Success;
68         }
69         return UpdateStatus.NoChange;
70     }
71
72     /** Gets shininess level*/
73     public Double getShininess() {
74         return shininess;
75     }
76
77 }