コード例 #1
0
        protected override bool OnInitialize()
        {
            base.OnInitialize();

            starts = new List <SCN0Keyframe>();
            ends   = new List <SCN0Keyframe>();
            colors = new List <RGBAPixel>();

            flags   = (SCN0FogFlags)Data->_flags;
            density = Data->_density;
            if (Name != "<null>")
            {
                if (flags.HasFlag(SCN0FogFlags.FixedStart))
                {
                    starts.Add(new Vector3(Data->_start, 0, 0));
                }
                else
                {
                    SCN0KeyframeStruct *addr = Data->startKeyframes->Data;
                    for (int i = 0; i < Data->startKeyframes->_numFrames; i++)
                    {
                        starts.Add(*addr++);
                    }
                }
                if (flags.HasFlag(SCN0FogFlags.FixedEnd))
                {
                    ends.Add(new Vector3(Data->_end, 0, 0));
                }
                else
                {
                    SCN0KeyframeStruct *addr = Data->endKeyframes->Data;
                    for (int i = 0; i < Data->endKeyframes->_numFrames; i++)
                    {
                        ends.Add(*addr++);
                    }
                }
                if (flags.HasFlag(SCN0FogFlags.FixedColor))
                {
                    colors.Add(Data->_color);
                }
                else
                {
                    RGBAPixel *addr = Data->colorEntries;
                    for (int i = 0; i <= ((SCN0Node)Parent.Parent).FrameCount; i++)
                    {
                        colors.Add(*addr++);
                    }
                }
            }

            return(false);
        }
コード例 #2
0
        public override bool OnInitialize()
        {
            base.OnInitialize();

            _colors = new List <ARGBPixel>();

            _startKeys = new KeyframeArray(FrameCount + 1);
            _endKeys   = new KeyframeArray(FrameCount + 1);

            flags = (SCN0FogFlags)Data->_flags;
            type  = Data->_type;
            if (Name != "<null>")
            {
                if (flags.HasFlag(SCN0FogFlags.FixedStart))
                {
                    _startKeys[0] = Data->_start;
                }
                else if (!_replaced)
                {
                    DecodeFrames(_startKeys, Data->startKeyframes);
                }

                if (flags.HasFlag(SCN0FogFlags.FixedEnd))
                {
                    _endKeys[0] = Data->_end;
                }
                else if (!_replaced)
                {
                    DecodeFrames(_endKeys, Data->endKeyframes);
                }

                if (flags.HasFlag(SCN0FogFlags.FixedColor))
                {
                    _constant   = true;
                    _numEntries = 0;
                    _solidColor = (ARGBPixel)Data->_color;
                }
                else
                {
                    _constant   = false;
                    _numEntries = FrameCount + 1;
                    RGBAPixel *addr = Data->colorEntries;
                    for (int i = 0; i <= FrameCount; i++)
                    {
                        _colors.Add((ARGBPixel)(*addr++));
                    }
                }
            }

            return(false);
        }
コード例 #3
0
        public override bool OnInitialize()
        {
            base.OnInitialize();

            _colors = new List<ARGBPixel>();

            _startKeys = new KeyframeArray(FrameCount + 1);
            _endKeys = new KeyframeArray(FrameCount + 1);

            flags = (SCN0FogFlags)Data->_flags;
            type = Data->_type;
            if (Name != "<null>")
            {
                if (flags.HasFlag(SCN0FogFlags.FixedStart))
                    _startKeys[0] = Data->_start;
                else if (!_replaced)
                    DecodeFrames(_startKeys, Data->startKeyframes);

                if (flags.HasFlag(SCN0FogFlags.FixedEnd))
                    _endKeys[0] = Data->_end;
                else if (!_replaced)
                    DecodeFrames(_endKeys, Data->endKeyframes);

                if (flags.HasFlag(SCN0FogFlags.FixedColor))
                {
                    _constant = true;
                    _numEntries = 0;
                    _solidColor = (ARGBPixel)Data->_color;
                }
                else
                {
                    _constant = false;
                    _numEntries = FrameCount + 1;
                    RGBAPixel* addr = Data->colorEntries;
                    for (int i = 0; i <= FrameCount; i++)
                        _colors.Add((ARGBPixel)(*addr++));
                }
            }

            return false;
        }