예제 #1
0
        public override void Call()
        {
            Menu.PrintHelp();

            var path = Menu.GetUserInput("path:");          //@"C:\Users\Alexandr\Desktop\TEST";
            var analyzer = new Analyzer(new Tager(new FileLoader()));
            var mask = new Mask(Menu.GetUserInput("mask:"));

            var plan=analyzer.BuildPlan(Directory.GetFiles(path), mask);

            if (!analyzer.NotSynchronizedFiles.Any()&&!analyzer.ErrorFiles.Keys.Any())
            {
                Menu.PrintMessage("All files is OK");
                Menu.GetUserInput("Press enter...");
                return;
            }

            if (analyzer.ErrorFiles.Keys.Any())
            Menu.PrintCollection(
                       string.Format("{0} files can't be synchronized", analyzer.ErrorFiles.Count()),
                       analyzer.ErrorFiles,ConsoleColor.Red);

            Menu.PrintCollection("Not synchronized files:", (from file in analyzer.NotSynchronizedFiles select file.Key.Name + ".mp3 with "+file.Value), ConsoleColor.Red);
            Menu.PrintCollection("Synchronized files:", (from file in analyzer.SynchronizedFiles select file.Name+".mp3"), ConsoleColor.Green);

            Menu.PrintPlan(plan);
            if (Menu.GetYesNoAnswer("Save this plan?\nY/N:"))
            {
                PlanProvider provider=new PlanProvider();
                provider.Save(plan,Menu.GetUserInput("path:"));
            }
        }
예제 #2
0
파일: Sync.cs 프로젝트: Confirmit/Students
        public override void Call()
        {
            if (IsCanceled)
            {
                _synchronizer.Redo();
                return;
            }

            var path = Menu.GetUserInput("path:"); //@"C:\Users\Alexandr\Desktop\TEST";
            var tager = new Tager(new FileLoader());
            var analyzer = new Analyzer(tager, s => Path.GetExtension(s).ToLower() == ".mp3");

            Menu.PrintHelp();

            var mask = new Mask(Menu.GetUserInput("mask:"));

            analyzer.Analyze(Directory.GetFiles(path), mask);

            _synchronizer = new Synchronizer(tager,Menu.SelectSyncRule());
            _synchronizer.Sync(analyzer.NotSynchronizedFiles.Keys, mask);

            Menu.PrintChanges(_synchronizer.ModifiedFiles);
            if (Menu.GetYesNoAnswer("Save changes?\nY/N:"))
            {
                _synchronizer.Save();
                Menu.PrintMessage("Successfully");
                Menu.PrintCollection(string.Format("with {0} errors", _synchronizer.ErrorFiles.Count), _synchronizer.ErrorFiles, ConsoleColor.Red);
                Menu.GetUserInput("Press enter...");
            }
        }
예제 #3
0
 public PlanItem(Mask mask, string path, ISyncRule rule, string message)
 {
     Mask = mask;
     FilePath = path;
     Rule = rule;
     Message = message;
 }
예제 #4
0
 public static void Write(string moduleName, Exception exception, Mask mask)
 {
     LogScope scope = LogScope.Current;
     if (scope != null && scope.Name != null)
         GetTraceLog(moduleName).LogEvent(string.Format("{0} - Exception! {1}", scope.Name, exception.Message), exception, (long)mask);
     else
         GetTraceLog(moduleName).LogEvent(string.Format("Exception! {1}", exception.Message), exception, (long)mask);
 }
예제 #5
0
 public static void Write(string moduleName, string message, Mask mask)
 {
     LogScope scope = LogScope.Current;
     if (scope != null && scope.Name != null)
         GetTraceLog(moduleName).LogEvent(string.Format("{0} - {1}", scope.Name, message), (long)mask);
     else
         GetTraceLog(moduleName).LogEvent(string.Format("{0}", message), (long)mask);
 }
예제 #6
0
        public void NameNotChangeIfTagIsEmpty()
        {
            var tags = new Mp3Tags() { Album = "Album", Artist = "", Comment = "Comment", Genre = "Genre", Title = "Title", Year = 2015, Track = 1 };
            var mask = new Mask("[{track}]. {artist} - {title} {year} live in Russia");

            _testTager.Load("oldfilename");
            _testTager.ChangeTags(tags);
            _testTager.ChangeName(mask);
        }
예제 #7
0
 public void Init()
 {
     _testMask=new Mask("{artist} {title}");
     _testTager=new Tager(new TestFileLoader());
     _synchronizer=new Synchronizer(_testTager);
     _fileWithBadName=new TestMp3File(){Path = "Artist",Tags = new Mp3Tags(){Artist = "Artist",Title = "Title"}};
     _fileWithBadTags = new TestMp3File() { Path = "Artist Title", Tags = new Mp3Tags() { Artist = "Artist", Title = "" } };
     _fileWithBadTagsAndBadName = new TestMp3File() { Path = "Artist", Tags = new Mp3Tags() { Artist = "Artist", Title = "" } };
 }
예제 #8
0
 // Returns the new state
 public static uint SetState(uint newValue, Mask mask)
 {
     uint state;
     int error = _controlfp_s(out state, newValue, (uint)mask);
     if (error == 0)
     {
         return state;
     }
     throw new Win32Exception(error);
 }
예제 #9
0
        public override void OptimizeMask(Mask mask)
        {
            List<string> passwords = new List<string>();
            List<int> maskList = new List<int>();
            string bestMaskString = null;
            double bestMatchPercent = -1;

            // initialize mask list to all 2s
            for (int i = 0; i < this.TargetMaskLength; i++)
            {
                maskList.Add(2);
            }

            // set first and last to 1 and 4
            maskList[0] = 1;
            maskList[maskList.Count - 1] = 4;
            this.toChange = maskList.Count - 2;

            // have two 4's
            //maskList[maskList.Count - 2] = 4;
            //this.toChange = maskList.Count - 3;

            // build a memory list of passwords because we hammer on it
            using (StreamReader reader = new StreamReader(this.PasswordListFilename))
            {
                do
                {
                    string password = reader.ReadLine();

                    if (string.IsNullOrEmpty(password))
                    {
                        continue;
                    }

                    passwords.Add(password);

                } while (!reader.EndOfStream);
            }

            do
            {
                mask.MaskString = GetMaskString(maskList);
                MaskAnalyzer ma = new MaskAnalyzer(mask);
                MaskAnalyzerResults res = ma.AnalyzeMaskCoverage(passwords);

                if (res.MatchedPercent > bestMatchPercent)
                {
                    bestMatchPercent = res.MatchedPercent;
                    bestMaskString = mask.MaskString;
                }

            } while (IncrementList(maskList));

            mask.MaskString = bestMaskString;
        }
예제 #10
0
 public SyncPlan BuildPlan(IEnumerable<string> paths,Mask mask)
 {
     Analyze(paths,mask);
     PlanBuilder builder=new PlanBuilder(_tager,mask);
     var plan=builder.Build(NotSynchronizedFiles.Keys);
     foreach (var errorFile in builder.ErrorFiles)
     {
         ErrorFiles.Add(errorFile.Key,errorFile.Value);
     }
     return plan;
 }
예제 #11
0
        public override Mask GetMask()
        {
            // LOTS of possible null refs here

            Mask ret = new Mask();

            Dictionary<byte, int> charToCount = this.Analyzer.PositionToCharToCount[0];
            List<KeyValuePair<byte, int>> sorted = charToCount.OrderByDescending(pair => pair.Value).ToList();
            StringBuilder sb = new StringBuilder();

            for (int i = 0; i < this.MaxCharsPerSet && i < sorted.Count; i++)
            {
                sb.Append(Convert.ToChar(sorted[i].Key));
            }

            ret.Charset1 = sb.ToString();

            charToCount = this.Analyzer.PositionToCharToCount[(int)Math.Floor(this.TargetMaskLength / 2.0 * 0.5)];
            sorted = charToCount.OrderByDescending(pair => pair.Value).ToList();
            sb = new StringBuilder();

            for (int i = 0; i < this.MaxCharsPerSet && i < sorted.Count; i++)
            {
                sb.Append(Convert.ToChar(sorted[i].Key));
            }

            ret.Charset2 = sb.ToString();

            charToCount = this.Analyzer.PositionToCharToCount[(int)Math.Floor(this.TargetMaskLength / 2.0 * 1.5)];
            sorted = charToCount.OrderByDescending(pair => pair.Value).ToList();
            sb = new StringBuilder();

            for (int i = 0; i < this.MaxCharsPerSet && i < sorted.Count; i++)
            {
                sb.Append(Convert.ToChar(sorted[i].Key));
            }

            ret.Charset3 = sb.ToString();

            charToCount = this.Analyzer.PositionToCharToCount[this.TargetMaskLength - 1];
            sorted = charToCount.OrderByDescending(pair => pair.Value).ToList();
            sb = new StringBuilder();

            for (int i = 0; i < this.MaxCharsPerSet && i < sorted.Count; i++)
            {
                sb.Append(Convert.ToChar(sorted[i].Key));
            }

            ret.Charset4 = sb.ToString();

            return ret;
        }
예제 #12
0
        public override Mask GetMask()
        {
            // LOTS of possible null refs here

            Mask ret = new Mask();

            ret.Charset1 = GetTopCharset(0);
            ret.Charset2 = GetTopCharsetWithNext(1);
            ret.Charset3 = GetTopCharsetWithNext(this.TargetMaskLength / 2 + 1);
            ret.Charset4 = GetTopCharsetWithNext(this.TargetMaskLength - 2);

            return ret;
        }
