示例#1
0
 // Token: 0x06001A02 RID: 6658 RVA: 0x000E9EC8 File Offset: 0x000E80C8
 public void amVectorClamp(AppMain.NNS_VECTOR4D pDst, AppMain.NNS_VECTOR4D pSrc, float min, float max)
 {
     pDst.x = AppMain.amClamp(pSrc.x, min, max);
     pDst.y = AppMain.amClamp(pSrc.y, min, max);
     pDst.z = AppMain.amClamp(pSrc.z, min, max);
     pDst.w = pSrc.w;
 }
示例#2
0
 public static void amEffectDraw(AppMain.AMS_AME_ECB ecb, AppMain.NNS_TEXLIST texlist, uint state)
 {
     ecb.drawState = state;
     if (AppMain._am_enable_draw == 0 || ecb.entry_num <= 0)
     {
         return;
     }
     if ((double)ecb.bounding.radius > 0.0)
     {
         AppMain.NNS_VECTOR4D pPos = new AppMain.NNS_VECTOR4D();
         if (AppMain._amEffectFrustumCulling(pPos, AppMain._am_view_frustum, ecb.bounding) == 0)
         {
             return;
         }
         //AppMain.GlobalPool<AppMain.NNS_VECTOR4D>.Release(pPos);
     }
     for (AppMain.AMS_AME_ENTRY amsAmeEntry = ecb.entry_head; amsAmeEntry != null; amsAmeEntry = (AppMain.AMS_AME_ENTRY)amsAmeEntry.next)
     {
         AppMain.AMS_AME_RUNTIME runtime = amsAmeEntry.runtime;
         runtime.texlist = texlist;
         if (AppMain.AMD_AME_SUPER_CLASS_ID(runtime.node) == 512 && runtime.active_num != (short)0)
         {
             int num = AppMain._am_particle_func[(AppMain.AMD_AME_CLASS_ID(runtime.node) << 2) + 2]((object)runtime);
         }
     }
 }
示例#3
0
 private void amEffectTranslate(AppMain.AMS_AME_ECB ecb, AppMain.NNS_VECTOR4D translate)
 {
     AppMain.amVectorAdd(ecb.translate, translate);
     for (AppMain.AMS_AME_ENTRY amsAmeEntry = ecb.entry_head; amsAmeEntry != null; amsAmeEntry = (AppMain.AMS_AME_ENTRY)amsAmeEntry.next)
     {
         AppMain.AMS_AME_RUNTIME runtime = amsAmeEntry.runtime;
         if ((runtime.state & 8192) != 0 && ((int)runtime.node.flag & 67108864) == 0)
         {
             if (runtime.work != null)
             {
                 AppMain.amVectorAdd(runtime.work.position, translate);
             }
             if ((int)runtime.work_num + (int)runtime.active_num != 0)
             {
                 AppMain.AMS_AME_LIST next1 = runtime.work_head.next;
                 for (AppMain.AMS_AME_LIST workTail = runtime.work_tail; next1 != workTail; next1 = next1.next)
                 {
                     AppMain.amVectorAdd(((AppMain.AMS_AME_RUNTIME_WORK)next1).position, translate);
                 }
                 AppMain.AMS_AME_LIST next2 = runtime.active_head.next;
                 for (AppMain.AMS_AME_LIST activeTail = runtime.active_tail; next2 != activeTail; next2 = next2.next)
                 {
                     AppMain.amVectorAdd(((AppMain.AMS_AME_RUNTIME_WORK)next2).position, translate);
                 }
             }
         }
     }
 }
