11
22namespace Fx {
3+
4+ export const RADIANTOTHETA = 40 as any as Fx8 ;
35
46 export function isin ( theta : Fx8 ) {
5- return ( Math . isin ( ( theta as any as number * 0.2 ) & 0xff ) - 128 ) as any as Fx8 ;
7+ const sin = Math . isin ( ( theta as any as number * 0.2 ) & 0xff ) ;
8+ return ( sin - 0x80 ) as any as Fx8 ;
69 }
710
811 export function icos ( theta : Fx8 ) {
9- return ( Math . isin ( ( theta as any as number * 0.2 + 64 ) & 0xff ) - 128 ) as any as Fx8 ;
12+ const cos = Math . isin ( ( theta as any as number * 0.2 + 0x40 ) & 0xff ) ;
13+ return ( cos - 0x80 ) as any as Fx8 ;
1014 }
1115
1216 export function sqrt ( x : Fx8 ) : Fx8 {
@@ -25,7 +29,7 @@ class polyview {
2529 public loop ( ) {
2630 this . __prop_upd = control . eventContext ( ) . registerFrameHandler ( scene . PRE_RENDER_UPDATE_PRIORITY , ( ) => {
2731 const delta = Fx8 ( control . eventContext ( ) . deltaTime )
28- this . motionUpdateRot ( delta ) , this . motionUpdatePos ( delta ) , this . motionUpdateWave ( ) ;
32+ this . motionUpdateRot ( delta ) ; this . motionUpdatePos ( delta ) ; this . motionUpdateWave ( ) ;
2933 this . __onLoop ( ) ;
3034 } ) ;
3135 }
@@ -54,19 +58,22 @@ class polyview {
5458
5559 protected wave_sinX : Fx8 ; protected wave_sinY : Fx8 ; protected wave_sinZ : Fx8 ;
5660 protected wave_cosX : Fx8 ; protected wave_cosY : Fx8 ; protected wave_cosZ : Fx8 ;
61+ //protected wave_sqrtX: Fx8; protected wave_sqrtY: Fx8; protected wave_sqrtZ: Fx8;
5762 set wave ( v : Polymesh . Wave3 ) {
5863 if ( ! v || v == null ) {
5964 this . wave_sinX = null ; this . wave_sinY = null ; this . wave_sinZ = null ;
6065 this . wave_cosX = null ; this . wave_cosY = null ; this . wave_cosZ = null ;
66+ //this.wave_sqrtX = null; this.wave_sqrtY = null; this.wave_sqrtZ = null;
6167 return
6268 }
63- this . wave_sinX = Fx8 ( v . sinX ) ; this . wave_sinY = Fx8 ( v . sinY ) ; this . wave_sinZ = Fx8 ( v . sinZ ) ;
64- this . wave_cosX = Fx8 ( v . cosX ) ; this . wave_cosY = Fx8 ( v . cosY ) ; this . wave_cosZ = Fx8 ( v . cosZ ) ;
69+ this . wave_sinX = Fx . mul ( Fx8 ( v . sinX ) , Fx . RADIANTOTHETA ) ; this . wave_sinY = Fx . mul ( Fx8 ( v . sinY ) , Fx . RADIANTOTHETA ) ; this . wave_sinZ = Fx . mul ( Fx8 ( v . sinZ ) , Fx . RADIANTOTHETA ) ;
70+ this . wave_cosX = Fx . mul ( Fx8 ( v . cosX ) , Fx . RADIANTOTHETA ) ; this . wave_cosY = Fx . mul ( Fx8 ( v . cosY ) , Fx . RADIANTOTHETA ) ; this . wave_cosZ = Fx . mul ( Fx8 ( v . cosZ ) , Fx . RADIANTOTHETA ) ;
71+ //this.wave_sqrtX = Fx8(v.sqrtX); this.wave_sqrtY = Fx8(v.sqrtY); this.wave_sqrtZ = Fx8(v.sqrtZ);
6572 }
6673 get wave ( ) : Polymesh . Wave3 {
6774 return {
68- sinX : Fx . toFloat ( this . wave_sinX ) * Polymesh . REDUSPOWER , sinY : Fx . toFloat ( this . wave_sinY ) * Polymesh . REDUSPOWER , sinZ : Fx . toFloat ( this . wave_sinZ ) * Polymesh . REDUSPOWER ,
69- cosX : Fx . toFloat ( this . wave_cosX ) * Polymesh . REDUSPOWER , cosY : Fx . toFloat ( this . wave_cosY ) * Polymesh . REDUSPOWER , cosZ : Fx . toFloat ( this . wave_cosZ ) * Polymesh . REDUSPOWER ,
75+ sinX : ( Fx . toFloat ( this . wave_sinX ) /* * Fx.toFloat(this.wave_sqrtX) */ ) * Polymesh . REDUSPOWER , sinY : ( Fx . toFloat ( this . wave_sinY ) /* * Fx.toFloat(this.wave_sqrtY) */ ) * Polymesh . REDUSPOWER , sinZ : ( Fx . toFloat ( this . wave_sinZ ) /* * Fx.toFloat(this.wave_sqrtZ) */ ) * Polymesh . REDUSPOWER ,
76+ cosX : ( Fx . toFloat ( this . wave_cosX ) /* * Fx.toFloat(this.wave_sqrtX) */ ) * Polymesh . REDUSPOWER , cosY : ( Fx . toFloat ( this . wave_cosY ) /* * Fx.toFloat(this.wave_sqrtY) */ ) * Polymesh . REDUSPOWER , cosZ : ( Fx . toFloat ( this . wave_cosZ ) /* * Fx.toFloat(this.wave_sqrtZ) */ ) * Polymesh . REDUSPOWER ,
7077 }
7178 }
7279
0 commit comments