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

EntityChildrenFactory   A

Complexity

Total Complexity 10

Size/Duplication

Total Lines 114
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 9

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 10
c 0
b 0
f 0
lcom 1
cbo 9
dl 0
loc 114
ccs 20
cts 20
cp 1
rs 10

10 Methods

Rating   Name   Duplication   Size   Complexity  
A entity() 0 4 1
A box() 0 4 1
A sphere() 0 4 1
A cylinder() 0 4 1
A plane() 0 4 1
A camera() 0 4 1
A colladaModel() 0 4 1
A image() 0 4 1
A sky() 0 4 1
A getChildern() 0 4 1
1
<?php
2
/** @formatter:off
3
 * ******************************************************************
4
 * Created by   Marko Kungla on Jul 5, 2016 - 3:05:38 AM
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         EntityChildrenFactory.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\Core\Helpers;
25
26
use \AframeVR\Core\Entity;
27
use \AframeVR\Extras\Primitives\{
28
    Sphere,
29
    Box,
30
    Cylinder,
31
    Image,
32
    Plane,
33
    Sky,
34
    Camera,
35
    ColladaModel
36
};
37
38
class EntityChildrenFactory
39
{
40
    /**
41
     * Child entities
42
     *
43
     * @var array
44
     */
45
    protected $childrens = array();
46
47
    /**
48
     * Entity
49
     *
50
     * @api
51
     *
52
     * @param string $id            
53
     * @return \AframeVR\Core\Entity
54
     */
55 7
    public function entity(string $id = 'untitled'): Entity
56
    {
57 7
        return $this->childrens[$id] ?? $this->childrens[$id] = new Entity($id);
58
    }
59
60
    /**
61
     * A-Frame Primitive box
62
     *
63
     * @param string $id            
64
     * @return Entity
65
     */
66 1
    public function box(string $id = 'untitled'): Entity
67
    {
68 1
        return $this->childrens[$id] ?? $this->childrens[$id] = new Box($id);
69
    }
70
71
    /**
72
     * A-Frame Primitive sphere
73
     *
74
     * @param string $id            
75
     * @return Entity
76
     */
77 1
    public function sphere(string $id = 'untitled'): Entity
78
    {
79 1
        return $this->childrens[$id] ?? $this->childrens[$id] = new Sphere($id);
80
    }
81
82
    /**
83
     * A-Frame Primitive cylinder
84
     *
85
     * @param string $id            
86
     * @return Entity
87
     */
88 1
    public function cylinder(string $id = 'untitled'): Entity
89
    {
90 1
        return $this->childrens[$id] ?? $this->childrens[$id] = new Cylinder($id);
91
    }
92
93
    /**
94
     * A-Frame Primitive plane
95
     *
96
     * @param string $id            
97
     * @return Entity
98
     */
99 4
    public function plane(string $id = 'untitled'): Entity
100
    {
101 4
        return $this->childrens[$id] ?? $this->childrens[$id] = new Plane($id);
102
    }
103
104
    /**
105
     * A-Frame Primitive camera
106
     *
107
     * @param string $id            
108
     * @return Entity
109
     */
110 1
    public function camera(string $id = 'untitled'): Entity
111
    {
112 1
        return $this->childrens[$id] ?? $this->childrens[$id] = new Camera($id);
113
    }
114
115
    /**
116
     * A-Frame Primitive collada-model
117
     *
118
     * @param string $id            
119
     * @return Entity
120
     */
121 1
    public function colladaModel(string $id = 'untitled'): Entity
122
    {
123 1
        return $this->childrens[$id] ?? $this->childrens[$id] = new ColladaModel($id);
124
    }
125
126
    /**
127
     * A-Frame Primitive image
128
     *
129
     * @param string $id            
130
     * @return Entity
131
     */
132 4
    public function image(string $id = 'untitled'): Entity
133
    {
134 4
        return $this->childrens[$id] ?? $this->childrens[$id] = new Image($id);
135
    }
136
137
    /**
138
     * A-Frame Primitive sky
139
     *
140
     * @return Entity
141
     */
142 1
    public function sky(string $id = 'untitled'): Entity
143
    {
144 1
        return $this->childrens[$id] = new Sky($id);
145
    }
146
147 2
    public function getChildern()
148
    {
149 2
        return $this->childrens;
150
    }
151
}