Пример #1
0
 public mmMatrix(floatArray f)
 {
     for (int k = 0; k < 9; ++k)
     {
         m[k] = f.getitem(k);
     }
 }
Пример #2
0
        public static floatArray toFloatArray(this Vector3f v)
        {
            floatArray f = new floatArray(3);

            f.setitem(0, v[0]); f.setitem(1, v[1]); f.setitem(2, v[2]);
            return(f);
        }
Пример #3
0
        private void queriesButton_Click(object sender, EventArgs e)
        {
            mmapi_util.RemoteControl rc = new mmapi_util.RemoteControl();
            rc.Initialize();

            StoredCommands sc        = new StoredCommands();
            uint           resultKey = sc.AppendQueryCommand_GetBoundingBox();

            rc.ExecuteCommands(sc);

            floatArray min = new floatArray(3);
            floatArray max = new floatArray(3);

            sc.GetQueryResult_GetBoundingBox(resultKey, min.cast(), max.cast());

            float minx = min.getitem(0);
            float miny = min.getitem(1);
            float minz = min.getitem(2);

            float maxx = max.getitem(0);
            float maxy = max.getitem(1);
            float maxz = max.getitem(2);

            Debug.WriteLine("got box");

            rc.Shutdown();
        }
Пример #4
0
        public void ToWorld(Vector3f[] vScenePoints, int nBatchSize)
        {
            int nBatches = vScenePoints.Length / nBatchSize;

            uint[] keys = new uint[nBatchSize];

            for (int j = 0; j <= nBatches; ++j)
            {
                StoredCommands sc       = new StoredCommands();
                int            iStart   = j * nBatchSize;
                int            iUseSize = (j == nBatches) ? (vScenePoints.Length - nBatches * nBatchSize) : nBatchSize;
                for (int k = 0; k < iUseSize; ++k)
                {
                    if (vScenePoints[iStart + k] != Vector3f.Invalid)
                    {
                        floatArray f = vScenePoints[iStart + k].toFloatArray();
                        keys[k] = sc.AppendQueryCommand_ConvertPointToWorld(f.cast());
                    }
                }
                ExecuteCommands(sc);
                for (int k = 0; k < iUseSize; ++k)
                {
                    if (vScenePoints[iStart + k] != Vector3f.Invalid)
                    {
                        floatArray f = vScenePoints[iStart + k].toFloatArray();
                        sc.GetQueryResult_ConvertPointToScene(keys[k], f.cast());
                        vScenePoints[iStart + k] = g3Extensions.ToVector3f(f);
                    }
                }
            }
        }
Пример #5
0
        public floatArray toFloatArray()
        {
            floatArray f = new floatArray(3);

            f.setitem(0, v[0]); f.setitem(1, v[1]); f.setitem(2, v[2]);
            return(f);
        }
Пример #6
0
        private void queriesButton_Click(object sender, EventArgs e)
        {
            mmapi_util.RemoteControl rc = new mmapi_util.RemoteControl();
            rc.Initialize();

            StoredCommands sc = new StoredCommands();
            uint resultKey = sc.AppendQueryCommand_GetBoundingBox();
            rc.ExecuteCommands(sc);

            floatArray min = new floatArray(3);
            floatArray max = new floatArray(3);
            sc.GetQueryResult_GetBoundingBox(resultKey, min.cast(), max.cast());

            float minx = min.getitem(0);
            float miny = min.getitem(1);
            float minz = min.getitem(2);

            float maxx = max.getitem(0);
            float maxy = max.getitem(1);
            float maxz = max.getitem(2);

            Debug.WriteLine("got box");

            rc.Shutdown();
        }
Пример #7
0
        public Vector3 ToScene(Vector3 vWorld)
        {
            StoredCommands sc  = new StoredCommands();
            floatArray     f   = vWorld.toFloatArray();
            uint           key = sc.AppendQueryCommand_ConvertPointToScene(f.cast());

            ExecuteCommands(sc);
            sc.GetQueryResult_ConvertPointToScene(key, f.cast());
            return(new Vector3(f));
        }
