Esempio n. 1
0
        // Select the connection to the actual Bullet implementation.
        // The main engine selection is the engineName up to the first hypen.
        // So "Bullet-2.80-OpenCL-Intel" specifies the 'bullet' class here and the whole name
        //     is passed to the engine to do its special selection, etc.
        private BSAPITemplate SelectUnderlyingBulletEngine(string engineName)
        {
            // For the moment, do a simple switch statement.
            // Someday do fancyness with looking up the interfaces in the assembly.
            BSAPITemplate ret = null;

            string selectionName = engineName.ToLower();
            int    hyphenIndex   = engineName.IndexOf("-");

            if (hyphenIndex > 0)
            {
                selectionName = engineName.ToLower().Substring(0, hyphenIndex - 1);
            }

            switch (selectionName)
            {
            case "bullet":
            case "bulletunmanaged":
                ret = new BSAPIUnman(engineName, this);
                break;

            case "bulletxna":
                ret = new BSAPIXNA(engineName, this);
                // Disable some features that are not implemented in BulletXNA
                m_log.InfoFormat("{0} Disabling some physics features not implemented by BulletXNA", LogHeader);
                m_log.InfoFormat("{0}    Disabling ShouldUseBulletHACD", LogHeader);
                BSParam.ShouldUseBulletHACD = false;
                m_log.InfoFormat("{0}    Disabling ShouldUseSingleConvexHullForPrims", LogHeader);
                BSParam.ShouldUseSingleConvexHullForPrims = false;
                m_log.InfoFormat("{0}    Disabling ShouldUseGImpactShapeForPrims", LogHeader);
                BSParam.ShouldUseGImpactShapeForPrims = false;
                m_log.InfoFormat("{0}    Setting terrain implimentation to Heightmap", LogHeader);
                BSParam.TerrainImplementation = (float)BSTerrainPhys.TerrainImplementation.Heightmap;
                break;
            }

            if (ret == null)
            {
                m_log.ErrorFormat("{0) COULD NOT SELECT BULLET ENGINE: '[BulletSim]PhysicsEngine' must be either 'BulletUnmanaged-*' or 'BulletXNA-*'", LogHeader);
            }
            else
            {
                m_log.InfoFormat("{0} Selected bullet engine {1} -> {2}/{3}", LogHeader, engineName, ret.BulletEngineName, ret.BulletEngineVersion);
            }

            return(ret);
        }
Esempio n. 2
0
        // Select the connection to the actual Bullet implementation.
        // The main engine selection is the engineName up to the first hypen.
        // So "Bullet-2.80-OpenCL-Intel" specifies the 'bullet' class here and the whole name
        //     is passed to the engine to do its special selection, etc.
        BSAPITemplate SelectUnderlyingBulletEngine(string engineName)
        {
            // For the moment, do a simple switch statement.
            // Someday do fancyness with looking up the interfaces in the assembly.
            BSAPITemplate ret = null;

            string selectionName = engineName.ToLower();
            int    hyphenIndex   = engineName.IndexOf("-");

            if (hyphenIndex > 0)
            {
                selectionName = engineName.ToLower().Substring(0, hyphenIndex - 1);
            }

            switch (selectionName)
            {
            case "bulletunmanaged":
                ret = new BSAPIUnman(engineName, this);
                break;

            case "bulletxna":
                ret = new BSAPIXNA(engineName, this);
                break;
            }

            if (ret == null)
            {
                MainConsole.Instance.ErrorFormat(
                    "{0} COULD NOT SELECT BULLET ENGINE: '[BulletSim]PhysicsEngine' must be either 'BulletUnmanaged-*' or 'BulletXNA-*'",
                    LogHeader);
            }
            else
            {
                //MainConsole.Instance.WarnFormat("{0} Selected bullet engine {1} -> {2}/{3}", LogHeader, engineName,
                //    ret.BulletEngineName, ret.BulletEngineVersion);
                MainConsole.Instance.WarnFormat("{0} Selected bullet engine {1} -> {2}", LogHeader, engineName, ret.BulletEngineVersion);
            }

            return(ret);
        }
Esempio n. 3
0
        // Select the connection to the actual Bullet implementation.
        // The main engine selection is the engineName up to the first hypen.
        // So "Bullet-2.80-OpenCL-Intel" specifies the 'bullet' class here and the whole name
        //     is passed to the engine to do its special selection, etc.
        BSAPITemplate SelectUnderlyingBulletEngine(string engineName)
        {
            // For the moment, do a simple switch statement.
            // Someday do fancyness with looking up the interfaces in the assembly.
            BSAPITemplate ret = null;

            string selectionName = engineName.ToLower();
            int hyphenIndex = engineName.IndexOf("-");
            if (hyphenIndex > 0)
                selectionName = engineName.ToLower().Substring(0, hyphenIndex - 1);

            switch (selectionName)
            {
                case "bulletunmanaged":
                    ret = new BSAPIUnman(engineName, this);
                    break;
                case "bulletxna":
                    ret = new BSAPIXNA(engineName, this);
                    break;
            }

            if (ret == null)
            {
                MainConsole.Instance.ErrorFormat(
                    "{0} COULD NOT SELECT BULLET ENGINE: '[BulletSim]PhysicsEngine' must be either 'BulletUnmanaged-*' or 'BulletXNA-*'",
                    LogHeader);
            }
            else
            {
                //MainConsole.Instance.WarnFormat("{0} Selected bullet engine {1} -> {2}/{3}", LogHeader, engineName,
                //    ret.BulletEngineName, ret.BulletEngineVersion);
                MainConsole.Instance.WarnFormat("{0} Selected bullet engine {1} -> {2}", LogHeader, engineName, ret.BulletEngineVersion);
            }

            return ret;
        }