Giter Site home page Giter Site logo

castlegis's People

Contributors

eugeneloza avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

bravesoftdz

castlegis's Issues

Stick to X3D nodes

@eugeneloza X3D specification includes geospatial component http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/geodata.html . This allows to place things (visible things, viewpoints, etc.) at geospatial coordinates. So, GIS inside CGE should integrate with it :)

The advantage is that someone already designed these X3D nodes (hopefully with a sensible and generally-useful properties and concepts). And there are examples, like http://www.web3d.org/x3d/content/examples/Basic/GeoSpatial/ . And it would integrate then with engine perfectly, just new X3D nodes that work to represent something.

We already parse all X3D nodes related to it, see src/x3d/x3dnodes_standard_geospatial.inc . But we don't do anything with them, for now. For starters, one could probably implement GeoTransform (just like current TTranformNode, you can override one method to apply a transformation defined by GeoTransform). You could also implement GeoElevationGrid by defining a "proxy" that implements IndexedFaceSet from it (see how e.g. Cylinder or NURBS or ElevationGrid nodes are implemented, they use a "proxy" underneath to actually realize everything by an IndexedFaceSet).

All of this can be implemented locally in src/x3d/x3dnodes_standard_geospatial.inc .
michalis - Today at 8:00 PM
@eugeneloza Note: I would not worry about Single vs Double precision for start, I would first implement something working by using the existing engine infrastructure. Just making sure the API uses Double-coordinates, like X3D already does. Underneath various things may "degenerate" to Single, but maybe it's acceptable (for start)? It would sure make implementing easier. Let's worry about precision later.

Note that I did not read the X3D geospatial specification carefully yet, so I do not guarantee that everything is perfect there ๐Ÿ˜ƒ But it is something ready, already designed, and we already even process it (parse etc.) as it's just defined in terms of X3D nodes.

This doesn't mean that we cannot add our own methods, propertiers, or even whole classes related to GIS. Sure we can (just like we do for a lot of existing X3D nodes, to make using them from Pascal more comfortable or flexible). But everything should, ideally, revolve around, and be integrated with X3D geospatial nodes, as much as possible.

I looked at your code https://github.com/eugeneloza/CastleGIS/blob/master/castlegis.pas and I don't really have anything useful to add ๐Ÿ˜ƒ This seems like a possible basis for some concepts of X3D geospatial component. Some tiny style hints only: single->Single (this is not a keyword, so we write it CamelCase), and usually avoid spelling out Self.(edited)

michalis - Today at 8:14 PM
@eugeneloza If your code would make us support X3D geospatial nodes, that would be very great:) Googling, I found some information about it. You should also be able to test geospatial nodes in other X3D browsers (at least X3DOM https://www.x3dom.org/ and FreeWRL ), both free and open-source, seem to implement then. So you can test how some X3D models work in them. Some more resources : https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/GeospatialComponentX3dEarth.pdf , https://sites.google.com/site/x3dgeo/x3d-geospatial-nodes , https://www.researchgate.net/publication/321201556_3D_geospatial_visualizations_Animation_and_motion_effects_on_spatial_objects .(edited)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.