亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? particle.cs

?? Particle System Test Application on C#
?? CS
字號:
using System;
using System.Diagnostics;
using Microsoft.DirectX;


namespace ParticleSystems
{
    namespace Verlet
    {
        /// <summary>
        /// Holds mass, position, previous and if the particle is immoveable.
        /// For performance reasons it holds the inverted mass in constrast
        /// to the normal mass (also the infinite mass is more easily 
        /// represented when using inverted mass)
        /// </summary>
        public class Particle
        {
            /// <summary>
            /// Constructor
            /// </summary>
            /// <param name="mass">Mass of particle</param>
            /// <param name="position">Initial position of particle</param>
            public Particle(float mass, Vector3 position)
            {
                mImmoveable = false;
                Mass = mass;	// the mass property performs sanity check of mass
                mCurrentPosition = position;
                mPreviousPosition = position;

            }

            /// <summary>
            /// Mass of particle
            /// </summary>
            public float Mass
            {
                get
                {
                    if( !mImmoveable )
                    {
                        return 1.0f/mInvertedMass;
                    }
                    else
                    {
                        return float.MaxValue;
                    }
                }

                set
                {
                    // This catches negative masses as well as zero mass. 
                    // Possible it should throw when setting a negative mass
                    float l_value = Math.Max(float.Epsilon, value);
                    mInvertedMass = 1.0f / l_value;
                }
            }

            /// <summary>
            /// Inverted mass of particle
            /// </summary>
            public float InvertedMass
            {
                get
                {
                    if( !mImmoveable )
                    {
                        return mInvertedMass;
                    }
                    else
                    {
                        return 0.0f;
                    }
                }
            }

            /// <summary>
            /// Position of particle
            /// </summary>
            public Vector3 Position
            {
                get
                {
                    return mCurrentPosition;
                }
                set 
                {
                    mCurrentPosition = value;
                }
            }

            /// <summary>
            /// Previous position of particle
            /// </summary>
            public Vector3 PreviousPosition
            {
                get
                {
                    return mPreviousPosition;
                }
                set 
                {
                    mPreviousPosition = value;
                }
            }

            /// <summary>
            /// True means that the particle's mass is infinitly large and that
            /// it's not affected by gravity. This essentially means that 
            /// particle will an immoveable point where one might attach chains
            /// and other constraints to 
            /// </summary>
            public bool Immoveable
            {
                get 
                {
                    return mImmoveable;
                }
                set 
                {
                    mImmoveable = value;
                }
            }

            /// <summary>
            /// Returns the velocity of a particle. As Particle represent the
            /// velocity of a particle in terms of the previous position the
            /// time delta must be specified when calculating the particle 
            /// velocity
            /// </summary>
            /// <param name="timeDelta">The current time delta</param>
            /// <returns>The velocity vector of the particle</returns>
            public Vector3 GetVelocity(float timeDelta)
            {
                Vector3 lTmpVector = mCurrentPosition - mPreviousPosition;
                lTmpVector.Multiply(1.0f / timeDelta);
                return lTmpVector;
            }

            /// <summary>
            /// Sets the velocity of a particle. As Particle represent the
            /// velocity of a particle in terms of the previous position the
            /// time delta must be specified when setting the particle 
            /// velocity
            /// </summary>
            /// <param name="timeDelta">The current time delta</param>
            /// <param name="velocity">The new velocity vectory of the particle</param>
            public void SetVelocity(float timeDelta, Vector3 velocity)
            {
                Vector3 lTmpVector = velocity;
                lTmpVector.Multiply(timeDelta);
                mPreviousPosition = mCurrentPosition - lTmpVector;
            }

