Пример #1
0
        private bool doRead()
        {
            if (!File.Exists(PathRead))
            {
                MessageBox.Show("File does not exist", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(false);
            }
            if (StlFile.IsBinaryFile(PathRead))
            {
                reader = new BinaryStlReader <Triangle, Vertex, Normal>(new DataCreator());
                writer = null;
            }
            else
            {
                reader = new AsciiStlReader <Triangle, Vertex, Normal>(new DataCreator());
                writer = null;
            }

            ByteReadHelper readHelper = readStenography();
            string         msg        = "";

            if (readHelper.ReadEverything())
            {
                try {
                    textBox3.Text = MyEncoding.GetString(readHelper.Data.ToArray());
                    return(true);
                } catch (Exception e) {
                    msg = "\n" + e.Message;
                }
            }
            MessageBox.Show("Could not decode data!" + msg, "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            return(false);
        }
Пример #2
0
        public ByteReadHelper readStenography()
        {
            ByteReadHelper   readHelper    = new ByteReadHelper(checkBox1.Checked, textBox4.Text);
            HashSet <Vertex> knownVertices = new HashSet <Vertex>();

            foreach (Triangle tri in reader.ReadFromFile(PathRead))
            {
                if (!readHelper.ReadEverything())
                {
                    if (!(knownVertices.Contains(tri.V1)))
                    {
                        Vertex tmp = new Vertex(tri.V1);
                        readStenographyPerVertex(tri.V1, readHelper);
                        knownVertices.Add(tmp);
                    }
                    if (!(knownVertices.Contains(tri.V2)))
                    {
                        Vertex tmp = new Vertex(tri.V2);
                        readStenographyPerVertex(tri.V2, readHelper);
                        knownVertices.Add(tmp);
                    }
                    if (!(knownVertices.Contains(tri.V3)))
                    {
                        Vertex tmp = new Vertex(tri.V3);
                        readStenographyPerVertex(tri.V3, readHelper);
                        knownVertices.Add(tmp);
                    }
                }
            }

            return(readHelper);
        }
Пример #3
0
 private void readStenographyPerVertex(Vertex v, ByteReadHelper readHelper)
 {
     if (readHelper.ReadEverything())
     {
         return;
     }
     readHelper.SetCurrentBitAndMove(readStenographyByFloat(v.X));
     if (readHelper.ReadEverything())
     {
         return;
     }
     readHelper.SetCurrentBitAndMove(readStenographyByFloat(v.Y));
     if (readHelper.ReadEverything())
     {
         return;
     }
     readHelper.SetCurrentBitAndMove(readStenographyByFloat(v.Z));
 }