예제 #13
0
        public void initMasks()
        {
            CascadeMask[0] = new Mask(300,200,4);
            CascadeMask[0].drawSquare(100, 200, 0, 0, 1);
            CascadeMask[0].drawSquare(100, 200, 100, 0, 2);
            CascadeMask[0].drawSquare(100, 200, 200, 0, 3);
            CascadeMask[0].calcPrimeSum(vectorToAr(480, 640));
            this.textBox1.Text += "PrimeSum " + CascadeMask[0].PrimeZoneSum[1];

            CascadeMask[1] = new Mask(300, 200, 4);
            CascadeMask[1].drawSquare(300, 66, 0, 0, 1);
            CascadeMask[1].drawSquare(300, 67, 0, 66, 2);
            CascadeMask[1].drawSquare(300, 67, 0, 133, 3);
            CascadeMask[1].calcPrimeSum(vectorToAr(480, 640));

            //public void drawSquare( int mHeight, int mWidth, int hStart = 0, int wStart = 0, short zoneNumber = 0)

            CascadeMask[2] = new Mask(300, 200, 7);
            CascadeMask[2].drawSquare(100, 100, 0, 0, 1);
            CascadeMask[2].drawSquare(100, 100, 100, 0, 2);
            CascadeMask[2].drawSquare(100, 100, 200, 0, 3);
            CascadeMask[2].drawSquare(100, 100, 0, 100, 6);
            CascadeMask[2].drawSquare(100, 100, 100, 100, 4);
            CascadeMask[2].drawSquare(100, 100, 200, 100, 5);
            CascadeMask[2].calcPrimeSum(vectorToAr(480, 640));

            int mH =240; //div by 3
            int mW =160; //div by 2
            // create mask with 12 zones

            CascadeMask[3] = new Mask(mH, mW, 13);
            CascadeMask[3].drawSquare(mH/3, mW/4, 0, 0, 3);
            CascadeMask[3].drawSquare(mH / 3, mW / 4, mH/3, 0, 3);
            CascadeMask[3].drawSquare(mH / 3, mW / 4, (mH / 3)*2, 0, 2);

            CascadeMask[3].drawSquare(mH / 3, mW / 4, 0, mW/4, 1);
            CascadeMask[3].drawSquare(mH / 3, mW / 4, mH / 3, mW / 4, 1);
            CascadeMask[3].drawSquare(mH / 3, mW / 4, (mH / 3) * 2, mW / 4, 2);

            CascadeMask[3].drawSquare(mH / 3, mW / 4, 0, mW / 2, 1);
            CascadeMask[3].drawSquare(mH / 3, mW / 4, mH / 3, mW / 2, 1);
            CascadeMask[3].drawSquare(mH / 3, mW / 4, (mH / 3) * 2, mW / 2, 2);

            CascadeMask[3].drawSquare(mH / 3, mW / 4, 0, (mW / 4 )*3, 3);
            CascadeMask[3].drawSquare(mH / 3, mW / 4, mH / 3, (mW / 4) * 3, 3);
            CascadeMask[3].drawSquare(mH / 3, mW / 4, (mH / 3) * 2, (mW / 4) * 3, 2);
            CascadeMask[3].calcPrimeSum(vectorToAr(480, 640));

            this.textBox1.Text += "\n Mask Coords: x " + CascadeMask[3].xStart + " y" + CascadeMask[3].yStart ;
        }
예제 #14
0
        public void ChangeNameTest()
        {
            var expectedName = "[1]. Artist - Title 2015 live in Russia";
            var mask = new Mask("[{track}]. {artist} - {title} {year} live in Russia");

            _testTager.Load("oldfilename");
            _testTager.ChangeTags(_tesTags);
            _testTager.ChangeName(mask);

            var currentFile = _testTager.CurrentFile as TestMp3File;

            Assert.AreEqual(true, currentFile.ChangeNameFlag);
            Assert.AreEqual(expectedName,currentFile.Name);
        }
예제 #15
0
        public override void Call()
        {
            if (IsCanceled)
            {

                synchronizer.Redo();
                return;
            }

            var path = Menu.GetUserInput("path:");      //@"C:\Users\Alexandr\Desktop\TEST\New folder";
            var tager = new Tager(new FileLoader());
            var analyzer = new Analyzer(tager, s => Path.GetExtension(s).ToLower() == ".mp3");

            Menu.PrintHelp();

            var mask = new Mask(Menu.GetUserInput("mask:"));

            analyzer.Analyze(Directory.GetFiles(path), mask);

            synchronizer = new Synchronizer(tager);

            foreach (var notSynchronizedFile in analyzer.NotSynchronizedFiles)
            {
                Console.Clear();
                Menu.PrintMessage(notSynchronizedFile.Key.Name+" with "+notSynchronizedFile.Value);

                synchronizer.Sync(notSynchronizedFile.Key,mask,Menu.SelectSyncRule());
                Menu.PrintChanges(notSynchronizedFile.Key);

                if (Menu.GetYesNoAnswer("Save changes?\nY/N:"))
                {
                    try
                    {
                        synchronizer.SaveLast();
                        Menu.PrintMessage("Successfully");
                        Menu.GetUserInput("Press enter...");
                    }
                    catch
                    {
                        Menu.PrintError("Can't save file");
                    }

                }
                else
                {
                    synchronizer.RestoreLast();
                }
            }
        }
예제 #16
0
        private Standart InitStandart(Bitmap bmp)
        {
            var idealStandart = new IdealStandart();
            idealStandart.Matrix = new bool[bmp.Width, bmp.Height];
            idealStandart.Height = bmp.Height;
            idealStandart.Width = bmp.Width;
            var mask = new Mask();
            mask.Matrix = new bool[bmp.Width, bmp.Height];
            mask.Height = bmp.Height;
            mask.Width = bmp.Width;

            var incedenceMatrix = new int[bmp.Height][];

            unsafe
            {
                BitmapData bitmapData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadWrite,
                    bmp.PixelFormat);

                int bytesPerPixel = Image.GetPixelFormatSize(bmp.PixelFormat)/8;
                int heightInPixels = bitmapData.Height;
                int widthInBytes = bitmapData.Width*bytesPerPixel;
                var ptrFirstPixel = (byte*) bitmapData.Scan0;

                for (int y = 0; y < heightInPixels; y++)
                {
                    var maskRow = new bool[bmp.Width];
                    var standartRow = new bool[bmp.Width];

                    byte* currentLine = ptrFirstPixel + (y*bitmapData.Stride);
                    for (int x = 0, cell = 0; x < widthInBytes; x = x + bytesPerPixel, cell++)
                    {
                        int blue = currentLine[x];
                        int green = currentLine[x + 1];
                        int red = currentLine[x + 2];
                        maskRow[cell] =
                            mask.Matrix[cell, y] = red > 0 && blue + green == 0 || green > 0 && blue + red == 0;
                        standartRow[cell] =
                            idealStandart.Matrix[cell, y] = red + green + blue == 0 || red > 0 && blue + green == 0;
                    }

                    incedenceMatrix[y] = IncedenceMatrixRowFill(maskRow, standartRow);
                }
                bmp.UnlockBits(bitmapData);
            }
            idealStandart.IncidenceMatrix = incedenceMatrix;

            return new Standart(mask, idealStandart);
        }
예제 #17
0
        Mp3Tags GetTagsFromFileName(IMp3File file)
        {
            if (file == null)
                throw new ArgumentException("File is not loaded");
            Menu.PrintHelp();

            var fileName = file.Name;
            var mask = new Mask(Menu.GetUserInput("mask:"));
            var tagValues = Select(mask.GetTagValuesFromString(fileName));
            var result = new Mp3Tags();

            foreach (var tagValue in tagValues)
            {
                result.SetTag(tagValue.Key, tagValue.Value);
            }
            return result;
        }
예제 #18
0
 public TextBoxMask(TextBox control, Mask mask)
 {
     switch(mask)
     {
         case Mask.Numeric:
             control.TextChanged += Numeric;
             break;
         case Mask.IPv4Address:
             control.TextChanged += IPv4Address;
             break;
         case Mask.IPv6Address:
             control.TextChanged += IPv6Address;
             break;
     }
     control.KeyPress += new KeyPressEventHandler((s, e) => { oldPosition = control.SelectionStart; });
     control.MouseClick += new MouseEventHandler((s, e) => { oldPosition = control.SelectionStart; });
     UpdatePosition(control);
 }
예제 #19
0
 public void Analyze(IEnumerable<string> paths,Mask mask)
 {
     foreach (var path in Filtrate(paths))
     {
         if (_tager.Load(path))
         {
             if (!_tager.ValidateFileName(mask))
             {
                 NotSynchronizedFiles.Add(_tager.CurrentFile,GetFileInfo(mask));
             }
             else
             {
                 SynchronizedFiles.Add(_tager.CurrentFile);
             }
         }
         else
         {
             ErrorFiles.Add(path,"load error");
         }
     }
 }
예제 #20
0
파일: Retag.cs 프로젝트: Confirmit/Students
        public override bool Call(Mask mask, Tager tager, IMp3File file)
        {
            if (_isCanceled)
            {
                RestoreFile();
                return true;
            }

            _file = file;

            try
            {
                _memento = _file.GetMemento();
                tager.ChangeTags(tager.GetTagsFromName(mask));

                return true;
            }
            catch
            {
                return false;
            }
        }
예제 #21
0
파일: Tager.cs 프로젝트: Confirmit/Students
        public bool ValidateFileName(Mask mask)
        {
            try
            {
                var posibleTagValuesFromName = mask.GetTagValuesFromString(_currentFile.Name);
                var tagsFromFile = _currentFile.GetTags();
                var fileNameIsOk = false;

                foreach (var tagValues in posibleTagValuesFromName)
                {
                    if (fileNameIsOk)
                        break;

                    foreach (var tagValue in tagValues)
                    {
                        var currentTagFromFile = tagsFromFile.GetTag(tagValue.Key);

                        if (tagValue.Value != currentTagFromFile)
                        {
                            if (tagValue.Key == "track" && tagValue.Value.StartsWith("0"))
                            {
                                if (tagValue.Value.Substring(1) == currentTagFromFile)
                                    continue;
                            }
                            fileNameIsOk = false;
                            break;
                        }
                        fileNameIsOk = true;
                    }
                }
                return fileNameIsOk;
            }
            catch
            {
                return false;
            }
        }
