コード例 #1
0
        private agxSDK.Simulation GetOrCreateSimulation()
        {
            if (m_simulation == null)
            {
                NativeHandler.Instance.MakeMainThread();

                m_simulation = new agxSDK.Simulation();
                m_space      = m_simulation.getSpace();
                m_system     = m_simulation.getDynamicsSystem();

                // Solver settings will assign number of threads.
                if (m_solverSettings != null)
                {
                    m_solverSettings.SetSimulation(m_simulation);
                    m_solverSettings.GetInitialized <SolverSettings>();
                }
                // No solver settings - set the default.
                else
                {
                    agx.agxSWIG.setNumThreads(Convert.ToUInt32(SolverSettings.DefaultNumberOfThreads));
                }
            }

            return(m_simulation);
        }
コード例 #2
0
        private agxSDK.Simulation GetOrCreateSimulation()
        {
            if (m_simulation == null)
            {
                NativeHandler.Instance.MakeMainThread();

                m_simulation = new agxSDK.Simulation();
                m_space      = m_simulation.getSpace();
                m_system     = m_simulation.getDynamicsSystem();

                // Since AGXUnity.Simulation is optional in the hierarchy
                // we have to synchronize fixedDeltaTime here if SimulationTool
                // never has been seen in the inspector.
                if (AutoSteppingMode == AutoSteppingModes.FixedUpdate)
                {
                    TimeStep = Time.fixedDeltaTime;
                }

                // Solver settings will assign number of threads.
                if (m_solverSettings != null)
                {
                    m_solverSettings.SetSimulation(m_simulation);
                    m_solverSettings.GetInitialized <SolverSettings>();
                }
                // No solver settings - set the default.
                else
                {
                    agx.agxSWIG.setNumThreads(Convert.ToUInt32(SolverSettings.DefaultNumberOfThreads));
                }

                StepCallbacks.OnInitialize(m_simulation);
            }

            return(m_simulation);
        }
コード例 #3
0
        protected override bool Initialize()
        {
            agxCollide.Space space = GetSimulation().getSpace();
            foreach (CollisionGroupEntryPair pair in m_disabledPairs)
            {
                SetEnablePair(pair, false, space);
            }

            return(base.Initialize());
        }
コード例 #4
0
ファイル: Simulation.cs プロジェクト: exiii/AGXUnity
        private agxSDK.Simulation GetOrCreateSimulation()
        {
            if (m_simulation == null)
            {
                NativeHandler.Instance.MakeMainThread();

                m_simulation = new agxSDK.Simulation();

                m_defaultNumDryFrictionIterations = (int)m_simulation.getSolver().getNumDryFrictionIterations();
                m_defaultNumRestingIterations     = (int)m_simulation.getSolver().getNumRestingIterations();

                m_space  = m_simulation.getSpace();
                m_system = m_simulation.getDynamicsSystem();

                m_system.setEnableContactWarmstarting(m_warmStartingDirectContacts);
            }

            return(m_simulation);
        }
コード例 #5
0
 private void SetEnablePair(CollisionGroupEntryPair pair, bool enable, agxCollide.Space space)
 {
     space.setEnablePair(pair.First.Tag.To32BitFnv1aHash(), pair.Second.Tag.To32BitFnv1aHash(), enable);
 }