示例#4
0
 public static void amQuatMultiVector(
     AppMain.NNS_VECTOR4D pDst,
     AppMain.NNS_VECTOR4D pSrc,
     ref AppMain.NNS_QUATERNION pQuat,
     AppMain.NNS_VECTOR4D?pVec)
 {
     AppMain.NNS_QUATERNION nnsQuaternion1 = new AppMain.NNS_QUATERNION();
     AppMain.NNS_QUATERNION quat2          = new AppMain.NNS_QUATERNION();
     AppMain.NNS_QUATERNION nnsQuaternion2 = new AppMain.NNS_QUATERNION();
     AppMain.NNS_QUATERNION nnsQuaternion3 = new AppMain.NNS_QUATERNION();
     AppMain.VEC4_COPY(ref nnsQuaternion3, (AppMain.NNS_VECTOR)pSrc);
     quat2.x = -pQuat.x;
     quat2.y = -pQuat.y;
     quat2.z = -pQuat.z;
     quat2.w = pQuat.w;
     AppMain.nnMultiplyQuaternion(ref nnsQuaternion2, ref pQuat, ref nnsQuaternion3);
     AppMain.nnMultiplyQuaternion(ref nnsQuaternion1, ref nnsQuaternion2, ref quat2);
     if (pVec == null)
     {
         AppMain.VEC4_COPY(ref pDst, ref nnsQuaternion1);
     }
     else
     {
         AppMain.NNS_VECTOR4D nnsVectoR4D = new AppMain.NNS_VECTOR4D();
         AppMain.NNS_VECTOR4D pV2         = new AppMain.NNS_VECTOR4D();
         AppMain.VEC4_COPY(ref nnsVectoR4D, ref nnsQuaternion1);
         AppMain.VEC4_COPY(ref pV2, (AppMain.NNS_VECTOR)pVec);
         AppMain.amVectorAdd(ref pDst, nnsVectoR4D, pV2);
         //AppMain.GlobalPool<AppMain.NNS_VECTOR4D>.Release(nnsVectoR4D);
         //AppMain.GlobalPool<AppMain.NNS_VECTOR4D>.Release(pV2);
     }
 }
示例#5
0
 public static void amQuatRotAxisToQuat(
     ref AppMain.NNS_QUATERNION pQuat,
     AppMain.NNS_VECTOR4D pVec,
     int angle)
 {
     AppMain.amQuatRotAxisToQuat(ref pQuat, pVec, AppMain.NNM_A32toRAD(angle));
 }
示例#6
0
 public static void amVectorScale(ref AppMain.NNS_VECTOR4D pDst, AppMain.NNS_VECTOR4D pSrc, float sc)
 {
     pDst.x = pSrc.x * sc;
     pDst.y = pSrc.y * sc;
     pDst.z = pSrc.z * sc;
     pDst.w = pSrc.w;
 }
示例#7
0
 public static void amVectorOuterProduct(
     ref AppMain.NNS_VECTOR4D pDst,
     ref AppMain.SNNS_VECTOR4D pV1,
     ref AppMain.SNNS_VECTOR4D pV2)
 {
     AppMain.amVectorSet(ref pDst, (float)((double)pV1.y * (double)pV2.z - (double)pV1.z * (double)pV2.y), (float)((double)pV1.z * (double)pV2.x - (double)pV1.x * (double)pV2.z), (float)((double)pV1.x * (double)pV2.y - (double)pV1.y * (double)pV2.x));
 }
示例#8
0
 public void amVectorTrunc(ref AppMain.AMS_VECTOR4I pDst, AppMain.NNS_VECTOR4D pSrc)
 {
     pDst.x = (double)pSrc.x >= 0.0 ? (int)Math.Floor((double)pSrc.x) : (int)-Math.Floor(-(double)pSrc.x);
     pDst.y = (double)pSrc.y >= 0.0 ? (int)Math.Floor((double)pSrc.y) : (int)-Math.Floor(-(double)pSrc.y);
     pDst.z = (double)pSrc.z >= 0.0 ? (int)Math.Floor((double)pSrc.z) : (int)-Math.Floor(-(double)pSrc.z);
     pDst.w = (double)pSrc.w >= 0.0 ? (int)Math.Floor((double)pSrc.w) : (int)-Math.Floor(-(double)pSrc.w);
 }
