Skip to content

Commit b16280e

Browse files
committed
Angle core optimizations
1 parent 43fc8dd commit b16280e

File tree

1 file changed

+24
-9
lines changed
  • lua/entities/gmod_wire_expression2/core

1 file changed

+24
-9
lines changed

lua/entities/gmod_wire_expression2/core/angle.lua

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,10 @@ end
150150
__e2setcost(5)
151151

152152
e2function angle angnorm(angle rv1)
153-
return Angle((rv1[1] + 180) % 360 - 180, (rv1[2] + 180) % 360 - 180, (rv1[3] + 180) % 360 - 180)
153+
local ang = Angle(rv1)
154+
ang:Normalize()
155+
156+
return ang
154157
end
155158

156159
e2function number angnorm(rv1)
@@ -175,15 +178,24 @@ __e2setcost(2)
175178

176179
// SET methods that returns angles
177180
e2function angle angle:setPitch(rv2)
178-
return Angle(rv2, this[2], this[3])
181+
local ang = Angle(this)
182+
ang.pitch = rv2
183+
184+
return ang
179185
end
180186

181187
e2function angle angle:setYaw(rv2)
182-
return Angle(this[1], rv2, this[3])
188+
local ang = Angle(this)
189+
ang.yaw = rv2
190+
191+
return ang
183192
end
184193

185194
e2function angle angle:setRoll(rv2)
186-
return Angle(this[1], this[2], rv2)
195+
local ang = Angle(this)
196+
ang.roll = rv2
197+
198+
return ang
187199
end
188200

189201
/******************************************************************************/
@@ -351,27 +363,30 @@ e2function angle angle:rotateAroundAxis(vector axis, degrees)
351363
end
352364

353365
// Convert the magnitude of the angle to radians
366+
local deg2rad = math.pi / 180
367+
local rad2deg = 180 / math.pi
368+
354369
e2function angle toRad(angle rv1)
355-
return Angle(rv1[1] * pi / 180, rv1[2] * pi / 180, rv1[3] * pi / 180)
370+
return rv1 * deg2rad
356371
end
357372

358373
// Convert the magnitude of the angle to degrees
359374
e2function angle toDeg(angle rv1)
360-
return Angle(rv1[1] * 180 / pi, rv1[2] * 180 / pi, rv1[3] * 180 / pi)
375+
return rv1 * rad2deg
361376
end
362377

363378
/******************************************************************************/
364379

365380
e2function vector angle:forward()
366-
return Angle(this[1], this[2], this[3]):Forward()
381+
return this:Forward()
367382
end
368383

369384
e2function vector angle:right()
370-
return Angle(this[1], this[2], this[3]):Right()
385+
return this:Right()
371386
end
372387

373388
e2function vector angle:up()
374-
return Angle(this[1], this[2], this[3]):Up()
389+
return this:Up()
375390
end
376391

377392
e2function string toString(angle a)

0 commit comments

Comments
 (0)