            /// <summary>
            /// Increases the velocity of a particle by a velocity vector. 
            /// As Particle represent the velocity of a particle in terms of 
            /// the previous position the time delta must be specified when 
            /// setting the particle velocity
            /// </summary>
            /// <param name="timeDelta">The current time delta</param>
            /// <param name="velocity">The velocity vectory to be added to the particle's current velocity</param>
            public void IncreaseVelocity(float timeDelta, Vector3 velocity)
            {
                Vector3 lTmpVector = velocity;
                lTmpVector.Multiply(timeDelta);
                mPreviousPosition -= lTmpVector;
            }

            /// <summary>
            /// Transforms the particles position and previous position 
            /// (its velocity) using a transform matrix
            /// </summary>
            /// <param name="transformMatrix">The transform matrix</param>
            public void Transform(Matrix transformMatrix)
            {
                mCurrentPosition.TransformCoordinate(transformMatrix);
                mPreviousPosition.TransformCoordinate(transformMatrix);
            }

            // These are modified by particle system during the verlet integration step
            // It's possible that I use the properties defined instead, however I'm unsure
            // of the runtime penalty of using properties.
            // (premature optimization is a sin, I know, I know)
            internal float mInvertedMass;
            internal bool mImmoveable;
            internal Vector3 mCurrentPosition;
            internal Vector3 mPreviousPosition;

        }
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本中文字幕不卡| 欧美自拍丝袜亚洲| 欧美本精品男人aⅴ天堂| 婷婷久久综合九色国产成人| 欧美婷婷六月丁香综合色| 亚洲国产欧美日韩另类综合 | 中文一区二区在线观看| 国产一区二区中文字幕| 欧美国产日韩亚洲一区| 91在线无精精品入口| 亚洲激情欧美激情| 欧美一区国产二区| 国产一区激情在线| 国产精品久久久久婷婷| 91国在线观看| 免费成人美女在线观看.| 久久人人97超碰com| 成人禁用看黄a在线| 亚洲高清一区二区三区| 国产成人免费视频网站高清观看视频| 国产成人一区在线| 中文字幕精品一区二区精品绿巨人| 成人中文字幕在线| 亚洲自拍与偷拍| 欧美变态tickling挠脚心| 成人在线视频一区| 午夜精品福利视频网站| 久久精品亚洲精品国产欧美| 色综合久久久久综合体桃花网| 视频一区国产视频| 国产精品乱码一区二区三区软件 | 99精品视频在线免费观看| 亚洲国产三级在线| 久久久久久一二三区| 一本到三区不卡视频| 国内久久婷婷综合| 一区二区三区欧美日| 精品国产一区二区在线观看| 色综合天天综合| 韩国女主播一区| 久久国产精品第一页| 国产精品欧美综合在线| 欧美日韩国产成人在线91| 成人综合婷婷国产精品久久蜜臀| 亚瑟在线精品视频| 最新成人av在线| 精品国产制服丝袜高跟| 欧美午夜电影一区| 暴力调教一区二区三区| 蜜臂av日日欢夜夜爽一区| 一区二区三区日韩| 国产精品私人影院| 26uuuu精品一区二区| 欧美高清精品3d| 91福利在线观看| www.性欧美| 国内成人自拍视频| 日韩成人免费在线| 亚洲h精品动漫在线观看| 中文字幕欧美一区| 国产欧美日本一区视频| 精品久久久久久亚洲综合网| 欧美精品一二三| 在线欧美小视频| 色综合久久中文字幕综合网 | 99久久精品国产网站| 国产乱子伦一区二区三区国色天香| 午夜精品成人在线视频| 亚洲妇女屁股眼交7| 亚洲一区二区在线免费看| 综合av第一页| 亚洲图片激情小说| 18欧美亚洲精品| 中文字幕日本不卡| 中文字幕一区二区三区四区不卡 | 国产乱国产乱300精品| 婷婷中文字幕综合| 亚洲成av人片在线观看无码| 亚洲宅男天堂在线观看无病毒| 日韩不卡一二三区| 一区二区三区日韩在线观看| 一区二区三区国产精华| 亚洲情趣在线观看| 一区二区三区四区亚洲| 亚洲精品福利视频网站| 一区二区三区在线免费观看| 一区二区三区四区视频精品免费 | 欧美一区二区三区视频| 91麻豆精品国产综合久久久久久| 555www色欧美视频| 欧美电视剧在线看免费| 2024国产精品| 国产精品日日摸夜夜摸av| 91精品久久久久久蜜臀| 国产乱子伦一区二区三区国色天香| 免费欧美在线视频| 蜜桃视频一区二区| 精品一区二区成人精品| 国产激情一区二区三区桃花岛亚洲| 国产美女视频91| 成人高清av在线| 在线亚洲+欧美+日本专区| 欧美精选在线播放| 欧美精品一区视频| 国产精品第四页| 亚洲国产精品久久久男人的天堂 | 亚洲图片一区二区| 日本亚洲免费观看| 国v精品久久久网| 日韩一级精品视频在线观看| 亚洲精品一区二区三区蜜桃下载| 中文字幕精品一区二区三区精品| 亚洲精品视频在线观看网站| 日韩高清不卡在线| 成人综合在线视频| 欧美高清hd18日本| 成人教育av在线| 亚洲国产欧美日韩另类综合| 奇米一区二区三区| 国产成人av一区二区三区在线 | 日韩电影在线免费观看| 国精产品一区一区三区mba桃花| 99在线热播精品免费| 6080日韩午夜伦伦午夜伦| 欧美国产一区二区在线观看| 亚洲一线二线三线久久久| 精品综合免费视频观看| 色综合天天做天天爱| 精品国产乱码久久久久久牛牛| 亚洲欧洲国产日本综合| 精品综合免费视频观看| 欧美在线免费视屏| 中文字幕va一区二区三区| 天天操天天综合网| 99精品视频一区| 久久婷婷成人综合色| 亚洲成a天堂v人片| 成人app在线观看| 欧美r级电影在线观看| 99久久久精品免费观看国产蜜| 99久久夜色精品国产网站| 91麻豆精品久久久久蜜臀| 国产精品久久久久久久久动漫| 久久99精品国产91久久来源| 欧美午夜电影网| 亚洲另类春色国产| 在线一区二区三区四区| 日本一区二区成人在线| 精品综合久久久久久8888| 欧美乱妇15p| 亚洲一区二区五区| 色中色一区二区| 国产精品黄色在线观看| 国产风韵犹存在线视精品| 日韩视频永久免费| 日本免费新一区视频| 欧美日韩国产一二三| 亚洲男人的天堂在线aⅴ视频| 大桥未久av一区二区三区中文| 欧美成人三级电影在线| 青草国产精品久久久久久| 制服丝袜中文字幕一区| 视频在线观看一区| 欧美三级乱人伦电影| 亚洲动漫第一页| 欧美日韩一区二区三区不卡| 欧美日韩另类一区| 精品国产一区久久| 国产专区综合网| 久久九九99视频| 国产精品中文字幕日韩精品 | 成人一级片网址| 亚洲国产精品成人综合色在线婷婷 | 国产精品美日韩| 成人免费视频免费观看| 国产精品国产三级国产专播品爱网 | 亚洲国产精品高清| jlzzjlzz欧美大全| 亚洲激情第一区| 欧美性受xxxx黑人xyx性爽| 亚洲成a天堂v人片| 欧美大片免费久久精品三p| 久久成人麻豆午夜电影| 久久精品亚洲一区二区三区浴池| 国产69精品久久久久777| **网站欧美大片在线观看| 91婷婷韩国欧美一区二区| 亚洲国产美国国产综合一区二区| 欧美精品久久久久久久久老牛影院| 美女精品自拍一二三四| 国产三级欧美三级日产三级99| 成人动漫视频在线| 亚洲午夜私人影院| 欧美成人伊人久久综合网| 成人午夜在线视频| 一区二区三区影院| 精品美女被调教视频大全网站| 高清不卡在线观看av| 亚洲精品一二三四区| 欧美一级理论性理论a|