示例#9
0
 public void amVectorFloor(ref AppMain.AMS_VECTOR4I pDst, AppMain.NNS_VECTOR4D pSrc)
 {
     pDst.x = (int)Math.Floor((double)pSrc.x);
     pDst.y = (int)Math.Floor((double)pSrc.y);
     pDst.z = (int)Math.Floor((double)pSrc.z);
     pDst.w = (int)Math.Floor((double)pSrc.w);
 }
示例#10
0
    // Token: 0x06000F5D RID: 3933 RVA: 0x0008803C File Offset: 0x0008623C
    public void amQuatVectorToQuat(ref AppMain.NNS_QUATERNION pQuat, AppMain.NNS_VECTOR4D pV1, AppMain.NNS_VECTOR4D pV2)
    {
        AppMain.NNS_VECTOR nns_VECTOR = AppMain.GlobalPool <AppMain.NNS_VECTOR> .Alloc();

        AppMain.NNS_VECTOR nns_VECTOR2 = AppMain.GlobalPool <AppMain.NNS_VECTOR> .Alloc();

        AppMain.NNS_VECTOR nns_VECTOR3 = AppMain.GlobalPool <AppMain.NNS_VECTOR> .Alloc();

        AppMain.NNS_VECTOR nns_VECTOR4 = AppMain.GlobalPool <AppMain.NNS_VECTOR> .Alloc();

        AppMain.VEC3_COPY(nns_VECTOR, pV1);
        AppMain.VEC3_COPY(nns_VECTOR2, pV2);
        AppMain.nnAddVector(nns_VECTOR4, nns_VECTOR, nns_VECTOR2);
        float num = AppMain.nnDotProductVector(nns_VECTOR4, nns_VECTOR4);

        num = ( float )(1.0 / Math.Sqrt(( double )num));
        AppMain.nnScaleVector(nns_VECTOR2, nns_VECTOR4, num);
        AppMain.nnCrossProductVector(nns_VECTOR3, nns_VECTOR, nns_VECTOR2);
        AppMain.VEC3_COPY(pQuat, nns_VECTOR3);
        pQuat.w = AppMain.nnDotProductVector(nns_VECTOR, nns_VECTOR2);
        AppMain.GlobalPool <AppMain.NNS_VECTOR> .Release(nns_VECTOR);

        AppMain.GlobalPool <AppMain.NNS_VECTOR> .Release(nns_VECTOR2);

        AppMain.GlobalPool <AppMain.NNS_VECTOR> .Release(nns_VECTOR3);

        AppMain.GlobalPool <AppMain.NNS_VECTOR> .Release(nns_VECTOR4);
    }
示例#11
0
 public void Assign(AppMain.NNS_VECTOR4D v)
 {
     this.x = v.x;
     this.y = v.y;
     this.z = v.z;
     this.w = v.w;
 }
