Mercurial > gemma
changeset 5687:8ff842858434 sr-v2
More stubs for serializing v2.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Mon, 12 Feb 2024 01:31:48 +0100 |
parents | c33a5354328d |
children | 6281c18b109f |
files | pkg/mesh/meshserialize.go pkg/mesh/meshserialize_v1.go pkg/mesh/meshserialize_v2.go |
diffstat | 3 files changed, 39 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/pkg/mesh/meshserialize.go Mon Feb 12 01:17:22 2024 +0100 +++ b/pkg/mesh/meshserialize.go Mon Feb 12 01:31:48 2024 +0100 @@ -95,6 +95,10 @@ return fmt.Errorf("mesh version mismatch: Have %d expect %d", realVersion, version) } + // Skip the header + if _, err := r.Discard(8); err != nil { + return err + } return s.deserializeVn(r, realVersion) }
--- a/pkg/mesh/meshserialize_v1.go Mon Feb 12 01:17:22 2024 +0100 +++ b/pkg/mesh/meshserialize_v1.go Mon Feb 12 01:31:48 2024 +0100 @@ -26,20 +26,13 @@ if err := s.tin.serializeV1(w); err != nil { return err } - if err := binary.Write(w, binary.LittleEndian, uint8(s.Entries)); err != nil { return err } - if err := s.serializeIndexV1(w); err != nil { return err } - - if err := s.serializeBBoxesV1(w); err != nil { - return err - } - - return nil + return s.serializeBBoxesV1(w) } func (s *STRTree) serializeBBoxesV1(w io.Writer) error {
--- a/pkg/mesh/meshserialize_v2.go Mon Feb 12 01:17:22 2024 +0100 +++ b/pkg/mesh/meshserialize_v2.go Mon Feb 12 01:31:48 2024 +0100 @@ -16,6 +16,7 @@ import ( "bufio" "cmp" + "encoding/binary" "errors" "io" "math" @@ -24,7 +25,39 @@ ) func (s *STRTree) serializeV2(w io.Writer) error { - // TODO: implement me! + // Write header + if _, err := w.Write([]byte(magicHeader)); err != nil { + return err + } + // Write version + if err := binary.Write(w, binary.LittleEndian, uint32(2)); err != nil { + return err + } + // Write the mesh itself + if err := s.tin.serializeV2(w); err != nil { + return err + } + if err := binary.Write(w, binary.LittleEndian, uint8(s.Entries)); err != nil { + return err + } + if err := s.serializeIndexV2(w); err != nil { + return err + } + return s.serializeBBoxesV2(w) +} + +func (t *Tin) serializeV2(w io.Writer) error { + // TODO: Implement me! + return errors.New("not implemented, yet") +} + +func (s *STRTree) serializeIndexV2(w io.Writer) error { + // TODO: Implement me! + return errors.New("not implemented, yet") +} + +func (s *STRTree) serializeBBoxesV2(w io.Writer) error { + // TODO: Implement me! return errors.New("not implemented, yet") }