Main

Main Content

Sub-Category

sub content

subsub1

subsub1 content

subsub2
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









            
toggle top left HUD
toggle bottom left HUD
toggle top right HUD
toggle bottom right HUD
save SVG