1<?php
2// This file is part of Moodle - http://moodle.org/
3//
4// Moodle is free software: you can redistribute it and/or modify
5// it under the terms of the GNU General Public License as published by
6// the Free Software Foundation, either version 3 of the License, or
7// (at your option) any later version.
8//
9// Moodle is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12// GNU General Public License for more details.
13//
14// You should have received a copy of the GNU General Public License
15// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
16
17/**
18 * This file contains the annotation class for the assignfeedback_editpdf plugin
19 *
20 * @package   assignfeedback_editpdf
21 * @copyright 2012 Davo Smith
22 * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23 */
24
25namespace assignfeedback_editpdf;
26
27/**
28 * This class adds and removes annotations from a page of a response.
29 *
30 * @package   assignfeedback_editpdf
31 * @copyright 2012 Davo Smith
32 * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
33 */
34class annotation {
35
36    /** @var int unique id for this annotation */
37    public $id = 0;
38
39    /** @var int gradeid for this annotation */
40    public $gradeid = 0;
41
42    /** @var int page number for this annotation */
43    public $pageno = 0;
44
45    /** @var int starting location in pixels. Image resolution is 100 pixels per inch */
46    public $x = 0;
47
48    /** @var int ending location in pixels. Image resolution is 100 pixels per inch */
49    public $endx = 0;
50
51    /** @var int starting location in pixels. Image resolution is 100 pixels per inch */
52    public $y = 0;
53
54    /** @var int ending location in pixels. Image resolution is 100 pixels per inch */
55    public $endy = 0;
56
57    /** @var string path information for drawing the annotation. */
58    public $path = '';
59
60    /** @var string colour - One of red, yellow, green, blue, white */
61    public $colour = 'yellow';
62
63    /** @var string type - One of line, oval, rect, etc */
64    public $type = 'line';
65
66    /**
67     * Convert a compatible stdClass into an instance of this class.
68     * @param stdClass $record
69     */
70    public function __construct(\stdClass $record = null) {
71        if ($record) {
72            $intcols = array('endx', 'endy', 'x', 'y');
73            foreach ($this as $key => $value) {
74                if (isset($record->$key)) {
75                    if (in_array($key, $intcols)) {
76                        $this->$key = intval($record->$key);
77                    } else {
78                        $this->$key = $record->$key;
79                    }
80                }
81            }
82        }
83    }
84}
85