예제 #22
0
        public void GetTagValuesTest()
        {
            var testMask=new Mask("a{x}b{y}");
            var testString = "aaaabbbb";
            var posibleValues = new Dictionary<string, string>
            {
                {"aaa", "bbb"},
                {"aaab", "bb"},
                {"aaabb", "b"},
                {"aaabbb", ""}
            };

            foreach (var posibleValue in posibleValues)
            {
                bool flag = false;
                foreach (var result in testMask.GetTagValuesFromString(testString).Where(result => result.ContainsValue(posibleValue.Key)))
                {
                    flag = result["x"] == posibleValue.Key && result["y"] == posibleValue.Value;
                    if (flag)
                        break;
                }
                Assert.AreEqual(true,flag);
            }
        }
예제 #23
0
 protected void Translate_InternalFill <R>(Mask <R> obj, Func <TItem, R> eval)
 {
     base.Translate_InternalFill(obj, eval);
     obj.ComparisonValue = eval(this.ComparisonValue);
     obj.Data            = this.Data == null ? null : new MaskItem <R, ConditionData.Mask <R>?>(eval(this.Data.Overall), this.Data.Specific?.Translate(eval));
 }
예제 #24
0
 private void Start()
 {
     items = new List <AntMenuItem>();
     mask  = GetComponent <Mask>();
 }
예제 #25
0
 protected void Translate_InternalFill <R>(Mask <R> obj, Func <TItem, R> eval)
 {
     base.Translate_InternalFill(obj, eval);
     obj.Parent      = eval(this.Parent);
     obj.Coordinates = eval(this.Coordinates);
 }
예제 #26
0
 protected void Translate_InternalFill <R>(Mask <R> obj, Func <TItem, R> eval)
 {
     obj.Flags         = eval(this.Flags);
     obj.FragmentIndex = eval(this.FragmentIndex);
 }
예제 #27
0
 protected void Translate_InternalFill <R>(Mask <R> obj, Func <TItem, R> eval)
 {
     base.Translate_InternalFill(obj, eval);
     obj.Type = eval(this.Type);
     obj.Data = eval(this.Data);
 }
예제 #28
0
        public static GameObject CreateScrollView(Resources resources)
        {
            GameObject gameObject  = CreateUIElementRoot("Scroll View", new Vector2(200f, 200f));
            GameObject gameObject2 = CreateUIObject("Viewport", gameObject);
            GameObject gameObject3 = CreateUIObject("Content", gameObject2);
            GameObject gameObject4 = CreateScrollbar(resources);

            gameObject4.name = "Scrollbar Horizontal";
            SetParentAndAlign(gameObject4, gameObject);
            RectTransform component = gameObject4.GetComponent <RectTransform>();

            component.anchorMin = Vector2.zero;
            component.anchorMax = Vector2.right;
            component.pivot     = Vector2.zero;
            RectTransform rectTransform = component;
            Vector2       sizeDelta     = component.sizeDelta;

            rectTransform.sizeDelta = new Vector2(0f, sizeDelta.y);
            GameObject gameObject5 = CreateScrollbar(resources);

            gameObject5.name = "Scrollbar Vertical";
            SetParentAndAlign(gameObject5, gameObject);
            gameObject5.GetComponent <Scrollbar>().SetDirection(Scrollbar.Direction.BottomToTop, includeRectLayouts: true);
            RectTransform component2 = gameObject5.GetComponent <RectTransform>();

            component2.anchorMin = Vector2.right;
            component2.anchorMax = Vector2.one;
            component2.pivot     = Vector2.one;
            RectTransform rectTransform2 = component2;
            Vector2       sizeDelta2     = component2.sizeDelta;

            rectTransform2.sizeDelta = new Vector2(sizeDelta2.x, 0f);
            RectTransform component3 = gameObject2.GetComponent <RectTransform>();

            component3.anchorMin = Vector2.zero;
            component3.anchorMax = Vector2.one;
            component3.sizeDelta = Vector2.zero;
            component3.pivot     = Vector2.up;
            RectTransform component4 = gameObject3.GetComponent <RectTransform>();

            component4.anchorMin = Vector2.up;
            component4.anchorMax = Vector2.one;
            component4.sizeDelta = new Vector2(0f, 300f);
            component4.pivot     = Vector2.up;
            ScrollRect scrollRect = gameObject.AddComponent <ScrollRect>();

            scrollRect.content                       = component4;
            scrollRect.viewport                      = component3;
            scrollRect.horizontalScrollbar           = gameObject4.GetComponent <Scrollbar>();
            scrollRect.verticalScrollbar             = gameObject5.GetComponent <Scrollbar>();
            scrollRect.horizontalScrollbarVisibility = ScrollRect.ScrollbarVisibility.AutoHideAndExpandViewport;
            scrollRect.verticalScrollbarVisibility   = ScrollRect.ScrollbarVisibility.AutoHideAndExpandViewport;
            scrollRect.horizontalScrollbarSpacing    = -3f;
            scrollRect.verticalScrollbarSpacing      = -3f;
            Image image = gameObject.AddComponent <Image>();

            image.sprite = resources.background;
            image.type   = Image.Type.Sliced;
            image.color  = s_PanelColor;
            Mask mask = gameObject2.AddComponent <Mask>();

            mask.showMaskGraphic = false;
            Image image2 = gameObject2.AddComponent <Image>();

            image2.sprite = resources.mask;
            image2.type   = Image.Type.Sliced;
            return(gameObject);
        }
예제 #29
0
        public static ScrollRect CreateScrollView(GameObject parent = null, string name = "Scroll View", LayoutGroupType layoutGroupType = LayoutGroupType.Vertical)
        {
            Resources resources = GetStandardResources();


            GameObject root = CreateUIElementRoot(name, new Vector2(200, 200));

            SetParentAndAlign(root, parent);
            root.layer = LayerMask.NameToLayer(kUILayerName);

            GameObject viewport = CreateUIObject("Viewport", root);
            GameObject content  = CreateUIObject("Content", viewport);

            // Sub controls.

            GameObject hScrollbar = CreateScrollbar().gameObject;

            hScrollbar.name = "Scrollbar Horizontal";
            SetParentAndAlign(hScrollbar, root);
            RectTransform hScrollbarRT = hScrollbar.GetComponent <RectTransform>();

            hScrollbarRT.anchorMin = Vector2.zero;
            hScrollbarRT.anchorMax = Vector2.right;
            hScrollbarRT.pivot     = Vector2.zero;
            hScrollbarRT.sizeDelta = new Vector2(0, hScrollbarRT.sizeDelta.y);

            GameObject vScrollbar = CreateScrollbar().gameObject;

            vScrollbar.name = "Scrollbar Vertical";
            SetParentAndAlign(vScrollbar, root);
            vScrollbar.GetComponent <Scrollbar>().SetDirection(Scrollbar.Direction.BottomToTop, true);
            RectTransform vScrollbarRT = vScrollbar.GetComponent <RectTransform>();

            vScrollbarRT.anchorMin = Vector2.right;
            vScrollbarRT.anchorMax = Vector2.one;
            vScrollbarRT.pivot     = Vector2.one;
            vScrollbarRT.sizeDelta = new Vector2(vScrollbarRT.sizeDelta.x, 0);

            // Setup RectTransforms.

            // Make viewport fill entire scroll view.
            RectTransform viewportRT = viewport.GetComponent <RectTransform>();

            viewportRT.anchorMin = Vector2.zero;
            viewportRT.anchorMax = Vector2.one;
            viewportRT.sizeDelta = Vector2.zero;
            viewportRT.pivot     = Vector2.up;

            // Make context match viewpoprt width and be somewhat taller.
            // This will show the vertical scrollbar and not the horizontal one.
            RectTransform contentRT = content.GetComponent <RectTransform>();

            contentRT.anchorMin = Vector2.up;
            contentRT.anchorMax = Vector2.one;
            contentRT.sizeDelta = new Vector2(0, 300);
            contentRT.pivot     = Vector2.up;

            // Setup UI components.

            ScrollRect scrollRect = root.AddComponent <ScrollRect>();

            scrollRect.content                       = contentRT;
            scrollRect.viewport                      = viewportRT;
            scrollRect.horizontalScrollbar           = hScrollbar.GetComponent <Scrollbar>();
            scrollRect.verticalScrollbar             = vScrollbar.GetComponent <Scrollbar>();
            scrollRect.horizontalScrollbarVisibility = ScrollRect.ScrollbarVisibility.AutoHideAndExpandViewport;
            scrollRect.verticalScrollbarVisibility   = ScrollRect.ScrollbarVisibility.AutoHideAndExpandViewport;
            scrollRect.horizontalScrollbarSpacing    = -3;
            scrollRect.verticalScrollbarSpacing      = -3;

            Image rootImage = root.AddComponent <Image>();

            rootImage.sprite = resources.background;
            rootImage.type   = Image.Type.Sliced;
            rootImage.color  = s_PanelColor;

            Mask viewportMask = viewport.AddComponent <Mask>();

            viewportMask.showMaskGraphic = false;

            Image viewportImage = viewport.AddComponent <Image>();

            viewportImage.sprite = resources.mask;
            viewportImage.type   = Image.Type.Sliced;

            switch (layoutGroupType)
            {
            case LayoutGroupType.Grid:
                content.AddComponent <GridLayoutGroup>();
                break;

            case LayoutGroupType.Horizontal:
                content.AddComponent <HorizontalLayoutGroup>();
                break;

            case LayoutGroupType.Vertical:
                content.AddComponent <VerticalLayoutGroup>();
                break;
            }

            return(scrollRect);
        }
