summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2017-01-05 23:20:21 +0100
committerDimitri Sokolyuk <demon@dim13.org>2017-01-05 23:20:21 +0100
commit0acf5a1175529d8d26d414cde19d8f7ac3a968bc (patch)
tree6db786a78c924e323759726f27917434aeba0f21
parent6fb193358722167f2c15b62de49620b0c6a7809a (diff)
cleanup
-rw-r--r--dat.go30
1 files changed, 15 insertions, 15 deletions
diff --git a/dat.go b/dat.go
index 822919d..b01fa66 100644
--- a/dat.go
+++ b/dat.go
@@ -7,11 +7,8 @@ import (
"strings"
)
-type Vertex struct {
- X, Y, Z float64
-}
-
-type Bezier [][]float64
+type Vertex struct{ X, Y, Z float64 }
+type Patch []Vertex
func parseVertex(s string) []float64 {
f := strings.Split(s, ",")
@@ -22,7 +19,7 @@ func parseVertex(s string) []float64 {
return p
}
-func parsePatch(s string) []int {
+func parseIndex(s string) []int {
f := strings.Split(s, ",")
p := make([]int, len(f))
for i, v := range f {
@@ -35,19 +32,21 @@ func parsePatch(s string) []int {
func Parse(r io.Reader) [][][]float64 {
scan := bufio.NewScanner(r)
+ // first part, patch indices
if !scan.Scan() {
return nil
}
n, _ := strconv.Atoi(scan.Text())
- patches := make([][]int, n)
- for i := range patches {
+ indices := make([][]int, n)
+ for i := range indices {
if !scan.Scan() {
return nil
}
- patches[i] = parsePatch(scan.Text())
+ indices[i] = parseIndex(scan.Text())
}
+ // second part, vertices
if !scan.Scan() {
return nil
}
@@ -61,13 +60,14 @@ func Parse(r io.Reader) [][][]float64 {
vertices[i] = parseVertex(scan.Text())
}
- bezier := make([][][]float64, n)
- for u, p := range patches {
- bezier[u] = make([][]float64, len(p))
- for v, i := range p {
- bezier[u][v] = vertices[i]
+ // populate patches with vertices
+ patches := make([][][]float64, n)
+ for u, i := range indices {
+ patches[u] = make([][]float64, len(i))
+ for v, x := range i {
+ patches[u][v] = vertices[x]
}
}
- return bezier
+ return patches
}