public MyStructuralIntegrity(MyCubeGrid cubeGrid)
        {
            m_cubeGrid = cubeGrid;
            m_cubeGrid.OnBlockAdded            += cubeGrid_OnBlockAdded;
            m_cubeGrid.OnBlockRemoved          += cubeGrid_OnBlockRemoved;
            m_cubeGrid.OnBlockIntegrityChanged += cubeGrid_OnBlockIntegrityChanged;

            switch (1)
            {
            case 0: m_simulator = new MyJacobianConstraintSimulator(m_cubeGrid.GetBlocks().Count); break;

            case 1: m_simulator = new MyAdvancedStaticSimulator(m_cubeGrid); break;

            case 2: m_simulator = new MyOndraSimulator(m_cubeGrid); break;

            case 3: m_simulator = new MyOndraSimulator2(m_cubeGrid); break;

            case 4: m_simulator = new MyOndraSimulator3(m_cubeGrid); break;
            }

            foreach (var block in m_cubeGrid.GetBlocks())
            {
                cubeGrid_OnBlockAdded(block);
            }
        }
        public MyStructuralIntegrity(MyCubeGrid cubeGrid)
        {
            m_cubeGrid = cubeGrid;
            m_cubeGrid.OnBlockAdded += cubeGrid_OnBlockAdded;

            switch (1)
            {
                case 0: m_simulator = new MyJacobianConstraintSimulator(m_cubeGrid.GetBlocks().Count); break;
                case 1: m_simulator = new MyAdvancedStaticSimulator(m_cubeGrid); break;
				case 2: m_simulator = new MyOndraSimulator(m_cubeGrid); break;
                case 3: m_simulator = new MyOndraSimulator2(m_cubeGrid); break;
                case 4: m_simulator = new MyOndraSimulator3(m_cubeGrid); break;
            }

            foreach (var block in m_cubeGrid.GetBlocks())
            {
                cubeGrid_OnBlockAdded(block);
            }
        }