示例#12
0
    // Token: 0x06000F64 RID: 3940 RVA: 0x0008825C File Offset: 0x0008645C
    public static void amQuatMultiVector(AppMain.NNS_VECTOR4D pDst, AppMain.NNS_VECTOR4D pSrc, ref AppMain.NNS_QUATERNION pQuat, AppMain.NNS_VECTOR4D pVec)
    {
        AppMain.NNS_QUATERNION nns_QUATERNION  = default(AppMain.NNS_QUATERNION);
        AppMain.NNS_QUATERNION nns_QUATERNION2 = default(AppMain.NNS_QUATERNION);
        AppMain.NNS_QUATERNION nns_QUATERNION3 = default(AppMain.NNS_QUATERNION);
        AppMain.NNS_QUATERNION nns_QUATERNION4 = default(AppMain.NNS_QUATERNION);
        AppMain.VEC4_COPY(ref nns_QUATERNION4, pSrc);
        nns_QUATERNION2.x = -pQuat.x;
        nns_QUATERNION2.y = -pQuat.y;
        nns_QUATERNION2.z = -pQuat.z;
        nns_QUATERNION2.w = pQuat.w;
        AppMain.nnMultiplyQuaternion(ref nns_QUATERNION3, ref pQuat, ref nns_QUATERNION4);
        AppMain.nnMultiplyQuaternion(ref nns_QUATERNION, ref nns_QUATERNION3, ref nns_QUATERNION2);
        if (pVec == null)
        {
            AppMain.VEC4_COPY(pDst, ref nns_QUATERNION);
            return;
        }
        AppMain.NNS_VECTOR4D nns_VECTOR4D = AppMain.GlobalPool <AppMain.NNS_VECTOR4D> .Alloc();

        AppMain.NNS_VECTOR4D nns_VECTOR4D2 = AppMain.GlobalPool <AppMain.NNS_VECTOR4D> .Alloc();

        AppMain.VEC4_COPY(nns_VECTOR4D, ref nns_QUATERNION);
        AppMain.VEC4_COPY(nns_VECTOR4D2, pVec);
        AppMain.amVectorAdd(pDst, nns_VECTOR4D, nns_VECTOR4D2);
        AppMain.GlobalPool <AppMain.NNS_VECTOR4D> .Release(nns_VECTOR4D);

        AppMain.GlobalPool <AppMain.NNS_VECTOR4D> .Release(nns_VECTOR4D2);
    }
示例#13
0
 // Token: 0x06001A06 RID: 6662 RVA: 0x000EA020 File Offset: 0x000E8220
 public void amVectorTrunc(AppMain.AMS_VECTOR4I pDst, AppMain.NNS_VECTOR4D pSrc)
 {
     pDst.x = ( int )((pSrc.x >= 0f) ? Math.Floor(( double )pSrc.x) : (-( int )Math.Floor(( double )(-( double )pSrc.x))));
     pDst.y = ( int )((pSrc.y >= 0f) ? Math.Floor(( double )pSrc.y) : (-( int )Math.Floor(( double )(-( double )pSrc.y))));
     pDst.z = ( int )((pSrc.z >= 0f) ? Math.Floor(( double )pSrc.z) : (-( int )Math.Floor(( double )(-( double )pSrc.z))));
     pDst.w = ( int )((pSrc.w >= 0f) ? Math.Floor(( double )pSrc.w) : (-( int )Math.Floor(( double )(-( double )pSrc.w))));
 }
示例#14
0
 // Token: 0x06001A05 RID: 6661 RVA: 0x000E9FC0 File Offset: 0x000E81C0
 public void amVectorCeil(AppMain.AMS_VECTOR4I pDst, AppMain.NNS_VECTOR4D pSrc)
 {
     pDst.x = ( int )Math.Ceiling(( double )pSrc.x);
     pDst.y = ( int )Math.Ceiling(( double )pSrc.y);
     pDst.z = ( int )Math.Ceiling(( double )pSrc.z);
     pDst.w = ( int )Math.Ceiling(( double )pSrc.w);
 }
示例#15
0
 public static void VEC4_COPY(ref AppMain.NNS_VECTOR4D d_vec, AppMain.NNS_VECTOR s_vec)
 {
     d_vec.x = s_vec.x;
     d_vec.y = s_vec.y;
     d_vec.z = s_vec.z;
     d_vec.w = 0.0f; // TODO i don't know if this component should be copied
 }
示例#16
0
 public void amVectorIntToFloat(ref AppMain.NNS_VECTOR4D pDst, AppMain.AMS_VECTOR4I pSrc)
 {
     pDst.x = (float)pSrc.x;
     pDst.y = (float)pSrc.y;
     pDst.z = (float)pSrc.z;
     pDst.w = (float)pSrc.w;
 }
示例#17
0
 public static void VEC4_COPY(ref AppMain.NNS_VECTOR4D d_vec, ref AppMain.NNS_QUATERNION s_vec)
 {
     d_vec.x = s_vec.x;
     d_vec.y = s_vec.y;
     d_vec.z = s_vec.z;
     d_vec.w = s_vec.w;
 }
