예제 #1
0
        private void CalculateTotalAeroForce()
        {
            totalAeroForceVector = Vector3.zero;

            if (_vessel.dynamicPressurekPa <= 0.00001)
            {
                return;
            }

            if (_currentAeroModules != null)
            {
                for (int i = 0; i < _currentAeroModules.Count; i++)
                {
                    FARAeroPartModule m = _currentAeroModules[i];
                    if ((object)m != null)
                    {
                        totalAeroForceVector += m.totalWorldSpaceAeroForce;
                    }
                }
            }

            /*for (int i = 0; i < _LEGACY_currentWingAeroModel.Count; i++)
             * {
             *  FARWingAerodynamicModel w = _LEGACY_currentWingAeroModel[i];
             *  if ((object)w != null)
             *      totalAeroForceVector += w.worldSpaceForce;
             * }*/

            /*for(int i = 0; i < _vessel.parts.Count; i++)
             * {
             *  Part p = _vessel.parts[i];
             *  totalAeroForceVector += -p.dragVectorDir * p.dragScalar; // dragVectorDir is actually the velocity vector direction
             * }*/
        }
        private void CalculateTotalAeroForce()
        {
            aeroForces.ClearAll();

            if (_vessel.dynamicPressurekPa <= 0.00001)
            {
                return;
            }

            if (_currentAeroModules != null)
            {
                for (int i = 0; i < _currentAeroModules.Count; i++)
                {
                    FARAeroPartModule m = _currentAeroModules[i];
                    if ((object)m != null)
                    {
                        aeroForces.AddForce(m.transform.position, m.totalWorldSpaceAeroForce);
                        aeroForces.AddTorque(m.worldSpaceTorque);
                    }
                }
            }

            /*
             * for (int i = 0; i < _LEGACY_currentWingAeroModel.Count; i++)
             * {
             *  FARWingAerodynamicModel w = _LEGACY_currentWingAeroModel[i];
             *  if ((object)w == null)
             *      continue;
             *  totalAeroForceVector += w.worldSpaceForce;
             *  aeroForces.AddForce(w.AerodynamicCenter, w.worldSpaceForce);
             *
             *  totalAeroForceVector += w.worldSpaceForce;
             *  totalAeroTorqueVector += Vector3.Cross(w.AerodynamicCenter - _vessel.CoM, w.worldSpaceForce);
             * }
             *
             * for(int i = 0; i < _vessel.parts.Count; i++)
             * {
             *  Part p = _vessel.parts[i];
             *  totalAeroForceVector += -p.dragVectorDir * p.dragScalar; // dragVectorDir is actually the velocity vector direction
             * }
             */
        }