예제 #30
0
        private long sendFragmented(
      Opcode opcode, Stream stream, long length, Mask mask, bool compressed)
        {
            var quo = length / FragmentLength;
              var rem = (int) (length % FragmentLength);
              var count = rem == 0 ? quo - 2 : quo - 1;

              long sentLen = 0;
              int readLen = 0;
              byte [] buffer = null;

              // Not fragmented
              if (quo == 0)
              {
            buffer = new byte [rem];
            readLen = stream.Read (buffer, 0, rem);
            if (readLen == rem &&
            send (WsFrame.CreateFrame (Fin.FINAL, opcode, mask, buffer, compressed)))
              sentLen = readLen;

            return sentLen;
              }

              buffer = new byte [FragmentLength];

              // First
              readLen = stream.Read (buffer, 0, FragmentLength);
              if (readLen == FragmentLength &&
              send (WsFrame.CreateFrame (Fin.MORE, opcode, mask, buffer, compressed)))
            sentLen = readLen;
              else
            return sentLen;

              // Mid
              for (long i = 0; i < count; i++)
              {
            readLen = stream.Read (buffer, 0, FragmentLength);
            if (readLen == FragmentLength &&
            send (WsFrame.CreateFrame (Fin.MORE, Opcode.CONT, mask, buffer, compressed)))
              sentLen += readLen;
            else
              return sentLen;
              }

              // Final
              var tmpLen = FragmentLength;
              if (rem != 0)
            buffer = new byte [tmpLen = rem];

              readLen = stream.Read (buffer, 0, tmpLen);
              if (readLen == tmpLen &&
              send (WsFrame.CreateFrame (Fin.FINAL, Opcode.CONT, mask, buffer, compressed)))
            sentLen += readLen;

              return sentLen;
        }
예제 #31
0
 protected void Translate_InternalFill <R>(Mask <R> obj, Func <TItem, R> eval)
 {
     obj.TriangleBeforeDoor = eval(this.TriangleBeforeDoor);
     obj.Unknown            = eval(this.Unknown);
     obj.Door = eval(this.Door);
 }
예제 #32
0
        private bool sendFragmented(Opcode opcode, Stream stream, Mask mask, bool compressed)
        {
            var len = stream.Length;
              var quo = len / FragmentLength;
              var rem = (int) (len % FragmentLength);
              var times = rem == 0 ? quo - 2 : quo - 1;

              byte [] buffer = null;

              // Not fragmented
              if (quo == 0) {
            buffer = new byte [rem];
            return stream.Read (buffer, 0, rem) == rem &&
               send (WsFrame.CreateFrame (Fin.Final, opcode, mask, buffer, compressed));
              }

              buffer = new byte [FragmentLength];

              // First
              if (stream.Read (buffer, 0, FragmentLength) != FragmentLength ||
              !send (WsFrame.CreateFrame (Fin.More, opcode, mask, buffer, compressed)))
            return false;

              // Mid
              for (long i = 0; i < times; i++) {
            if (stream.Read (buffer, 0, FragmentLength) != FragmentLength ||
            !send (WsFrame.CreateFrame (Fin.More, Opcode.Cont, mask, buffer, compressed)))
              return false;
              }

              // Final
              var tmpLen = FragmentLength;
              if (rem != 0)
            buffer = new byte [tmpLen = rem];

              return stream.Read (buffer, 0, tmpLen) == tmpLen &&
             send (WsFrame.CreateFrame (Fin.Final, Opcode.Cont, mask, buffer, compressed));
        }
예제 #33
0
        public void SetScaleTranslate(float sx, float sy, float tx, float ty)
        {
            scaleX = sx;
            skewX = 0;
            transX = tx;

            skewY = 0;
            scaleY = sy;
            transY = ty;

            persp0 = 0;
            persp1 = 0;
            persp2 = 1;

#if OPTIMIZED_SKMATRIX
			typeMask = Mask.RectStaysRect | 
				((sx != 1 || sy != 1) ? Mask.Scale : 0) |
				((tx != 0 || ty != 0) ? Mask.Translate : 0);
#endif
        }
예제 #34
0
        private void buttonStart_Click(object sender, EventArgs e)
        {
            try
            {
                Dictionary <MeasureData, double> _measures = new Dictionary <MeasureData, double>();
                string err = "Должно быть выбрано ровно 2 измерения.\r\nПервое должно быть 'усреднённым' и содержать статистическую информацию [Σ+].";
                foreach (object o in listBoxMeasures.Items)
                {
                    if (multiGraph.Plotters.ContainsKey(o))
                    {
                        _measures.Add(o as MeasureData, (multiGraph.Plotters[o] as MovableGraph).Correcture);
                    }
                }

                Mask _mask = comboBoxMasks.SelectedItem as Mask;


                if (_measures.Count < 2)
                {
                    MessageBox.Show(err);
                    return;
                }
                double _maxlen = double.MaxValue;

                foreach (MeasureData data in _measures.Keys)
                {
                    _maxlen = Math.Min(_maxlen, data.FullMeasureLength);
                }

                if (_maxlen < 1d)
                {
                    return;
                }


                if (_measures.Count != 2)
                {
                    MessageBox.Show(err);
                    return;
                }
                else if ((listBoxMeasures.Items[0] as MeasureData).IsMeasured)
                {
                    MessageBox.Show("Первое измерение не является 'усреднённым' [Σ].");
                    return;
                }
                else if ((listBoxMeasures.Items[0] as MeasureData).DispData == null)
                {
                    MessageBox.Show("Первое измерение не содержит статистической информации [+].");
                    return;
                }
                else
                {
                    MeasureData bm = listBoxMeasures.Items[0] as MeasureData;
                    MeasureData cm = listBoxMeasures.Items[1] as MeasureData;

                    double corr = (multiGraph.Plotters[cm] as MovableGraph).Correcture - (multiGraph.Plotters[bm] as MovableGraph).Correcture;

                    #region зачистка
                    foreach (Sensor s in cm.AllData.Keys)
                    {
                        if (!bm.Data.ContainsKey(s))
                        {
                            cm.Used[s] = false;
                        }
                    }

                    foreach (Sensor s in bm.AllData.Keys)
                    {
                        if (!cm.Data.ContainsKey(s))
                        {
                            bm.Used[s] = false;
                        }
                    }

                    #endregion Зачистка

                    Dictionary <string, object> objs = AlgsList.Correspondence(bm, cm, corr);
                    if ((bool)objs["ok"])
                    {
                        Dictionary <Sensor, List <double> > insigma     = objs["sigma"] as Dictionary <Sensor, List <double> >;
                        Dictionary <Sensor, List <double> > in3sigma    = objs["3sigma"] as Dictionary <Sensor, List <double> >;
                        Dictionary <Sensor, List <double> > outof3sigma = objs["unstable"] as Dictionary <Sensor, List <double> >;

                        int count, in1, in3, out3;
                        count = in1 = in3 = out3 = 0;
                        foreach (Sensor sensor in insigma.Keys)
                        {
                            foreach (double d in insigma[sensor])
                            {
                                count++;
                                in1++;
                            }
                        }

                        foreach (Sensor sensor in in3sigma.Keys)
                        {
                            foreach (double d in in3sigma[sensor])
                            {
                                count++;
                                in3++;
                            }
                        }
                        foreach (Sensor sensor in outof3sigma.Keys)
                        {
                            foreach (double d in outof3sigma[sensor])
                            {
                                count++;
                                out3++;
                            }
                        }

                        FormCompare report = new FormCompare();

                        report.RTB.SelectionFont = report.Bold.Font;
                        report.RTB.AppendText("Сводка по сравнению:\r\n");
                        report.RTB.SelectionFont = report.Normal.Font;
                        report.RTB.AppendText("  Базовое измерение: " + bm.ToString() + "\r\n");
                        report.RTB.SelectionFont = report.Normal.Font;
                        report.RTB.AppendText("  Сравниваемое измерение: " + cm.ToString() + "\r\n");
                        report.RTB.SelectionFont = report.Italic.Font;
                        report.RTB.AppendText("  Всего сравнивалось точек: ");
                        report.RTB.SelectionFont = report.Normal.Font;
                        report.RTB.AppendText("" + count + " (" + ((100d / count) * count).ToString("0.00") + "%)\r\n");

                        report.RTB.SelectionColor = Color.Green;
                        report.RTB.SelectionFont  = report.Italic.Font;
                        report.RTB.AppendText("  Попало в X±σ: ");
                        report.RTB.SelectionFont = report.Normal.Font;
                        report.RTB.AppendText("" + in1 + " (" + ((100d / count) * in1).ToString("0.00") + "%)\r\n");

                        report.RTB.SelectionColor = Color.Orange;
                        report.RTB.SelectionFont  = report.Italic.Font;
                        report.RTB.AppendText("  Попало в X±3σ: ");

                        report.RTB.SelectionFont = report.Normal.Font;
                        report.RTB.AppendText("" + (in1 + in3) + " (" + ((100d / count) * (in3 + in1)).ToString("0.00") + "%)\r\n");
                        report.RTB.SelectionFont = report.Normal.Font;
                        report.RTB.AppendText("  Значения точек в интервале\r\n  (-3σ; -σ)U(σ; 3σ):\r\n");

                        foreach (Sensor s in in3sigma.Keys)
                        {
                            report.RTB.SelectionFont = report.Normal.Font;
                            report.RTB.AppendText("    " + s.ToString() + ": ");

                            foreach (double d in in3sigma[s])
                            {
                                report.RTB.SelectionFont = report.Normal.Font;
                                report.RTB.AppendText(d.ToString() + "; ");
                            }
                            report.RTB.SelectionFont = report.Normal.Font;
                            report.RTB.AppendText("\r\n");
                        }

                        report.RTB.SelectionColor = Color.Red;
                        report.RTB.SelectionFont  = report.Italic.Font;
                        report.RTB.AppendText("  Не попало в X±3σ: ");
                        report.RTB.SelectionFont = report.Normal.Font;
                        report.RTB.AppendText("" + out3 + " (" + ((100d / count) * out3).ToString("0.00") + "%)\r\n");

                        foreach (Sensor s in outof3sigma.Keys)
                        {
                            report.RTB.SelectionFont = report.Normal.Font;
                            report.RTB.AppendText("    " + s.ToString() + ": ");

                            foreach (double d in outof3sigma[s])
                            {
                                report.RTB.SelectionFont = report.Normal.Font;
                                report.RTB.AppendText(d.ToString() + "; ");
                            }
                            report.RTB.SelectionFont = report.Normal.Font;
                            report.RTB.AppendText("\r\n");
                        }

                        report.RTB.SelectionColor = Color.Black;

                        report.setValues(bm, _measures[bm], cm, _measures[cm], _mask);

                        report.Show();
                    }
                    else
                    {
                        MessageBox.Show("Ошибка сравнения: " + objs["errorlog"]);
                    }
                }
            }
            catch (Exception ex) { MessageBox.Show("Ошибка:\r\n" + ex.Message); }
        }
