protected override void AssignDefaultValuesToSceneNode(SceneNode node)
        {
            base.AssignDefaultValuesToSceneNode(node);
            if (node is ParticleStormNode c)
            {
                c.ParticleCount = ParticleCount;

                c.EmitterRadius   = (float)EmitterRadius;
                c.ConsumerGravity = (float)ConsumerGravity;

                c.ConsumerRadius        = (float)ConsumerRadius;
                c.InitialEnergy         = (float)InitialEnergy;
                c.EnergyDissipationRate = (float)EnergyDissipationRate;
                c.RandomVectorGenerator = RandomVectorGenerator;
                c.ParticleTexture       = ParticleTexture;
                c.NumTextureColumn      = (uint)NumTextureColumn;
                c.NumTextureRow         = (uint)NumTextureRow;
                c.ParticleSize          = new Vector2((float)ParticleSize.Width, (float)ParticleSize.Height);
                c.InitialVelocity       = (float)InitialVelocity;


                c.CumulateAtBound       = CumulateAtBound;
                c.BlendColor            = BlendColor.ToColor4();
                c.AnimateSpriteByEnergy = AnimateSpriteByEnergy;
                c.Turbulance            = (float)Turbulance;
                c.Blend            = Blend;
                c.AlphaBlend       = AlphaBlend;
                c.SourceBlend      = SourceBlend;
                c.DestBlend        = DestBlend;
                c.SourceAlphaBlend = SourceAlphaBlend;
                c.DestAlphaBlend   = DestAlphaBlend;
                c.SampleMask       = SampleMask;
                c.BlendColor       = BlendColor.ToColor4();
#if NETFX_CORE
                c.EmitterLocation  = EmitterLocation;
                c.ConsumerLocation = ConsumerLocation;
                c.InitAcceleration = Acceleration;
                c.DomainBoundMax   = ParticleBounds.Maximum;
                c.DomainBoundMin   = ParticleBounds.Minimum;
#else
                c.EmitterLocation  = EmitterLocation.ToVector3();
                c.ConsumerLocation = ConsumerLocation.ToVector3();
                c.InitAcceleration = Acceleration.ToVector3();
                c.DomainBoundMax   = new Vector3((float)(ParticleBounds.SizeX / 2 + ParticleBounds.Location.X), (float)(ParticleBounds.SizeY / 2 + ParticleBounds.Location.Y), (float)(ParticleBounds.SizeZ / 2 + ParticleBounds.Location.Z));
                c.DomainBoundMin   = new Vector3((float)(ParticleBounds.Location.X - ParticleBounds.SizeX / 2), (float)(ParticleBounds.Location.Y - ParticleBounds.SizeY / 2), (float)(ParticleBounds.Location.Z - ParticleBounds.SizeZ / 2));
#endif
            }
        }