equal
deleted
inserted
replaced
333 {$INCLUDE SinTable.inc} |
333 {$INCLUDE SinTable.inc} |
334 |
334 |
335 function AngleSin(const Angle: Longword): hwFloat; |
335 function AngleSin(const Angle: Longword): hwFloat; |
336 begin |
336 begin |
337 {$IFDEF DEBUGFILE} |
337 {$IFDEF DEBUGFILE} |
338 TryDo((Angle >= 0) and (Angle < 2048), 'Sin param exceeds limits', true); |
338 TryDo((Angle >= 0) and (Angle <= 2048), 'Sin param exceeds limits', true); |
339 {$ENDIF} |
339 {$ENDIF} |
340 AngleSin.isNegative:= false; |
340 AngleSin.isNegative:= false; |
341 if Angle < 1024 then AngleSin.QWordValue:= SinTable[Angle] |
341 if Angle < 1024 then AngleSin.QWordValue:= SinTable[Angle] |
342 else AngleSin.QWordValue:= SinTable[2048 - Angle] |
342 else AngleSin.QWordValue:= SinTable[2048 - Angle] |
343 end; |
343 end; |
344 |
344 |
345 function AngleCos(const Angle: Longword): hwFloat; |
345 function AngleCos(const Angle: Longword): hwFloat; |
346 begin |
346 begin |
347 {$IFDEF DEBUGFILE} |
347 {$IFDEF DEBUGFILE} |
348 TryDo((Angle >= 0) and (Angle < 2048), 'Cos param exceeds limits', true); |
348 TryDo((Angle >= 0) and (Angle <= 2048), 'Cos param exceeds limits', true); |
349 {$ENDIF} |
349 {$ENDIF} |
350 AngleCos.isNegative:= Angle > 1024; |
350 AngleCos.isNegative:= Angle > 1024; |
351 if Angle < 1024 then AngleCos.QWordValue:= SinTable[1024 - Angle] |
351 if Angle < 1024 then AngleCos.QWordValue:= SinTable[1024 - Angle] |
352 else AngleCos.QWordValue:= SinTable[Angle - 1024] |
352 else AngleCos.QWordValue:= SinTable[Angle - 1024] |
353 end; |
353 end; |