Main Content
sub content
subsub1 content
geoCAD
cad draw tools
gis data tools
geomatics cogo tools // https://q-cogo.com/ is insipiration to keep going on this project
overview
geoCAD
system // stores all system variables
commands // stores all the commands
tools // stores all the tools, which each reference a command
activemodel
activecamera
library
models // saved models
projects // 'top level' models
cameras // stores the types of cameras you can import into your model
textfiles // stores ascii files to import into your model
geocad
│ =run666.bat // python basic server
│ favicon.ico // basic globe with lat-long lines
│ index.html // the web page that loads to the user
│
├───css
│ style_byclass.css
│ style_byid.css
│ style_html.css
│ style_svg.css
│
├───js
│ HTMLinterface.js // for displaying and interacting with html elements
│ geoCAD.js // builds and runs the app
│
│ Model.js // stores geometry objects, cameras, and other models to create a layered/nested hierarchy
│ Camera.js // this projects or renders the vector data to an SVG
│ Point.js // simple xyz objects
│ Line.js
│
│ *commands.js // list of command functions for users, database api essentially
│ *commandline.js // logic for using the command line with input commands
│ *tools.js // gui for commands, generates a panel on the tools page for each tool
│
│ svg.js // svg element create and modify
│
└───svg // holds all the svg icons used in the app, thanks to https://heroicons.com/
* not started yet
model class
meta
models
cameras
textfiles
geometry
example project:
// project 1 is a model and each tabbed group is a nested model
Project 1
Standard Blocks
Project Blocks
World (xyz or neh)
ex 2023
concept 1
concept 2
design 50%
Sheet 1
Sheet 2
Survey data
GIS data
index.html
workstation
viewscreen
huds
svg canvas
spacer
controlpanel
controlpanel_nav // select page for main
controlpanel_header // controls for selected page
controlpanel_main // displays selected page
page1
page2 // pages hidden until selected
page3
page4 // give pages more descriptive names
page5
controlpanel_footer
commandline_log
commandline
HTML/css classes - icon, hud, page, panel, row, rowtext // maybe make rowtext into a cell? like cells on a row
NOTES
generally, but not universally, if the js ends with ; it is by chatgpt and if left empty it is by me
to-do:
make layer panels expand ► / collapse ▼
put geometryobjects into a panel GEOMETRY is on the same level as nested models
make spacer variable and function names specific to the vertical spacer to allow creating a horizontal spacer in the control panel
rebuild camera controls - request animation frame / holding down for too long without Raf start to flood ram?
make image frame match current svg width. maybe max ratio for the very thing windows?
make background match image frame
svg targets to groups canvas-draw-layer, canvas background, canvas foreground
store svg styles in the index.html canvas object for svg css to work ??
not sure how to word this howeverrr
instead of camera it is a view object (perspective, orthographic, stereo, 2d & 3d)
a camera instead is a model with a 3d model that aligns with a view
add import data, start with ascci only
simplify SVG icons, currently limited using them as img references
make one file that has all the svgs and write them into the app as well
layerSummary() - if (property) then "property: property.length" // not sure where i was going with this one
make command line functions
make a list of all commands
route all gui functions thru this command list
add dark/light mode toggle
CREATE
template for project model
template for 3d space model
template for 2d space model
MAKE lines
MAKE BASIC GRID