aboutsummaryrefslogtreecommitdiff
path: root/js/lib/geom/circle.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/lib/geom/circle.js')
-rwxr-xr-xjs/lib/geom/circle.js1507
1 files changed, 758 insertions, 749 deletions
diff --git a/js/lib/geom/circle.js b/js/lib/geom/circle.js
index 0f1f49a9..4a369844 100755
--- a/js/lib/geom/circle.js
+++ b/js/lib/geom/circle.js
@@ -4,9 +4,9 @@ No rights, expressed or implied, whatsoever to this software are provided by Mot
4(c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. 4(c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved.
5</copyright> */ 5</copyright> */
6 6
7var GeomObj = require("js/lib/geom/geom-obj").GeomObj; 7var GeomObj = require("js/lib/geom/geom-obj").GeomObj;
8var ShapePrimitive = require("js/lib/geom/shape-primitive").ShapePrimitive; 8var ShapePrimitive = require("js/lib/geom/shape-primitive").ShapePrimitive;
9var MaterialsModel = require("js/models/materials-model").MaterialsModel; 9var MaterialsModel = require("js/models/materials-model").MaterialsModel;
10var drawUtils = require("js/helper-classes/3D/draw-utils").DrawUtils; 10var drawUtils = require("js/helper-classes/3D/draw-utils").DrawUtils;
11var vecUtils = require("js/helper-classes/3D/vec-utils").VecUtils; 11var vecUtils = require("js/helper-classes/3D/vec-utils").VecUtils;
12 12
@@ -16,823 +16,832 @@ var vecUtils = require("js/helper-classes/3D/vec-utils").VecUtils;
16// Derived from class GLGeomObj 16// Derived from class GLGeomObj
17// The position and dimensions of the stroke, fill, and inner Radius should be in pixels 17// The position and dimensions of the stroke, fill, and inner Radius should be in pixels
18/////////////////////////////////////////////////////////////////////// 18///////////////////////////////////////////////////////////////////////
19var Circle = function GLCircle() { 19exports.Circle = Object.create(GeomObj, {
20
21 this.init = function( world, xOffset, yOffset, width, height, strokeSize, strokeColor, fillColor, innerRadius, strokeMaterial, fillMaterial, strokeStyle) {
22 ///////////////////////////////////////////////////////////////////////
23 // Instance variables
24 ///////////////////////////////////////////////////////////////////////
25 this._width = 2.0;
26 this._height = 2.0;
27 this._xOffset = 0;
28 this._yOffset = 0;
29
30 this._radius = 2.0;
31 this._strokeWidth = 0.25;
32 this._innerRadius = 0;
33
34 this._ovalHeight = this._ovalHeight = 2.0 * this._radius;
35
36 this._strokeStyle = "Solid";
37
38 this._aspectRatio = 1.0;
39
40 if (arguments.length > 0) {
41 this._width = width;
42 this._height = height;
43 this._xOffset = xOffset;
44 this._yOffset = yOffset;
45
46 this._strokeWidth = strokeSize;
47 this._innerRadius = innerRadius;
48 this._strokeColor = strokeColor;
49 this._fillColor = fillColor;
50
51 this._strokeStyle = strokeStyle;
52
53 this._matrix = Matrix.I(4);
54 //this._matrix[12] = xOffset;
55 //this._matrix[13] = yOffset;
56 }
57 20
58 this.m_world = world; 21 ///////////////////////////////////////////////////////////////////////
22 // Instance variables
23 ///////////////////////////////////////////////////////////////////////
24 _width: { value : 2.0, writable: true },
25 _height: { value : 2.0, writable: true },
26 _xOffset: { value : 0, writable: true },
27 _yOffset: { value : 0, writable: true },
28
29 _radius: { value : 2.0, writable: true },
30 _strokeWidth: { value : 0.25, writable: true },
31 _innerRadius: { value : 0, writable: true },
32 _ovalHeight: { value : 4.0, writable: true },
33 _strokeStyle: { value : "Solid", writable: true },
34 _aspectRatio: { value : 1.0, writable: true },
35
36 init: {
37 value: function(world, xOffset, yOffset, width, height, strokeSize, strokeColor, fillColor, innerRadius, strokeMaterial, fillMaterial, strokeStyle) {
38 if(arguments.length > 0) {
39 this._width = width;
40 this._height = height;
41 this._xOffset = xOffset;
42 this._yOffset = yOffset;
43 this._ovalHeight = 2.0 * this._radius;
44
45 this._strokeWidth = strokeSize;
46 this._innerRadius = innerRadius;
47 this._strokeColor = strokeColor;
48 this._fillColor = fillColor;
49
50 this._strokeStyle = strokeStyle;
51
52 this._matrix = Matrix.I(4);
53 //this._matrix[12] = xOffset;
54 //this._matrix[13] = yOffset;
55 }
59 56
60 if(strokeMaterial){ 57 this.m_world = world;
61 this._strokeMaterial = strokeMaterial;
62 } else {
63 this._strokeMaterial = MaterialsModel.getMaterial( MaterialsModel.getDefaultMaterialName() );
64 }
65 58
66 if(fillMaterial) { 59 if(strokeMaterial) {
67 this._fillMaterial = fillMaterial; 60 this._strokeMaterial = strokeMaterial;
68 } else { 61 } else {
69 this._fillMaterial = MaterialsModel.getMaterial( MaterialsModel.getDefaultMaterialName() ); 62 this._strokeMaterial = MaterialsModel.getMaterial( MaterialsModel.getDefaultMaterialName() );
63 }
64
65 if(fillMaterial) {
66 this._fillMaterial = fillMaterial;
67 } else {
68 this._fillMaterial = MaterialsModel.getMaterial( MaterialsModel.getDefaultMaterialName() );
69 }
70 } 70 }
71 }; 71 },
72 72
73 /////////////////////////////////////////////////////////////////////// 73 ///////////////////////////////////////////////////////////////////////
74 // Property Accessors 74 // Property Accessors
75 /////////////////////////////////////////////////////////////////////// 75 ///////////////////////////////////////////////////////////////////////
76 this.getStrokeWidth = function() { 76 // TODO - Use getters/setters in the future
77 return this._strokeWidth; 77 getStrokeWidth: {
78 }; 78 value: function() {
79 79 return this._strokeWidth;
80 this.setStrokeWidth = function(w) { 80 }
81 this._strokeWidth = w; 81 },
82 };
83 82
84 this.getStrokeMaterial = function() { 83 setStrokeWidth: {
85 return this._strokeMaterial; 84 value: function(w) {
86 }; 85 this._strokeWidth = w;
86 }
87 },
87 88
88 this.setStrokeMaterial = function(m) { 89 getStrokeMaterial: {
89 this._strokeMaterial = m; 90 value: function() {
90 }; 91 return this._strokeMaterial;
92 }
93 },
91 94
92 this.getFillMaterial = function() { 95 setStrokeMaterial: {
93 return this._fillMaterial; 96 value: function(m) {
94 }; 97 this._strokeMaterial = m;
98 }
99 },
95 100
96 this.setFillMaterial = function(m) { 101 getFillMaterial: {
97 this._fillMaterial = m; 102 value: function() {
98 }; 103 return this._fillMaterial;
104 }
105 },
99 106
100 this.getRadius = function() { 107 setFillMaterial: {
101 return this._radius; 108 value: function(m) {
102 }; 109 this._fillMaterial = m;
110 }
111 },
103 112
104 this.setRadius = function(r) { 113 getRadius: {
105 this._radius = r; 114 value: function() {
106 }; 115 return this._radius;
116 }
117 },
107 118
108 this.getWorld = function() { 119 setRadius: {
109 return this._world; 120 value: function(r) {
110 }; 121 this._radius = r;
122 }
123 },
111 124
112 this.setWorld = function(w) { 125 getInnerRadius: {
113 this._world = w; 126 value: function() {
114 }; 127 return this._innerRadius;
128 }
129 },
115 130
116 this.getInnerRadius = function() { 131 setInnerRadius: {
117 return this._innerRadius; 132 value: function(r) {
118 }; 133 this._innerRadius = r;
134 }
135 },
119 136
120 this.setInnerRadius = function(r) { 137 getStrokeStyle: {
121 this._innerRadius = r; 138 value: function() {
122 }; 139 return this._strokeStyle;
140 }
141 },
123 142
124 this.getStrokeStyle = function() { 143 setStrokeStyle: {
125 return this._strokeStyle; 144 value: function(s) {
126 }; 145 this._strokeStyle = s;
127 this.setStrokeStyle = function(s) { 146 }
128 this._strokeStyle = s; 147 },
129 };
130 148
131 this.getWidth = function() { 149 getWidth: {
132 return this._width; 150 value: function() {
133 }; 151 return this._width;
152 }
153 },
134 154
135 this.setWidth = function(w) { 155 setWidth: {
136 this._width = w; 156 value: function(w) {
137 }; 157 this._width = w;
158 }
159 },
138 160
139 this.getHeight = function() { 161 getHeight: {
140 return this._height; 162 value: function() {
141 };