Esempio n. 1
0
        public ViewFrustumSoa(Camera cam)
        {
            var vf = new ViewFrustum(cam);

            var pl  = new float4x4(vf.up, vf.down, vf.left, vf.right);
            var tpl = math.transpose(pl);

            this.plane4 = new float4_soa4
            {
                x = tpl.c0,
                y = tpl.c1,
                z = tpl.c2,
                w = tpl.c3,
            };
        }
Esempio n. 2
0
        float3_soa4 rotate(float4_soa4 q, float3_soa4 v)
        {
            var qv = cross(q.xyz, v);
            var t  = new float3_soa4
            {
                x = 2.0f * qv.x,
                y = 2.0f * qv.y,
                z = 2.0f * qv.z,
            };
            var qt = cross(q.xyz, t);
            var o  = new float3_soa4
            {
                x = v.x + q.w * t.x + qt.x,
                y = v.y + q.w * t.y + qt.y,
                z = v.z + q.w * t.z + qt.z,
            };

            return(o);
        }