예제 #1
0
        public void PropagateForce(ref SPParticleForce force)
        {
            Vector3 pos = force.position_average;
            Vector3 f   = force.force * SPWorld.GetCurrent().m_particle_mass;

            if (m_rigid3d != null)
            {
                m_rigid3d.AddForceAtPosition(f, pos);
            }
            if (m_rigid2d != null)
            {
                m_rigid2d.AddForceAtPosition(f, pos);
            }
        }
예제 #2
0
        public unsafe void PropagateHit(ref SPParticle particle)
        {
            Vector3 f = SPAPI.spGetIntermediateData(SPWorld.GetCurrentContext())->accel *SPWorld.GetCurrent().m_particle_mass;

            if (m_rigid3d != null)
            {
                m_rigid3d.AddForceAtPosition(f, particle.position);
            }
            if (m_rigid2d != null)
            {
                m_rigid2d.AddForceAtPosition(f, particle.position);
            }
        }