示例#1
0
        private void AssertIsFolder(MetaDataBase file, string expectedPath)
        {
            if (expectedPath != "/" && expectedPath.EndsWith("/"))
            {
                expectedPath = expectedPath.Substring(0, expectedPath.Length - 1);
            }

            Assert.IsNotNull(file);
            Assert.IsTrue(file.IsFolder, "Expected to be a folder");
            Assert.AreEqual(expectedPath.Split('/').Last( ), file.Name, "Wrong folder name.");
            Assert.AreEqual(expectedPath, file.Path, "Wrong file path");
            Assert.IsTrue(file is FolderMetaDataBase, "Wrong object type returned");
            this.AssertMetaDataTypeFolder(file);
        }
示例#2
0
        private void buttonShowPointCloud_Click(object sender, RoutedEventArgs e)
        {
            SaveAll();
            ScannerClose();

            this.OpenSavedDepthData();
            //for image viewing - rotate by 180 degrees
            //this.DepthMetaData.FrameData = DepthMetaData.RotateDepthFrame(this.DepthMetaData.FrameData, DepthMetaData.XResDefault, DepthMetaData.YResDefault);

            ShowDepthScreenshot();
            PointCloud pc = MetaDataBase.ToPointCloud(this.ColorMetaData, this.DepthMetaData, this.BodyMetaData, this.coordinateMapper);

            TestForm fOTK = new TestForm();

            fOTK.Show();
            fOTK.ShowPointCloud(pc);
        }
示例#3
0
        private void SaveDepthAndColor_DataAndImage()
        {
            try
            {
                //byte[] myColorPixels = MetaDataBase.CreateColorInfoForDepth(this.ColorMetaData, this.DepthMetaData, this.coordinateMapper);
                PointCloud pc = MetaDataBase.ToPointCloud(this.ColorMetaData, this.DepthMetaData, this.BodyMetaData, this.coordinateMapper);

                //List<Point3D> newList = DepthMetaData.CreateListPoint3D_Depth(this.DepthMetaData.FrameData, DepthMetaData.XResDefault, DepthMetaData.YResDefault);
                SavePointCloudColor(pc);

                WriteableBitmap bitmapCustom = WriteableBitmapUtils.FromPointCloud_ToColor(pc, DepthMetaData.XDepthMaxKinect, DepthMetaData.YDepthMaxKinect);
                WriteableBitmapUtils.SaveImage(pathModels, "ColorDepthSpace_", bitmapCustom, true);
            }
            catch (Exception err)
            {
                System.Diagnostics.Debug.WriteLine("Error " + err.Message);
            }
        }
示例#4
0
        private void buttonShowColorizedPointCloud_Click(object sender, RoutedEventArgs e)
        {
            SaveAll();
            ScannerClose();

            OpenSavedColorDataWithDepth();
            ShowDepthScreenshot();
            ShowColorWithDepthScreenshot();

            TestForm fOTK = new TestForm();

            fOTK.Show();


            PointCloud pc = MetaDataBase.ToPointCloud(this.ColorMetaData, this.DepthMetaData, this.BodyMetaData, this.coordinateMapper);

            fOTK.ShowPointCloud(pc);
        }
 /// <summary>
 /// Gets the thumbnail of an image given its MetaData
 /// </summary>
 /// <param name="file"></param>
 /// <param name="size"></param>
 /// <returns></returns>
 public async Task <Stream> GetThumbnail(MetaDataBase file, ThumbnailSize size)
 {
     return(await GetThumbnail(file.Path, size));
 }
 protected override void AssertMetaDataTypeFile(MetaDataBase metaData)
 {
     Assert.IsTrue(metaData is EgnyteFile);
 }
        // Функция восстанавливает базу из бекапа
        public bool Restore(string path, Log log)
        {
            var flag         = true;
            var not_critical = true;

            FileStream stream_meta = null;
            FileStream stream_data = null;

            try
            {
                var dt = DateTime.Now;

                log.Append("Restore begin at ");
                log.Append(dt.ToString("F"));
                log.Append("\r\n");

                stream_meta = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
                stream_data = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);

                var sm = new BinaryReaderCRC32(stream_meta);
                var db = new MetaDataBase(sm);

                if (!db.IsValid)
                {
                    log.Append("Backup header corrupt. CRC32 Fail.");

                    return(false);
                }

                // Очищаем хранилище массивов
                DB.Storage.Clear();

                // Восстановление таблиц
                for (var i = 0; i < db.Count; ++i)
                {
                    var itm = db[i];

                    if (itm.IsValid)
                    {
                        var tbl = DB.GetTableByKey(itm.Key);

                        if (tbl == null)
                        {
                            log.AppendLine("Table " + itm.Key + " not found in current version database.");

                            continue;
                        }

                        log.AppendLine("Restore table " + tbl.Key);

                        var tf = itm.RestoreTable(tbl, DB.Storage, sm, stream_data, log);

                        log.AppendLine(tf ? " Done" : " Fail");

                        flag &= tf;
                    }
                    else
                    {
                        var key = itm.Key.Length < 256 ? itm.Key : itm.Key.Substring(0, 256);

                        log.Append("Table " + key + " header corrupt. CRC32 Fail.");
                    }
                }
            }
            catch (Exception e)
            {
                flag         = false;
                not_critical = false;

                log.Append(e);
            }
            finally
            {
                if (stream_meta != null)
                {
                    stream_meta.Flush();
                    stream_meta.Close();
                }

                if (stream_data != null)
                {
                    stream_data.Flush();
                    stream_data.Close();
                }
            }

            log.Append("\r\n");

            if (flag)
            {
                log.Append("Restore DONE\r\n");
            }
            else
            {
                log.Append("Restore FAIL\r\n");
            }

            return(not_critical && flag);
        }
 protected override void AssertMetaDataTypeFolder(MetaDataBase metaData)
 {
     Assert.IsTrue(metaData is BoxFolderMetaData);
 }
示例#9
0
 protected abstract void AssertMetaDataTypeFile(MetaDataBase metaData);