예제 #35
0
 protected void Translate_InternalFill <R>(Mask <R> obj, Func <TItem, R> eval)
 {
     obj.BranchCount = eval(this.BranchCount);
     obj.Flags       = eval(this.Flags);
 }
예제 #36
0
        public static ProcessResultArray <Clip> ProcessCommand(Command command, Clip[] incomingClips, ClipMetaData targetMetadata)
        {
            var clips = new Clip[incomingClips.Length];

            for (var i = 0; i < incomingClips.Length; i++)
            {
                clips[i] = new Clip(incomingClips[i]);
            }

            ProcessResultArray <Clip> resultContainer;

            switch (command.Id)
            {
            case TokenType.Arpeggiate:
                resultContainer = Arpeggiate.Apply(command, clips);
                break;

            case TokenType.Concat:
                resultContainer = Concat.Apply(clips);
                break;

            case TokenType.Crop:
                resultContainer = Crop.Apply(command, clips);
                break;

            case TokenType.Filter:
                resultContainer = Filter.Apply(command, clips);
                break;

            case TokenType.Interleave:
                resultContainer = Interleave.Apply(command, targetMetadata, clips);
                break;

            case TokenType.InterleaveEvent:
                var(success, msg) = OptionParser.TryParseOptions(command, out InterleaveOptions options);
                if (!success)
                {
                    return(new ProcessResultArray <Clip>(msg));
                }
                options.Mode    = InterleaveMode.Event;
                resultContainer = Interleave.Apply(options, targetMetadata, clips);
                break;

            case TokenType.Legato:
                resultContainer = Legato.Apply(clips);
                break;

            case TokenType.Mask:
                resultContainer = Mask.Apply(command, clips);
                break;

            case TokenType.Monophonize:
                resultContainer = Monophonize.Apply(clips);
                break;

            case TokenType.Quantize:
                resultContainer = Quantize.Apply(command, clips);
                break;

            case TokenType.Ratchet:
                resultContainer = Ratchet.Apply(command, clips);
                break;

            case TokenType.Relength:
                resultContainer = Relength.Apply(command, clips);
                break;

            case TokenType.Resize:
                resultContainer = Resize.Apply(command, clips);
                break;

            case TokenType.Scale:
                resultContainer = Scale.Apply(command, clips);
                break;

            case TokenType.Scan:
                resultContainer = Scan.Apply(command, clips);
                break;

            case TokenType.SetLength:
                resultContainer = SetLength.Apply(command, clips);
                break;

            case TokenType.SetRhythm:
                resultContainer = SetRhythm.Apply(command, clips);
                break;

            case TokenType.Shuffle:
                resultContainer = Shuffle.Apply(command, clips);
                break;

            case TokenType.Skip:
                resultContainer = Skip.Apply(command, clips);
                break;

            case TokenType.Slice:
                resultContainer = Slice.Apply(command, clips);
                break;

            case TokenType.Take:
                resultContainer = Take.Apply(command, clips);
                break;

            case TokenType.Transpose:
                resultContainer = Transpose.Apply(command, clips);
                break;

            default:
                return(new ProcessResultArray <Clip>($"Unsupported command {command.Id}"));
            }
            return(resultContainer);
        }
예제 #37
0
        /// <summary>
        /// Статистически надёжное среднее
        /// </summary>
        /// <param name="measuresCorrecture">измерения с корректировкой времени</param>
        /// <param name="mask">маска</param>
        /// <param name="length">продолжительность</param>
        /// <returns>среднее, просеенное через Q-критерий, и снабженное информацией о доверительных интервалах</returns>
        public static MeasureData reliableMiddle(Dictionary <MeasureData, double> measuresCorrecture, string measureName, Mask mask, double length)
        {
            Dictionary <Sensor, Dictionary <double, List <double> > > data = new Dictionary <Sensor, Dictionary <double, List <double> > >();
            Dictionary <Sensor, Dictionary <double, Dictionary <double, double> > > dispdata = new Dictionary <Sensor, Dictionary <double, Dictionary <double, double> > >();
            Dictionary <Sensor, int> dividers = new Dictionary <Sensor, int>();
            Dictionary <MeasureData, Dictionary <Sensor, double> > inits = new Dictionary <MeasureData, Dictionary <Sensor, double> >();
            Dictionary <Sensor, double> starts = new Dictionary <Sensor, double>();

            #region В _starts поместили средний старт и инициализировали data
            foreach (MeasureData md in measuresCorrecture.Keys)
            {
                inits.Add(md, md.StartValues);
            }

            foreach (MeasureData md in measuresCorrecture.Keys)
            {
                Dictionary <Sensor, double> sv = md.StartValues;
                foreach (Sensor s in md.AllData.Keys)
                {
                    if (!data.ContainsKey(s))
                    {
                        data.Add(s, new Dictionary <double, List <double> >());
                    }
                    if (!dispdata.ContainsKey(s))
                    {
                        dispdata.Add(s, new Dictionary <double, Dictionary <double, double> >());
                    }

                    if (!dividers.ContainsKey(s))
                    {
                        dividers.Add(s, 1);
                    }
                    else
                    {
                        dividers[s] = dividers[s] + 1;
                    }

                    if (!starts.ContainsKey(s))
                    {
                        starts.Add(s, sv[s]);
                    }
                    else
                    {
                        starts[s] = starts[s] + sv[s];
                    }
                }
            }

            Dictionary <Sensor, double> _starts = new Dictionary <Sensor, double>();
            foreach (Sensor s in starts.Keys)
            {
                _starts.Add(s, starts[s] / dividers[s]);
            }
            #endregion

            #region Собрали тики в ticks
            List <double> ticks = new List <double>();


            foreach (double tick in mask.TimePoints)
            {
                if (tick <= length)
                {
                    ticks.Add(tick);
                }
            }

            #endregion

            #region Складываем по маске точки

            foreach (double tick in ticks)
            {
                foreach (MeasureData md in measuresCorrecture.Keys)
                {
                    Dictionary <Sensor, double> vals = md.GetDataAtTheMoment(md.StartTime.AddSeconds(tick - measuresCorrecture[md]));

                    foreach (Sensor sensor in vals.Keys)
                    {
                        if (!data[sensor].ContainsKey(tick))
                        {
                            data[sensor].Add(tick, new List <double>());
                        }
                        if (!dispdata[sensor].ContainsKey(tick))
                        {
                            dispdata[sensor].Add(tick, new Dictionary <double, double>());
                        }

                        data[sensor][tick].Add(_starts[sensor] - vals[sensor]);
                    }
                }
            }

            #endregion

            #region Статистика к бою

            foreach (Sensor sensor in dispdata.Keys)
            {
                //dispdata.Add(sensor, new Dictionary<double,Dictionary<double,double>>());

                foreach (double tick in dispdata[sensor].Keys)
                {
                    // dispdata[sensor].Add(tick, new Dictionary<double,double>());

                    List <double> select = Q_095(data[sensor][tick]);

                    dispdata[sensor][tick].Add(mean(select), dX(select));
                }
            }

            #endregion

            #region Пересбор данных

            Dictionary <Sensor, List <PointD> > newdata = new Dictionary <Sensor, List <PointD> >();
            Dictionary <Sensor, Dictionary <double, double> > newdispdata = new Dictionary <Sensor, Dictionary <double, double> >();

            foreach (Sensor s in dispdata.Keys)
            {
                newdata.Add(s, new List <PointD>());
                newdispdata.Add(s, new Dictionary <double, double>());

                newdata[s].Add(new PointD(-1, _starts[s]));
                foreach (double d in dispdata[s].Keys)
                {
                    Dictionary <double, double> pair = dispdata[s][d];

                    double k = 0;
                    foreach (double q in pair.Keys)
                    {
                        k = q;
                    }

                    newdata[s].Add(new PointD(d, _starts[s] - k));
                    newdispdata[s].Add(d, pair[k]);
                }
            }

            #endregion

            MeasureData mdata = new MeasureData(newdata, -1, measureName, DateTime.Now, "", -1, length, 1, false, mask, "-1", "-1");
            mdata.DispData = newdispdata;
            return(mdata);
        }
예제 #38
0
 protected void Translate_InternalFill <R>(Mask <R> obj, Func <TItem, R> eval)
 {
     obj.Min = eval(this.Min);
     obj.Max = eval(this.Max);
 }
