Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change meshing algorithm #2

Closed
mariuszhermansdorfer opened this issue Apr 3, 2019 · 3 comments
Closed

Change meshing algorithm #2

mariuszhermansdorfer opened this issue Apr 3, 2019 · 3 comments
Labels
enhancement New feature or request

Comments

@mariuszhermansdorfer
Copy link
Owner

Replace the current triangulation method:
Mesh.CreateFromTessellation
with
Mesh.Faces.AddFace
as suggested in this discussion thread

@mariuszhermansdorfer mariuszhermansdorfer added the enhancement New feature or request label Apr 3, 2019
@mariuszhermansdorfer
Copy link
Owner Author

mariuszhermansdorfer commented Jun 9, 2019

Adopt the method from this paper:
https://gispoint.de/fileadmin/user_upload/paper_gis_open/DLA_2019/537663024.pdf
https://github.com/dbt-ethz/docofossor/blob/master/DOCUMENTATION.md

A common layout of points in a DTM is a rectangular grid, where it is sufficient to specify the
bottom left corner, cell size and number of columns and rows, followed by a one-dimensional
list of z-values (elevation above sea level). To keep the memory footprint low, we adopt this
data structure for the exchange between the components. However, most of the modification
operations would just as well work on any arbitrary point distribution as only their z-values are
affected, and the surface mesh topology does not change. Therefore, Docofossor's data structure
is based on a single list that defines a regular spaced quad grid from topographic data. The
Docofossor list (df) consist of a header part (dimension list) that defines the properties of the
grid such as the cell size, the number of rows and columns, and the coordinates of the local and
global origin of the grid. The header information is followed by z-values coming from a Digital
Terrain Model (DTM) in column-major order starting bottom left. It is roughly based on the
ESRI ASCII raster format (ESRI 2019).
All the operations are done consecutively after another,
which can be visualized in the end by making a quad-grid mesh (BRep) or 3D points of the cell
value data. This has the advantage that the boundary representation only needs to be made once,
thus increasing performance. The order of the operations becomes important when using cut
and fill operations in sequence, or when operations change the location, cell size, crop or resolution of the grid.

@mariuszhermansdorfer
Copy link
Owner Author

Partially implemented in the latest commit. Current meshing algorithm operates on a grid of quad pixels. XY spacing of individual pixels jitters due to Kinect's inaccuracy, which results in a non-orthogonal result.

Should be fixed.

@mariuszhermansdorfer
Copy link
Owner Author

mariuszhermansdorfer commented Sep 4, 2019

Fixed unwanted jittering on the XY axis. Now, the meshing algorithm is much more robust.
Arbitrary distance in the XY axis needs to be fixed, though.

philipbelesky added a commit to philipbelesky/SandWorm that referenced this issue Sep 5, 2019
philipbelesky added a commit to philipbelesky/SandWorm that referenced this issue Sep 5, 2019
mariuszhermansdorfer added a commit that referenced this issue Sep 6, 2019
Initial work on dynamic pixel sizing as part of #2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant