示例#1
0
    public virtual void MirrorTransform(ConvexData.MIRROR_TYPE mirror)
    {
        float tmp;

        switch (mirror)
        {
        case ConvexData.MIRROR_TYPE.MIRROR_AXIS_X:
        {
            mNormal.x = -mNormal.x;
        }
        break;

        case ConvexData.MIRROR_TYPE.MIRROR_AXIS_Y:
        {
            mNormal.y = -mNormal.y;
        }
        break;

        case ConvexData.MIRROR_TYPE.MIRROR_AXIS_Z:
        {
            mNormal.z = -mNormal.z;
        }
        break;

        case ConvexData.MIRROR_TYPE.MIRROR_AXIS_XY:
        {
            tmp       = mNormal.x;
            mNormal.x = mNormal.y;
            mNormal.y = tmp;
        }
        break;

        case ConvexData.MIRROR_TYPE.MIRROR_AXIS_YZ:
        {
            tmp       = mNormal.y;
            mNormal.y = mNormal.z;
            mNormal.z = tmp;
        }
        break;

        case ConvexData.MIRROR_TYPE.MIRROR_AXIS_XZ:
        {
            tmp       = mNormal.x;
            mNormal.x = mNormal.z;
            mNormal.z = tmp;
        }
        break;

        default:
            break;
        }
    }
示例#2
0
    // 镜像变换,镜像轴参见CConvexHullData::MIRROR_TYPE
    public override void MirrorTransform(ConvexData.MIRROR_TYPE mirror)
    {
        base.MirrorTransform(mirror);

        int nAllVTX  = mLstVIDs.Count;
        int nHalfVTX = nAllVTX / 2;

        for (int i = 0; i < nHalfVTX; ++i)
        {
            int tmp = mLstVIDs[i];
            mLstVIDs[i] = mLstVIDs[nAllVTX - 1 - i];
            mLstVIDs[nAllVTX - 1 - i] = tmp;
        }
    }