예제 #39
0
 protected void Translate_InternalFill <R>(Mask <R> obj, Func <TItem, R> eval)
 {
     obj.PartType = eval(this.PartType);
     obj.FileName = eval(this.FileName);
 }
예제 #40
0
 protected void Translate_InternalFill <R>(Mask <R> obj, Func <TItem, R> eval)
 {
     base.Translate_InternalFill(obj, eval);
 }
예제 #41
0
        public static GameObject CreateDropdown(Resources resources)
        {
            GameObject gameObject   = CreateUIElementRoot("Dropdown", s_ThickElementSize);
            GameObject gameObject2  = CreateUIObject("Label", gameObject);
            GameObject gameObject3  = CreateUIObject("Arrow", gameObject);
            GameObject gameObject4  = CreateUIObject("Template", gameObject);
            GameObject gameObject5  = CreateUIObject("Viewport", gameObject4);
            GameObject gameObject6  = CreateUIObject("Content", gameObject5);
            GameObject gameObject7  = CreateUIObject("Item", gameObject6);
            GameObject gameObject8  = CreateUIObject("Item Background", gameObject7);
            GameObject gameObject9  = CreateUIObject("Item Checkmark", gameObject7);
            GameObject gameObject10 = CreateUIObject("Item Label", gameObject7);
            GameObject gameObject11 = CreateScrollbar(resources);

            gameObject11.name = "Scrollbar";
            SetParentAndAlign(gameObject11, gameObject4);
            Scrollbar component = gameObject11.GetComponent <Scrollbar>();

            component.SetDirection(Scrollbar.Direction.BottomToTop, includeRectLayouts: true);
            RectTransform component2 = gameObject11.GetComponent <RectTransform>();

            component2.anchorMin = Vector2.right;
            component2.anchorMax = Vector2.one;
            component2.pivot     = Vector2.one;
            RectTransform rectTransform = component2;
            Vector2       sizeDelta     = component2.sizeDelta;

            rectTransform.sizeDelta = new Vector2(sizeDelta.x, 0f);
            Text text = gameObject10.AddComponent <Text>();

            SetDefaultTextValues(text);
            text.alignment = TextAnchor.MiddleLeft;
            Image image = gameObject8.AddComponent <Image>();

            image.color = new Color32(245, 245, 245, byte.MaxValue);
            Image image2 = gameObject9.AddComponent <Image>();

            image2.sprite = resources.checkmark;
            Toggle toggle = gameObject7.AddComponent <Toggle>();

            toggle.targetGraphic = image;
            toggle.graphic       = image2;
            toggle.isOn          = true;
            Image image3 = gameObject4.AddComponent <Image>();

            image3.sprite = resources.standard;
            image3.type   = Image.Type.Sliced;
            ScrollRect scrollRect = gameObject4.AddComponent <ScrollRect>();

            scrollRect.content                     = (RectTransform)gameObject6.transform;
            scrollRect.viewport                    = (RectTransform)gameObject5.transform;
            scrollRect.horizontal                  = false;
            scrollRect.movementType                = ScrollRect.MovementType.Clamped;
            scrollRect.verticalScrollbar           = component;
            scrollRect.verticalScrollbarVisibility = ScrollRect.ScrollbarVisibility.AutoHideAndExpandViewport;
            scrollRect.verticalScrollbarSpacing    = -3f;
            Mask mask = gameObject5.AddComponent <Mask>();

            mask.showMaskGraphic = false;
            Image image4 = gameObject5.AddComponent <Image>();

            image4.sprite = resources.mask;
            image4.type   = Image.Type.Sliced;
            Text text2 = gameObject2.AddComponent <Text>();

            SetDefaultTextValues(text2);
            text2.text      = "Option A";
            text2.alignment = TextAnchor.MiddleLeft;
            Image image5 = gameObject3.AddComponent <Image>();

            image5.sprite = resources.dropdown;
            Image image6 = gameObject.AddComponent <Image>();

            image6.sprite = resources.standard;
            image6.color  = s_DefaultSelectableColor;
            image6.type   = Image.Type.Sliced;
            Dropdown dropdown = gameObject.AddComponent <Dropdown>();

            dropdown.targetGraphic = image6;
            SetDefaultColorTransitionValues(dropdown);
            dropdown.template    = gameObject4.GetComponent <RectTransform>();
            dropdown.captionText = text2;
            dropdown.itemText    = text;
            text.text            = "Option A";
            dropdown.options.Add(new Dropdown.OptionData
            {
                text = "Option A"
            });
            dropdown.options.Add(new Dropdown.OptionData
            {
                text = "Option B"
            });
            dropdown.options.Add(new Dropdown.OptionData
            {
                text = "Option C"
            });
            RectTransform component3 = gameObject2.GetComponent <RectTransform>();

            component3.anchorMin = Vector2.zero;
            component3.anchorMax = Vector2.one;
            component3.offsetMin = new Vector2(10f, 6f);
            component3.offsetMax = new Vector2(-25f, -7f);
            RectTransform component4 = gameObject3.GetComponent <RectTransform>();

            component4.anchorMin        = new Vector2(1f, 0.5f);
            component4.anchorMax        = new Vector2(1f, 0.5f);
            component4.sizeDelta        = new Vector2(20f, 20f);
            component4.anchoredPosition = new Vector2(-15f, 0f);
            RectTransform component5 = gameObject4.GetComponent <RectTransform>();

            component5.anchorMin        = new Vector2(0f, 0f);
            component5.anchorMax        = new Vector2(1f, 0f);
            component5.pivot            = new Vector2(0.5f, 1f);
            component5.anchoredPosition = new Vector2(0f, 2f);
            component5.sizeDelta        = new Vector2(0f, 150f);
            RectTransform component6 = gameObject5.GetComponent <RectTransform>();

            component6.anchorMin = new Vector2(0f, 0f);
            component6.anchorMax = new Vector2(1f, 1f);
            component6.sizeDelta = new Vector2(-18f, 0f);
            component6.pivot     = new Vector2(0f, 1f);
            RectTransform component7 = gameObject6.GetComponent <RectTransform>();

            component7.anchorMin        = new Vector2(0f, 1f);
            component7.anchorMax        = new Vector2(1f, 1f);
            component7.pivot            = new Vector2(0.5f, 1f);
            component7.anchoredPosition = new Vector2(0f, 0f);
            component7.sizeDelta        = new Vector2(0f, 28f);
            RectTransform component8 = gameObject7.GetComponent <RectTransform>();

            component8.anchorMin = new Vector2(0f, 0.5f);
            component8.anchorMax = new Vector2(1f, 0.5f);
            component8.sizeDelta = new Vector2(0f, 20f);
            RectTransform component9 = gameObject8.GetComponent <RectTransform>();

            component9.anchorMin = Vector2.zero;
            component9.anchorMax = Vector2.one;
            component9.sizeDelta = Vector2.zero;
            RectTransform component10 = gameObject9.GetComponent <RectTransform>();

            component10.anchorMin        = new Vector2(0f, 0.5f);
            component10.anchorMax        = new Vector2(0f, 0.5f);
            component10.sizeDelta        = new Vector2(20f, 20f);
            component10.anchoredPosition = new Vector2(10f, 0f);
            RectTransform component11 = gameObject10.GetComponent <RectTransform>();

            component11.anchorMin = Vector2.zero;
            component11.anchorMax = Vector2.one;
            component11.offsetMin = new Vector2(20f, 1f);
            component11.offsetMax = new Vector2(-10f, -2f);
            gameObject4.SetActive(value: false);
            return(gameObject);
        }
예제 #42
0
 protected void Translate_InternalFill <R>(Mask <R> obj, Func <TItem, R> eval)
 {
     obj.Skill = eval(this.Skill);
     obj.Boost = eval(this.Boost);
 }
예제 #43
0
        public static Dropdown CreateDropdown(GameObject parent = null, string name = "Dropdown", string defaultLabel = "Option A")
        {
            Resources resources = GetStandardResources();


            GameObject root = CreateUIElementRoot(name, s_ThickElementSize);

            SetParentAndAlign(root, parent);
            root.layer = LayerMask.NameToLayer(kUILayerName);

            GameObject label          = CreateUIObject("Label", root);
            GameObject arrow          = CreateUIObject("Arrow", root);
            GameObject template       = CreateUIObject("Template", root);
            GameObject viewport       = CreateUIObject("Viewport", template);
            GameObject content        = CreateUIObject("Content", viewport);
            GameObject item           = CreateUIObject("Item", content);
            GameObject itemBackground = CreateUIObject("Item Background", item);
            GameObject itemCheckmark  = CreateUIObject("Item Checkmark", item);
            GameObject itemLabel      = CreateUIObject("Item Label", item);

            // Sub controls.

            GameObject scrollbar = CreateScrollbar().gameObject;

            scrollbar.name = "Scrollbar";
            SetParentAndAlign(scrollbar, template);

            Scrollbar scrollbarScrollbar = scrollbar.GetComponent <Scrollbar>();

            scrollbarScrollbar.SetDirection(Scrollbar.Direction.BottomToTop, true);

            RectTransform vScrollbarRT = scrollbar.GetComponent <RectTransform>();

            vScrollbarRT.anchorMin = Vector2.right;
            vScrollbarRT.anchorMax = Vector2.one;
            vScrollbarRT.pivot     = Vector2.one;
            vScrollbarRT.sizeDelta = new Vector2(vScrollbarRT.sizeDelta.x, 0);

            // Setup item UI components.

            Text itemLabelText = itemLabel.AddComponent <Text>();

            SetDefaultTextValues(itemLabelText);
            itemLabelText.font      = resources.font;
            itemLabelText.alignment = TextAnchor.MiddleLeft;

            Image itemBackgroundImage = itemBackground.AddComponent <Image>();

            itemBackgroundImage.color = new Color32(245, 245, 245, 255);

            Image itemCheckmarkImage = itemCheckmark.AddComponent <Image>();

            itemCheckmarkImage.sprite = resources.checkmark;

            Toggle itemToggle = item.AddComponent <Toggle>();

            itemToggle.targetGraphic = itemBackgroundImage;
            itemToggle.graphic       = itemCheckmarkImage;
            itemToggle.isOn          = true;

            // Setup template UI components.

            Image templateImage = template.AddComponent <Image>();

            templateImage.sprite = resources.standard;
            templateImage.type   = Image.Type.Sliced;

            ScrollRect templateScrollRect = template.AddComponent <ScrollRect>();

            templateScrollRect.content                     = (RectTransform)content.transform;
            templateScrollRect.viewport                    = (RectTransform)viewport.transform;
            templateScrollRect.horizontal                  = false;
            templateScrollRect.movementType                = ScrollRect.MovementType.Clamped;
            templateScrollRect.verticalScrollbar           = scrollbarScrollbar;
            templateScrollRect.verticalScrollbarVisibility = ScrollRect.ScrollbarVisibility.AutoHideAndExpandViewport;
            templateScrollRect.verticalScrollbarSpacing    = -3;

            Mask scrollRectMask = viewport.AddComponent <Mask>();

            scrollRectMask.showMaskGraphic = false;

            Image viewportImage = viewport.AddComponent <Image>();

            viewportImage.sprite = resources.mask;
            viewportImage.type   = Image.Type.Sliced;

            // Setup dropdown UI components.

            Text labelText = label.AddComponent <Text>();

            SetDefaultTextValues(labelText);
            labelText.font      = resources.font;
            labelText.alignment = TextAnchor.MiddleLeft;

            Image arrowImage = arrow.AddComponent <Image>();

            arrowImage.sprite = resources.dropdown;

            Image backgroundImage = root.AddComponent <Image>();

            backgroundImage.sprite = resources.standard;
            backgroundImage.color  = s_DefaultSelectableColor;
            backgroundImage.type   = Image.Type.Sliced;

            Dropdown dropdown = root.AddComponent <Dropdown>();

            dropdown.targetGraphic = backgroundImage;
            SetDefaultColorTransitionValues(dropdown);
            dropdown.template    = template.GetComponent <RectTransform>();
            dropdown.captionText = labelText;
            dropdown.itemText    = itemLabelText;

            // Setting default Item list.
            labelText.text = defaultLabel;
            dropdown.options.Add(new Dropdown.OptionData {
                text = "Option A"
            });
            dropdown.options.Add(new Dropdown.OptionData {
                text = "Option B"
            });
            dropdown.options.Add(new Dropdown.OptionData {
                text = "Option C"
            });

            // Set up RectTransforms.

            RectTransform labelRT = label.GetComponent <RectTransform>();

            labelRT.anchorMin = Vector2.zero;
            labelRT.anchorMax = Vector2.one;
            labelRT.offsetMin = new Vector2(10, 6);
            labelRT.offsetMax = new Vector2(-25, -7);

            RectTransform arrowRT = arrow.GetComponent <RectTransform>();

            arrowRT.anchorMin        = new Vector2(1, 0.5f);
            arrowRT.anchorMax        = new Vector2(1, 0.5f);
            arrowRT.sizeDelta        = new Vector2(20, 20);
            arrowRT.anchoredPosition = new Vector2(-15, 0);

            RectTransform templateRT = template.GetComponent <RectTransform>();

            templateRT.anchorMin        = new Vector2(0, 0);
            templateRT.anchorMax        = new Vector2(1, 0);
            templateRT.pivot            = new Vector2(0.5f, 1);
            templateRT.anchoredPosition = new Vector2(0, 2);
            templateRT.sizeDelta        = new Vector2(0, 150);

            RectTransform viewportRT = viewport.GetComponent <RectTransform>();

            viewportRT.anchorMin = new Vector2(0, 0);
            viewportRT.anchorMax = new Vector2(1, 1);
            viewportRT.sizeDelta = new Vector2(-18, 0);
            viewportRT.pivot     = new Vector2(0, 1);

            RectTransform contentRT = content.GetComponent <RectTransform>();

            contentRT.anchorMin        = new Vector2(0f, 1);
            contentRT.anchorMax        = new Vector2(1f, 1);
            contentRT.pivot            = new Vector2(0.5f, 1);
            contentRT.anchoredPosition = new Vector2(0, 0);
            contentRT.sizeDelta        = new Vector2(0, 28);

            RectTransform itemRT = item.GetComponent <RectTransform>();

            itemRT.anchorMin = new Vector2(0, 0.5f);
            itemRT.anchorMax = new Vector2(1, 0.5f);
            itemRT.sizeDelta = new Vector2(0, 20);

            RectTransform itemBackgroundRT = itemBackground.GetComponent <RectTransform>();

            itemBackgroundRT.anchorMin = Vector2.zero;
            itemBackgroundRT.anchorMax = Vector2.one;
            itemBackgroundRT.sizeDelta = Vector2.zero;

            RectTransform itemCheckmarkRT = itemCheckmark.GetComponent <RectTransform>();

            itemCheckmarkRT.anchorMin        = new Vector2(0, 0.5f);
            itemCheckmarkRT.anchorMax        = new Vector2(0, 0.5f);
            itemCheckmarkRT.sizeDelta        = new Vector2(20, 20);
            itemCheckmarkRT.anchoredPosition = new Vector2(10, 0);

            RectTransform itemLabelRT = itemLabel.GetComponent <RectTransform>();

            itemLabelRT.anchorMin = Vector2.zero;
            itemLabelRT.anchorMax = Vector2.one;
            itemLabelRT.offsetMin = new Vector2(20, 1);
            itemLabelRT.offsetMax = new Vector2(-10, -2);

            template.SetActive(false);

            return(dropdown);
        }
예제 #44
0
 /// <summary>
 /// Get whether the current access mask is granted all specific permissions.
 /// </summary>
 /// <param name="mask">The access mask to check</param>
 /// <returns>True access all is granted.</returns>
 public bool IsAllAccessGranted(AccessMask mask)
 {
     return(Mask.IsAllAccessGranted(mask));
 }
예제 #45
0
 protected void Translate_InternalFill <R>(Mask <R> obj, Func <TItem, R> eval)
 {
     obj.Name       = eval(this.Name);
     obj.NewTexture = eval(this.NewTexture);
     obj.Index      = eval(this.Index);
 }
예제 #46
0
 /// <summary>
 /// Get hash code.
 /// </summary>
 /// <returns>The hash code</returns>
 public override int GetHashCode()
 {
     return(Type.GetHashCode() ^ Flags.GetHashCode() ^ Mask.GetHashCode()
            ^ Sid.GetHashCode() ^ ObjectType.GetHashCode() ^ InheritedObjectType.GetHashCode()
            ^ ServerSid?.GetHashCode() ?? 0 ^ NtObjectUtils.GetHashCodeByteArray(ApplicationData));
 }
예제 #47
0
 public MaskedColoredGrid(Mask mask) : base(mask.Rows, mask.Columns)
 {
     Mask = mask;
     Mask.UnlinkMaskedCells(Mask, Cells.Cast <CartesianCell>());
 }
예제 #48
0
        protected static void InternalAddScrollView <T>(MenuCommand menuCommand) where T : ScrollView
        {
            GameObject root = CreateUIElementRoot(typeof(T).Name, new Vector2(200, 200));

            GameObject viewport = CreateUIObject("Viewport", root);
            GameObject content  = CreateUIObject("Content", viewport);

            GameObject parent = menuCommand.context as GameObject;

            if (parent != null)
            {
                root.transform.SetParent(parent.transform, false);
            }
            Selection.activeGameObject = root;



            GameObject hScrollbar = CreateScrollbar();

            hScrollbar.name = "Scrollbar Horizontal";
            hScrollbar.transform.SetParent(root.transform, false);
            RectTransform hScrollbarRT = hScrollbar.GetComponent <RectTransform>();

            hScrollbarRT.anchorMin = Vector2.zero;
            hScrollbarRT.anchorMax = Vector2.right;
            hScrollbarRT.pivot     = Vector2.zero;
            hScrollbarRT.sizeDelta = new Vector2(0, hScrollbarRT.sizeDelta.y);

            GameObject vScrollbar = CreateScrollbar();

            vScrollbar.name = "Scrollbar Vertical";
            vScrollbar.transform.SetParent(root.transform, false);
            vScrollbar.GetComponent <Scrollbar>().SetDirection(Scrollbar.Direction.BottomToTop, true);
            RectTransform vScrollbarRT = vScrollbar.GetComponent <RectTransform>();

            vScrollbarRT.anchorMin = Vector2.right;
            vScrollbarRT.anchorMax = Vector2.one;
            vScrollbarRT.pivot     = Vector2.one;
            vScrollbarRT.sizeDelta = new Vector2(vScrollbarRT.sizeDelta.x, 0);



            RectTransform viewportRect = viewport.GetComponent <RectTransform>();

            viewportRect.anchorMin = Vector2.zero;
            viewportRect.anchorMax = Vector2.one;
            viewportRect.sizeDelta = Vector2.zero;
            viewportRect.pivot     = Vector2.up;

            RectTransform contentRect = content.GetComponent <RectTransform>();

            contentRect.anchorMin = Vector2.up;
            contentRect.anchorMax = Vector2.one;
            contentRect.sizeDelta = new Vector2(0, 300);
            contentRect.pivot     = Vector2.up;

            ScrollView scrollRect = root.AddComponent <T>();

            scrollRect.content                       = contentRect;
            scrollRect.viewport                      = viewportRect;
            scrollRect.horizontalScrollbar           = hScrollbar.GetComponent <Scrollbar>();
            scrollRect.verticalScrollbar             = vScrollbar.GetComponent <Scrollbar>();
            scrollRect.horizontalScrollbarVisibility = ScrollRect.ScrollbarVisibility.AutoHideAndExpandViewport;
            scrollRect.verticalScrollbarVisibility   = ScrollRect.ScrollbarVisibility.AutoHideAndExpandViewport;
            scrollRect.horizontalScrollbarSpacing    = -3;
            scrollRect.verticalScrollbarSpacing      = -3;

            Image rootImage = root.AddComponent <Image>();

            rootImage.sprite = AssetDatabase.GetBuiltinExtraResource <Sprite>(bgPath);
            rootImage.type   = Image.Type.Sliced;
            rootImage.color  = panelColor;

            Mask viewportMask = viewport.AddComponent <Mask>();

            viewportMask.showMaskGraphic = false;

            Image viewportImage = viewport.AddComponent <Image>();

            viewportImage.sprite = AssetDatabase.GetBuiltinExtraResource <Sprite>(maskPath);
            viewportImage.type   = Image.Type.Sliced;
        }