示例#18
0
 public static void amVectorInit(ref AppMain.NNS_VECTOR4D pVec)
 {
     pVec.x = 0.0f;
     pVec.y = 0.0f;
     pVec.z = 0.0f;
     pVec.w = 1f;
 }
示例#19
0
 public void amVectorInvert(ref AppMain.NNS_VECTOR4D pDst, AppMain.NNS_VECTOR4D pSrc)
 {
     pDst.x = -pSrc.x;
     pDst.y = -pSrc.y;
     pDst.z = -pSrc.z;
     pDst.w = pSrc.w;
 }
示例#20
0
 public static void amVectorOne(ref AppMain.NNS_VECTOR4D pVec)
 {
     pVec.x = 1f;
     pVec.y = 1f;
     pVec.z = 1f;
     pVec.w = 1f;
 }
示例#21
0
 public void amVectorMin(ref AppMain.NNS_VECTOR4D pDst, AppMain.NNS_VECTOR4D pSrc, float val)
 {
     pDst.x = AppMain.amMin <float>(pSrc.x, val);
     pDst.y = AppMain.amMin <float>(pSrc.y, val);
     pDst.z = AppMain.amMin <float>(pSrc.z, val);
     pDst.w = pSrc.w;
 }
示例#22
0
 public static void amVectorSet(ref AppMain.NNS_VECTOR4D pDst, float x, float y, float z)
 {
     pDst.x = x;
     pDst.y = y;
     pDst.z = z;
     pDst.w = 1f;
 }
示例#23
0
 public static void amQuatMultiVector(
     ref AppMain.SNNS_VECTOR4D pDst,
     AppMain.NNS_VECTOR4D pSrc,
     ref AppMain.NNS_QUATERNION pQuat,
     AppMain.NNS_VECTOR4D?pVec)
 {
     AppMain.NNS_QUATERNION nnsQuaternion1 = new AppMain.NNS_QUATERNION();
     AppMain.NNS_QUATERNION quat2          = new AppMain.NNS_QUATERNION();
     AppMain.NNS_QUATERNION nnsQuaternion2 = new AppMain.NNS_QUATERNION();
     AppMain.NNS_QUATERNION nnsQuaternion3 = new AppMain.NNS_QUATERNION();
     AppMain.VEC4_COPY(ref nnsQuaternion3, (AppMain.NNS_VECTOR)pSrc);
     quat2.x = -pQuat.x;
     quat2.y = -pQuat.y;
     quat2.z = -pQuat.z;
     quat2.w = pQuat.w;
     AppMain.nnMultiplyQuaternion(ref nnsQuaternion2, ref pQuat, ref nnsQuaternion3);
     AppMain.nnMultiplyQuaternion(ref nnsQuaternion1, ref nnsQuaternion2, ref quat2);
     if (pVec == null)
     {
         AppMain.VEC4_COPY(ref pDst, ref nnsQuaternion1);
     }
     else
     {
         AppMain.SNNS_VECTOR4D snnsVectoR4D1 = new AppMain.SNNS_VECTOR4D();
         AppMain.SNNS_VECTOR4D snnsVectoR4D2 = new AppMain.SNNS_VECTOR4D();
         AppMain.VEC4_COPY(ref snnsVectoR4D1, ref nnsQuaternion1);
         AppMain.VEC4_COPY(ref snnsVectoR4D2, pVec.Value);
         AppMain.amVectorAdd(ref pDst, ref snnsVectoR4D1, ref snnsVectoR4D2);
     }
 }
示例#24
0
 public static void amVectorSet(AppMain.NNS_VECTOR4D pDst, float x, float y, float z, float w)
 {
     pDst.x = x;
     pDst.y = y;
     pDst.z = z;
     pDst.w = w;
 }
示例#25
0
 private static void readVector4(BinaryReader br, AppMain.NNS_VECTOR4D v)
 {
     v.x = br.ReadSingle();
     v.y = br.ReadSingle();
     v.z = br.ReadSingle();
     v.w = br.ReadSingle();
 }
示例#26
0
 public static void amVectorCopy(ref AppMain.NNS_VECTOR4D pDst, AppMain.NNS_VECTOR4D pSrc)
 {
     pDst.x = pSrc.x;
     pDst.y = pSrc.y;
     pDst.z = pSrc.z;
     pDst.w = pSrc.w;
 }
示例#27
0
 public static void amEffectSetTranslate(AppMain.AMS_AME_ECB ecb, AppMain.NNS_VECTOR4D translate)
 {
     AppMain.amVectorCopy(ecb.translate, translate);
     for (AppMain.AMS_AME_ENTRY amsAmeEntry = ecb.entry_head; amsAmeEntry != null; amsAmeEntry = (AppMain.AMS_AME_ENTRY)amsAmeEntry.next)
     {
         AppMain.AMS_AME_RUNTIME runtime = amsAmeEntry.runtime;
         if ((runtime.state & 8192) != 0 && ((int)runtime.node.flag & 67108864) == 0)
         {
             if (runtime.work != null)
             {
                 AppMain.amVectorAdd(runtime.work.position, ((AppMain.AMS_AME_NODE_TR_ROT)runtime.node).translate, translate);
             }
             if ((int)runtime.work_num + (int)runtime.active_num != 0)
             {
                 AppMain.AMS_AME_RUNTIME_WORK next1 = (AppMain.AMS_AME_RUNTIME_WORK)runtime.work_head.next;
                 for (AppMain.AMS_AME_RUNTIME_WORK workTail = (AppMain.AMS_AME_RUNTIME_WORK)runtime.work_tail; next1 != workTail; next1 = (AppMain.AMS_AME_RUNTIME_WORK)next1.next)
                 {
                     AppMain.amVectorAdd(next1.position, ((AppMain.AMS_AME_NODE_TR_ROT)runtime.node).translate, translate);
                 }
                 AppMain.AMS_AME_RUNTIME_WORK next2 = (AppMain.AMS_AME_RUNTIME_WORK)runtime.active_head.next;
                 for (AppMain.AMS_AME_RUNTIME_WORK activeTail = (AppMain.AMS_AME_RUNTIME_WORK)runtime.active_tail; next2 != activeTail; next2 = (AppMain.AMS_AME_RUNTIME_WORK)next2.next)
                 {
                     AppMain.amVectorAdd(next2.position, ((AppMain.AMS_AME_NODE_TR_ROT)runtime.node).translate, translate);
                 }
             }
         }
     }
 }
示例#28
0
 public static void VEC4_COPY(ref AppMain.SNNS_VECTOR4D d_vec, AppMain.NNS_VECTOR4D s_vec)
 {
     d_vec.x = s_vec.x;
     d_vec.y = s_vec.y;
     d_vec.z = s_vec.z;
     d_vec.w = s_vec.w;
 }
示例#29
0
 public static int _amEffectFrustumCulling(
     AppMain.NNS_VECTOR4D pPos,
     AppMain.AMS_FRUSTUM pFrustum,
     AppMain.AMS_AME_BOUNDING pBounding)
 {
     return(1);
 }
示例#30
0
 // Token: 0x06001A01 RID: 6657 RVA: 0x000E9E54 File Offset: 0x000E8054
 public void amVectorClamp(AppMain.NNS_VECTOR4D pDst, AppMain.NNS_VECTOR4D pSrc, AppMain.NNS_VECTOR4D pMin, AppMain.NNS_VECTOR4D pMax)
 {
     pDst.x = AppMain.amClamp(pSrc.x, pMin.x, pMax.x);
     pDst.y = AppMain.amClamp(pSrc.y, pMin.y, pMax.y);
     pDst.z = AppMain.amClamp(pSrc.z, pMin.z, pMax.z);
     pDst.w = pSrc.w;
 }