mariuszhermansdorfer / SandWorm

Augmented Reality Sandbox for Grasshopper & Rhino
MIT License
20 stars 11 forks source link

Add abstraction for managing different analysis methods #23

Closed philipbelesky closed 4 years ago

philipbelesky commented 4 years ago

This is very much a work in progress / for feedback PR. This sketches out a series of classes in Analysis.cs that are each tied to a particular analysis/visualization method, such as the existing elevation/blank options, future options such as #13, and color/gradient variations.

Each class should ideally:

I'm not super experienced with proper composition/inheritance patterns in C# so thought I would put this out there to see if its roughly appropriate. Feel free to revise/finish/trash as necessary.

mariuszhermansdorfer commented 4 years ago

A very good idea, Philip! I like how you structured the whole thing. I'm not very experienced in this matter either, so I guess we'd have to experiment a bit to get it right.

For the sake of having an overview, a list of analysis that could be meaningful follows.

  1. Elevation
  2. Slope
  3. Aspect
  4. Aspect & Slope combined
  5. Concavity
  6. Hillshade
  7. Roughness
  8. Contour lines
  9. Water flow
  10. Watershed
  11. Cut & fill
  12. Heat map (colorize by user-defined values, i.e. groundwater data, highest amount of tweets at a location, sound wave distribution etc.).

Not saying we should implement all of these, but it's worth having a bigger picture when laying foundations for future work.

mariuszhermansdorfer commented 4 years ago

Good progress on this one today! Do you think this is ready to be merged to master now?

philipbelesky commented 4 years ago

I’ll need to check it on a live setup as the above was done without access to a Kinect, but assuming that works I’ll mark it for a code review when its ready. I might have a look at the Color ramps branch and see if it can be integrated with that.

philipbelesky commented 4 years ago

Ok, I think this should be ready for review. A couple of notes: