Completed
Push — master ( 697c38...fae26d )
by Marko
9s
created

Light   A

Complexity

Total Complexity 10

Size/Duplication

Total Lines 132
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 10
c 0
b 0
f 0
lcom 1
cbo 1
dl 0
loc 132
ccs 30
cts 30
cp 1
rs 10

10 Methods

Rating   Name   Duplication   Size   Complexity  
A init() 0 5 1
A defaults() 0 3 1
A angle() 0 5 1
A color() 0 5 1
A decay() 0 5 1
A distance() 0 5 1
A exponent() 0 5 1
A groundColor() 0 5 1
A intensity() 0 5 1
A type() 0 5 1
1
<?php
2
/** @formatter:off
3
 * ******************************************************************
4
 * Created by   Marko Kungla on Jul 6, 2016 - 8:47:40 PM
5
 * Contact      [email protected]
6
 * @copyright   2016 Marko Kungla - https://github.com/mkungla
7
 * @license     The MIT License (MIT)
8
 * 
9
 * @category       AframeVR
10
 * @package        aframe-php
11
 * 
12
 * Lang         PHP (php version >= 7)
13
 * Encoding     UTF-8
14
 * File         Light.php
15
 * Code format  PSR-2 and 12
16
 * @link        https://github.com/mkungla/aframe-php
17
 * @issues      https://github.com/mkungla/aframe-php/issues
18
 * ********************************************************************
19
 * Contributors:
20
 * @author Marko Kungla <[email protected]>
21
 * ********************************************************************
22
 * Comments:
23
 * @formatter:on */
24
namespace AframeVR\Extras\Primitives;
25
26
use \AframeVR\Interfaces\Extras\Primitives\LightPrimitiveIF;
27
use \AframeVR\Core\Entity;
28
29
class Light extends Entity implements LightPrimitiveIF
30
{
31
32
    /**
33
     * Init
34
     *
35
     * {@inheritdoc}
36
     *
37
     * @return void
38
     */
39 6
    public function init()
40
    {
41 6
        $this->component('Position');
42 6
        $this->component('Light');
43 6
    }
44
45 6
    public function defaults()
46
    {
47 6
    }
48
49
    /**
50
     * light.angle
51
     *
52
     * {@inheritdoc}
53
     *
54
     * @param int|float $angle            
55
     * @return LightPrimitiveIF
56
     */
57 1
    public function angle(float $angle = 60): LightPrimitiveIF
58
    {
59 1
        $this->component('Light')->angle($angle);
60 1
        return $this;
61
    }
62
63
    /**
64
     * light.color
65
     *
66
     * {@inheritdoc}
67
     *
68
     * @param string $color            
69
     * @return LightPrimitiveIF
70
     */
71 4
    public function color(string $color = '#fff'): LightPrimitiveIF
72
    {
73 4
        $this->component('Light')->color($color);
74 4
        return $this;
75
    }
76
77
    /**
78
     * light.decay
79
     *
80
     * {@inheritdoc}
81
     *
82
     * @param int $decay            
83
     * @return LightPrimitiveIF
84
     */
85 1
    public function decay(int $decay = 1): LightPrimitiveIF
86
    {
87 1
        $this->component('Light')->decay($decay);
88 1
        return $this;
89
    }
90
91
    /**
92
     * light.distance
93
     *
94
     * {@inheritdoc}
95
     *
96
     * @param float $distance            
97
     * @return LightPrimitiveIF
98
     */
99 4
    public function distance(float $distance = 0.0): LightPrimitiveIF
100
    {
101 4
        $this->component('Light')->distance($distance);
102 4
        return $this;
103
    }
104
105
    /**
106
     * light.exponent
107
     *
108
     * {@inheritdoc}
109
     *
110
     * @param float $exponent            
111
     * @return LightPrimitiveIF
112
     */
113 1
    public function exponent(float $exponent = 10.0): LightPrimitiveIF
114
    {
115 1
        $this->component('Light')->exponent($exponent);
116 1
        return $this;
117
    }
118
119
    /**
120
     * light.groundColor
121
     *
122
     * {@inheritdoc}
123
     *
124
     * @param string $ground_color            
125
     * @return LightPrimitiveIF
126
     */
127 1
    public function groundColor(string $ground_color = '#fff'): LightPrimitiveIF
128
    {
129 1
        $this->component('Light')->groundColor($ground_color);
130 1
        return $this;
131
    }
132
133
    /**
134
     * light.intensity
135
     *
136
     * {@inheritdoc}
137
     *
138
     * @param float $intensity            
139
     * @return LightPrimitiveIF
140
     */
141 1
    public function intensity(float $intensity = 1.0): LightPrimitiveIF
142
    {
143 1
        $this->component('Light')->intensity($intensity);
144 1
        return $this;
145
    }
146
147
    /**
148
     * light.type
149
     *
150
     * {@inheritdoc}
151
     *
152
     * @param string $type            
153
     * @return LightPrimitiveIF
154
     */
155 4
    public function type(string $type = 'directional'): LightPrimitiveIF
156
    {
157 4
        $this->component('Light')->type($type);
158 4
        return $this;
159
    }
160
}
161