예제 #49
0
 protected void Translate_InternalFill <R>(Mask <R> obj, Func <TItem, R> eval)
 {
     obj.Priority       = eval(this.Priority);
     obj.DuckingDecibel = eval(this.DuckingDecibel);
 }
예제 #50
0
        /// <summary>
        /// Refreshes the underlying bitmap using changes array, and applying given mask shape.
        /// </summary>
        /// <param name="mask"></param>
        public void RefreshBitmap(Mask mask = Mask.Rectangle)
        {
            if (mask == Mask.Disabled)
            {
                //mask is disabled, therefore the whole image will be repainted
                Int32Rect maskingRect = new Int32Rect(0, 0, width, height);

                WriteToPixelBytes();

                int delta = width * bytesPerPixel;

                bitmap.Lock();
                bitmap.WritePixels(maskingRect, pixelBytes, delta, 0);
                bitmap.Unlock();
            }
            else if (anythingChanged)
            {
                if (mask == Mask.Rectangle)
                {
                    int xSize = xMaxChanged - xMinChanged + 1, ySize = yMaxChanged - yMinChanged + 1;
                    int delta = xSize * bytesPerPixel - 3;

                    Int32Rect maskingRect = new Int32Rect(xMinChanged, yMinChanged, xSize, ySize);

                    byte[] pixelsRect = new byte[xSize * ySize * bytesPerPixel];
                    int    index;
                    for (int x = 0; x < xSize; x++)
                    {
                        int xx = xMinChanged + x;
                        index = x * bytesPerPixel;
                        for (int y = 0; y < ySize; y++)
                        {
                            int yy = yMinChanged + y;
                            pixelsRect[index++] = (byte)(MaxByteValue * B[xx][yy]);
                            pixelsRect[index++] = (byte)(MaxByteValue * G[xx][yy]);
                            pixelsRect[index++] = (byte)(MaxByteValue * R[xx][yy]);
                            pixelsRect[index]   = (byte)(MaxByteValue * A[xx][yy]);
                            index += delta;

                            changed[xx][yy] = false;
                        }
                    }

                    bitmap.Lock();
                    bitmap.WritePixels(maskingRect, pixelsRect, delta + 3, 0);
                    bitmap.Unlock();
                }
                else if (mask == Mask.PerPixel)
                {
                    Int32Rect maskingRect = new Int32Rect(0, 0, 1, 1);

                    bitmap.Lock();

                    byte[] pixel = new byte[bytesPerPixel];
                    for (int y = yMinChanged; y <= yMaxChanged; y++)
                    {
                        for (int x = xMinChanged; x <= xMaxChanged; x++)
                        {
                            if (!changed[x][y])
                            {
                                continue;
                            }

                            maskingRect.X = x;
                            maskingRect.Y = y;

                            pixel[2] = (byte)(MaxByteValue * R[x][y]);
                            pixel[1] = (byte)(MaxByteValue * G[x][y]);
                            pixel[0] = (byte)(MaxByteValue * B[x][y]);
                            pixel[3] = (byte)(MaxByteValue * A[x][y]);

                            bitmap.WritePixels(maskingRect, pixel, bytesPerPixel, 0);

                            changed[x][y] = false;
                        }
                    }

                    bitmap.Unlock();
                }
                else if (mask == Mask.Circle)
                {
                    throw new NotImplementedException("circle-shaped mask for FastBitmapArray is not implemented");
                }

                xMinChanged     = width - 1;
                xMaxChanged     = 0;
                yMinChanged     = height - 1;
                yMaxChanged     = 0;
                anythingChanged = false;
            }
        }
예제 #51
0
 private void SetBits(Offset offset, Mask mask, bool value)
 {
     SetBits(offset, mask, (value ? 1 : 0));
 }
예제 #52
0
 protected void Translate_InternalFill <R>(Mask <R> obj, Func <TItem, R> eval)
 {
     obj.AliasIndex = eval(this.AliasIndex);
     obj.Type       = eval(this.Type);
 }
예제 #53
0
        public Layer(BinaryReverseReader reader, PsdFile psdFile)
        {
            Debug.WriteLine("Layer started at " + reader.BaseStream.Position.ToString());

            m_psdFile = psdFile;
            m_rect = new Rectangle();
            m_rect.Y = reader.ReadInt32();
            m_rect.X = reader.ReadInt32();
            m_rect.Height = reader.ReadInt32() - m_rect.Y;
            m_rect.Width = reader.ReadInt32() - m_rect.X;

            //-----------------------------------------------------------------------

            int numberOfChannels = reader.ReadUInt16();
            this.m_channels.Clear();
            for (int channel = 0; channel < numberOfChannels; channel++)
            {
                Channel ch = new Channel(reader, this);
                m_channels.Add(ch);
                m_sortedChannels.Add(ch.ID, ch);
            }

            //-----------------------------------------------------------------------

            string signature = new string(reader.ReadChars(4));
            if (signature != "8BIM")
                throw (new IOException("Layer Channelheader error!"));

            m_blendModeKey = new string(reader.ReadChars(4));
            m_opacity = reader.ReadByte();

            m_clipping = reader.ReadByte() > 0;

            //-----------------------------------------------------------------------

            byte flags = reader.ReadByte();
            m_flags = new BitVector32(flags);

            //-----------------------------------------------------------------------

            reader.ReadByte(); //padding

            //-----------------------------------------------------------------------

            Debug.WriteLine("Layer extraDataSize started at " + reader.BaseStream.Position.ToString());

            // this is the total size of the MaskData, the BlendingRangesData, the
            // Name and the AdjustmenLayerInfo
            uint extraDataSize = reader.ReadUInt32();

            // remember the start position for calculation of the
            // AdjustmenLayerInfo size
            long extraDataStartPosition = reader.BaseStream.Position;

            m_maskData = new Mask(reader, this);
            m_blendingRangesData = new BlendingRanges(reader, this);

            //-----------------------------------------------------------------------

            long namePosition = reader.BaseStream.Position;

            m_name = reader.ReadPascalString();

            int paddingBytes = (int)((reader.BaseStream.Position - namePosition) % 4);

            Debug.Print("Layer {0} padding bytes after name", paddingBytes);
            reader.ReadBytes(paddingBytes);

            //-----------------------------------------------------------------------

            m_adjustmentInfo.Clear();

            long adjustmenLayerEndPos = extraDataStartPosition + extraDataSize;
            while (reader.BaseStream.Position < adjustmenLayerEndPos)
            {
                try
                {
                    m_adjustmentInfo.Add(new AdjusmentLayerInfo(reader, this));
                }
                catch
                {
                    reader.BaseStream.Position = adjustmenLayerEndPos;
                }
            }

            //-----------------------------------------------------------------------
            // make shure we are not on a wrong offset, so set the stream position
            // manually
            reader.BaseStream.Position = adjustmenLayerEndPos;
        }
 /// <summary>
 /// Get hash code.
 /// </summary>
 /// <returns>The hash code</returns>
 public override int GetHashCode()
 {
     return(Type.GetHashCode() ^ Flags.GetHashCode() ^ Mask.GetHashCode() ^ Sid.GetHashCode() ^ ObjectType.GetHashCode() ^ InheritedObjectType.GetHashCode());
 }
예제 #55
0
		Mask GetMask ()
		{
			if (typeMask.HasFlag (Mask.Unknown))
				typeMask = (Mask) SkiaApi.sk_matrix_get_type (ref this);

		        // only return the public masks
			return (Mask) ((uint)typeMask & 0xf);
		}
 protected void Translate_InternalFill <R>(Mask <R> obj, Func <TItem, R> eval)
 {
     obj.Value  = eval(this.Value);
     obj.Weight = eval(this.Weight);
 }
예제 #57
0
        private bool sendFragmented(Opcode opcode, Stream stream, Mask mask, bool compressed)
        {
            var len = stream.Length;
              if (sendFragmented (opcode, stream, len, mask, compressed) == len)
            return true;

              var msg = "Sending fragmented data is interrupted.";
              _logger.Error (msg);
              error (msg);
              close (CloseStatusCode.ABNORMAL, msg, false);

              return false;
        }
예제 #58
0
 public static JsonToken String(string text)
 {
     return(new JsonToken(JsonTokenClass.String, Mask.NullString(text)));
 }
예제 #59
0
 public void SetFormat(IntPtr model, Setting setting, Mask mask)
 {
     if (_setFormat == null) {
         throw new Exception("Failed in loading IfcEngine.");
     }
     _setFormat.Invoke(model, new IntPtr((int)setting), new IntPtr((int)mask));
 }
 protected void Translate_InternalFill <R>(Mask <R> obj, Func <TItem, R> eval)
 {
     obj.Unknown0 = eval(this.Unknown0);
     obj.Unknown1 = eval(this.Unknown1);
     obj.Unknown2 = eval(this.Unknown2);
 }