source: spip-zone/_plugins_/adaptive_images/trunk/lib/geometrize/geometrize/shape/Circle.class.php @ 115922

Last change on this file since 115922 was 115922, checked in by cedric@…, 6 weeks ago

Optimization de la rapidite de geometrize

File size: 2.4 KB
Line 
1<?php
2
3// Generated by Haxe 3.4.7
4class geometrize_shape_Circle extends geometrize_shape_Ellipse {
5        public function __construct($xBound, $yBound){
6                parent::__construct($xBound, $yBound);
7                $this->rx = mt_rand(1, 32);
8                $this->ry = $this->rx;
9        }
10
11        public function mutate(){
12                $r = mt_rand(0, 1);
13                switch ($r) {
14                        case 0:
15                                {
16                                        $value = $this->x;
17                                        if (!true){
18                                                throw new HException("FAIL: lower <= upper");
19                                        }
20                                        $value1 = $value+mt_rand(-16, +16);
21                                        $max = $this->xBound-1;
22                                        if (!(0<=$max)){
23                                                throw new HException("FAIL: min <= max");
24                                        }
25                                        $tmp = null;
26                                        if ($value1<0){
27                                                $tmp = 0;
28                                        } else {
29                                                if ($value1>$max){
30                                                        $tmp = $max;
31                                                } else {
32                                                        $tmp = $value1;
33                                                }
34                                        }
35                                        $this->x = $tmp;
36                                        $value2 = $this->y;
37                                        if (!true){
38                                                throw new HException("FAIL: lower <= upper");
39                                        }
40                                        $value3 = $value2+mt_rand(-16, +16);
41                                        $max1 = $this->yBound-1;
42                                        if (!(0<=$max1)){
43                                                throw new HException("FAIL: min <= max");
44                                        }
45                                        $tmp1 = null;
46                                        if ($value3<0){
47                                                $tmp1 = 0;
48                                        } else {
49                                                if ($value3>$max1){
50                                                        $tmp1 = $max1;
51                                                } else {
52                                                        $tmp1 = $value3;
53                                                }
54                                        }
55                                        $this->y = $tmp1;
56                                }
57                                break;
58                        case 1:
59                                {
60                                        $value4 = $this->rx;
61                                        if (!true){
62                                                throw new HException("FAIL: lower <= upper");
63                                        }
64                                        $value5 = $value4+mt_rand(-16, +16);
65                                        $max2 = $this->xBound-1;
66                                        if (!(1<=$max2)){
67                                                throw new HException("FAIL: min <= max");
68                                        }
69                                        $r1 = null;
70                                        if ($value5<1){
71                                                $r1 = 1;
72                                        } else {
73                                                if ($value5>$max2){
74                                                        $r1 = $max2;
75                                                } else {
76                                                        $r1 = $value5;
77                                                }
78                                        }
79                                        $this->rx = $r1;
80                                        $this->ry = $r1;
81                                }
82                                break;
83                }
84        }
85
86        public function hclone(){
87                $circle = new geometrize_shape_Circle($this->xBound, $this->yBound);
88                $circle->x = $this->x;
89                $circle->y = $this->y;
90                $circle->rx = $this->rx;
91                $circle->ry = $this->ry;
92                $circle->color = $this->color;
93
94                return $circle;
95        }
96
97        public function getType(){
98                return geometrize_shape_ShapeTypes::T_CIRCLE;
99        }
100
101        public function getRawShapeData(){
102                return [
103                        $this->x,
104                        $this->y,
105                        $this->rx
106                ];
107        }
108
109        public function getSvgShapeData(){
110                return "<circle cx=\"" . $this->x . "\" cy=\"" . $this->y . "\" r=\"" . $this->rx . "\" " . geometrize_exporter_SvgExporter::$SVG_STYLE_HOOK . " />";
111        }
112
113        function __toString(){
114                return 'geometrize.shape.Circle';
115        }
116}
Note: See TracBrowser for help on using the repository browser.