Пример #8
0
        public Vector3f ToWorld(Vector3f vScene)
        {
            StoredCommands sc  = new StoredCommands();
            floatArray     f   = vScene.toFloatArray();
            uint           key = sc.AppendQueryCommand_ConvertPointToWorld(f.cast());

            ExecuteCommands(sc);
            sc.GetQueryResult_ConvertPointToWorld(key, f.cast());
            return(g3Extensions.ToVector3f(f));
        }
Пример #9
0
        public floatArray toFloatArray()
        {
            floatArray f = new floatArray(9);

            for (int k = 0; k < 9; ++k)
            {
                f.setitem(k, m[k]);
            }
            return(f);
        }
Пример #10
0
        public void SelectionBoundingBox(ref Vector3 Min, ref Vector3 Max)
        {
            StoredCommands sc  = new StoredCommands();
            uint           key = sc.AppendQueryCommand_GetBoundingBox();

            ExecuteCommands(sc);
            floatArray min = new floatArray(3), max = new floatArray(3);

            sc.GetQueryResult_GetBoundingBox(key, min.cast(), max.cast());
            Min.Set(min); Max.Set(max);
        }
Пример #11
0
        public void ObjectBoundingBox(int objectID, ref AxisAlignedBox3f box)
        {
            StoredCommands sc  = new StoredCommands();
            uint           key = sc.AppendQueryCommand_GetObjectBoundingBox(objectID);

            ExecuteCommands(sc);
            floatArray min = new floatArray(3), max = new floatArray(3);

            sc.GetQueryResult_GetBoundingBox(key, min.cast(), max.cast());
            box.Min.Set(min); box.Max.Set(max);
        }
Пример #12
0
        public Vector3f SelectedFacesCentroid()
        {
            StoredCommands sc  = new StoredCommands();
            uint           key = sc.AppendQueryCommand_GetSelectedFacesCentroid();

            ExecuteCommands(sc);
            floatArray c = new floatArray(3);

            sc.GetQueryResult_GetSelectedFacesCentroid(key, c.cast());
            return(g3Extensions.ToVector3f(c));
        }
Пример #13
0
        public float ToScene(float fWorld)
        {
            StoredCommands sc  = new StoredCommands();
            uint           key = sc.AppendQueryCommand_ConvertScalarToScene(fWorld);

            ExecuteCommands(sc);
            floatArray f = new floatArray(1);

            sc.GetQueryResult_ConvertScalarToScene(key, f.cast());
            return(f.getitem(0));
        }
Пример #14
0
        private void InternalCallback(uint number, uint inputCount, uint outputCount, global::System.IntPtr inputs, global::System.IntPtr outputs)
        {
            float[] callbackInput  = new float[inputCount];
            float[] callbackOutput = new float[outputCount];

            Callback(number, inputCount, outputCount, callbackInput, callbackOutput);

            using (floatArray inputArray = new floatArray(inputs, false))
                using (floatArray outputArray = new floatArray(outputs, false))
                {
                    for (int i = 0; i < inputCount; i++)
                    {
                        inputArray.setitem(i, callbackInput[i]);
                    }
                    for (int i = 0; i < outputCount; i++)
                    {
                        outputArray.setitem(i, callbackOutput[i]);
                    }
                }
        }
Пример #15
0
 public static Vector3f ToVector3f(floatArray f)
 {
     return(new Vector3f(f.getitem(0), f.getitem(1), f.getitem(2)));
 }
Пример #16
0
 public Vector3(floatArray f)
 {
     v[0] = f.getitem(0); v[1] = f.getitem(1); v[2] = f.getitem(2);
 }
Пример #17
0
 public static void Set(this Vector3f v, floatArray f)
 {
     v.x = f.getitem(0); v.y = f.getitem(1); v.z = f.getitem(2);
 }
Пример #18
0
 public void Set(floatArray f)
 {
     v[0] = f.getitem(0); v[1] = f.getitem(1); v[2] = f.getitem(2);
 }