diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index bfb572a..0000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "src/survex"] - path = src/survex - url = git@github.com:ojwb/survex.git diff --git a/src/Skydusky.3d b/src/Skydusky.3d deleted file mode 100644 index 8617464..0000000 Binary files a/src/Skydusky.3d and /dev/null differ diff --git a/src/img.go b/src/img.go index ef5c9c5..fe7d831 100644 --- a/src/img.go +++ b/src/img.go @@ -6,17 +6,61 @@ package main */ import "C" import ( - "fmt" - // "unsafe" +// "encoding/json" +// "fmt" ) -func Test() { - filename := C.CString("Skydusky.3d") - pimg := C.img_open_survey(filename, nil) - // for C.img_read_item(((*C.CStruct)(unsafe.Pointer(pimg))), ((*C.CStruct)(unsafe.Pointer((&pimg.mv))))) != C.img_BAD { - for C.img_read_item(pimg, &pimg.mv) != C.img_BAD { - if pimg.label != nil { - fmt.Println(C.GoString(pimg.label)) +var pimg *C.img + +type img struct { + ImgReadCode int `json:"imgReadCode"` + Title string `json:"title"` + MvX float64 `json:"mv_x"` + MvY float64 `json:"mv_y"` + MvZ float64 `json:"mv_z"` +} + +func ImgOpen(filename string) interface{} { + pimg = C.img_open_survey(C.CString(filename), nil) + // fmt.Println(C.GoFloat64(pimg.mv.x)) + + if pimg.title == nil { + return img{ + ImgReadCode: 0, + Title: "NULL", + MvX: float64(pimg.mv.x), + MvY: float64(pimg.mv.y), + MvZ: float64(pimg.mv.z), + } + } else { + return img{ + ImgReadCode: 0, + Title: C.GoString(pimg.title), + MvX: float64(pimg.mv.x), + MvY: float64(pimg.mv.y), + MvZ: float64(pimg.mv.z), + } + } +} + +func ImgReadItem() img { + img_read_code := C.img_read_item(pimg, &pimg.mv) + + if pimg.title == nil { + return img{ + ImgReadCode: int(img_read_code), + Title: "NULL", + MvX: float64(pimg.mv.x), + MvY: float64(pimg.mv.y), + MvZ: float64(pimg.mv.z), + } + } else { + return img{ + ImgReadCode: int(img_read_code), + Title: C.GoString(pimg.title), + MvX: float64(pimg.mv.x), + MvY: float64(pimg.mv.y), + MvZ: float64(pimg.mv.z), } } } diff --git a/src/kavea_linux_amd64 b/src/kavea_linux_amd64 index 84423ea..0e1cd8f 100755 Binary files a/src/kavea_linux_amd64 and b/src/kavea_linux_amd64 differ diff --git a/src/main.go b/src/main.go index d659ff8..d2e5c5b 100644 --- a/src/main.go +++ b/src/main.go @@ -17,7 +17,6 @@ var staticFiles embed.FS func main() { log.SetFlags(log.Lshortfile) - Test() /* Web Server */ http.Handle("/static/", http.FileServer(http.FS(staticFiles))) @@ -38,6 +37,11 @@ func main() { if err != nil { log.Fatal(err) } + + /* IMG */ + ui.Bind("img_open", ImgOpen) + ui.Bind("img_read_item", ImgReadItem) + defer ui.Close() <-ui.Done() } diff --git a/src/static/kavea.js b/src/static/kavea.js new file mode 100644 index 0000000..2decc2b --- /dev/null +++ b/src/static/kavea.js @@ -0,0 +1,51 @@ +const canvas = document.getElementById("renderCanvas"); // Get the canvas element +const engine = new BABYLON.Engine(canvas, true); // Generate the BABYLON 3D engine + +// Add your code here matching the playground format +const createScene = function () { + + const scene = new BABYLON.Scene(engine); + + BABYLON.SceneLoader.ImportMeshAsync("", "https://assets.babylonjs.com/meshes/", "box.babylon"); + + const camera = new BABYLON.ArcRotateCamera("camera", -Math.PI / 2, Math.PI / 2.5, 15, new BABYLON.Vector3(0, 0, 0)); + camera.attachControl(canvas, true); + const light = new BABYLON.HemisphericLight("light", new BABYLON.Vector3(1, 1, 0)); + + return scene; +}; + + +const scene = createScene(); //Call the createScene function + +// Register a render loop to repeatedly render the scene +engine.runRenderLoop(function () { + scene.render(); +}); + +// Watch for browser/canvas resize events +window.addEventListener("resize", function () { + engine.resize(); +}); + + +/* IMG */ +let pimg = img_open('Skydusky.3d') +pimg = img_read_item() +pimg.then(o => console.log(o.label)) +pimg = img_read_item() +pimg.then(o => console.log(o.label)) +pimg = img_read_item() +pimg.then(o => console.log(o.label)) +pimg = img_read_item() +pimg.then(o => console.log(o.label)) +pimg = img_read_item() +pimg.then(o => console.log(o.label)) +pimg = img_read_item() +pimg.then(o => console.log(o.label)) +pimg = img_read_item() +pimg.then(o => console.log(o.label)) +pimg = img_read_item() +pimg.then(o => console.log(o.label)) +pimg = img_read_item() +pimg.then(o => console.log(o.label)) diff --git a/src/survex b/src/survex deleted file mode 160000 index 738af38..0000000 --- a/src/survex +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 738af383b59aff8ffd2056a3228418f4d3201054 diff --git a/src/templates/index.html.tmpl b/src/templates/index.html.tmpl index 2f1341d..f359eab 100644 --- a/src/templates/index.html.tmpl +++ b/src/templates/index.html.tmpl @@ -8,37 +8,6 @@ - - +