Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | Standard interface for creating link definitions | Dan Goodliffe | 35 hours |
| | | | | | 2 positions and, 0, 1 or 2 angles; always returns a GenLinksDef collection. | ||
* | Rename terrainSplitAt to connectAt | Dan Goodliffe | 35 hours |
| | | | | It doesn't split, it connects a duplicated pair of link definitions. | ||
* | Remove all the old network link creation code | Dan Goodliffe | 43 hours |
| | |||
* | Add network helpers for easily adding a chain of links | Dan Goodliffe | 43 hours |
| | |||
* | Split link generation definitions according to terrain | Dan Goodliffe | 47 hours |
| | | | | Copies the same imperfect logic from old link addition functions. | ||
* | Split definition creation from link creation | Dan Goodliffe | 2 days |
| | |||
* | Link helper to get an End pointer based on position | Dan Goodliffe | 3 days |
| | |||
* | Fix conditional render of rail links | Dan Goodliffe | 3 days |
| | | | | | Tests for vertices, not links in network. Fixes case where links are present but not in network, e.g. currently being built. | ||
* | Set terrain height and surface when adding link | Dan Goodliffe | 3 days |
| | |||
* | Add new network building interface | Dan Goodliffe | 3 days |
| | | | | Imperfect, matches some legacy interface in places, has some TODO notes. | ||
* | New genCurveDef for 2 directions | Dan Goodliffe | 3 days |
| | | | | | | | | Based on formula/code from https://www.ryanjuckett.com/biarc-interpolation/ Produces smoother curves instead of equal curves. Removes need for that awful formula for finding the radius of said curves which has a tendency to blow up to infinity, and if not that then crazy rounding/accuracy errors. | ||
* | Simplified genCurveDef for 1 direction | Dan Goodliffe | 3 days |
| | | | | | Uses new find_arc_centre for 1 direction which doesn't break for 180 degree solutions. | ||
* | Avoid out parameters with Ray::intersectSphere | Dan Goodliffe | 2025-04-24 |
| | |||
* | Avoid out parameters with Ray::intersectTriangle | Dan Goodliffe | 2025-04-24 |
| | |||
* | Fix all warnings game/network/* | Dan Goodliffe | 2025-04-23 |
| | | | | Mostly naming of variables. | ||
* | Add Asset interface to create an arbitrarily placed instance | Dan Goodliffe | 2025-04-07 |
| | | | | | InstanceProxy is returned out via a std::any containing a std::shared_ptr because any can only contain copyable things. | ||
* | Replace call to calc_vertex_normal_correct | Dan Goodliffe | 2025-04-05 |
| | | | | | Same code copied inline, but adjusted to avoid normalising using Scalar which is an integral type. | ||
* | Add Renderable typed collection to GameState worldObjects | Dan Goodliffe | 2025-03-23 |
| | |||
* | Make Collections::objects protected, extend interface | Dan Goodliffe | 2025-03-22 |
| | | | | | Keeps all required features accessible, but through a controlled interface. | ||
* | Invert how shared/unique is specified for Collection | Dan Goodliffe | 2025-03-22 |
| | | | | Template param is a pointer now, typedefs added for ease. | ||
* | Add ManyPtr which tracks specified subclasses | Dan Goodliffe | 2025-03-22 |
| | | | | | | This removes the need to repeated dynamic_cast the pointer. Provides interface which enforces the fastest option for the required types. | ||
* | Split Terrain::generateMeshes into smaller functions | Dan Goodliffe | 2025-03-12 |
| | | | | | | Also removes incorrect optimisation that a tile's AABB could be assumed from tile base position; in fact some faces cross the boundaries and the AABB needs to account for this. | ||
* | Cull terrain meshes from render that don't cast a shadow into the frustum | Dan Goodliffe | 2025-03-11 |
| | |||
* | Pass a Frustum to shadow renderers | Dan Goodliffe | 2025-03-11 |
| | | | | The frustum might not be correct at this stage. | ||
* | Template AxisAlignedBoundingBox on unit type | Dan Goodliffe | 2025-03-11 |
| | |||
* | Current tile in frustum as we loop | Dan Goodliffe | 2025-03-11 |
| | | | | Chunk by surface only, render if visible in frustum | ||
* | Construct terrain tile AxisAlignedBoundingBox during mesh generation | Dan Goodliffe | 2025-03-11 |
| | | | | | No surface is simply the tile bounds, but with a surface, it's constrained to just the bounds of the surface itself. | ||
* | Only render terrain tiles which are visible in the frustum | Dan Goodliffe | 2025-03-11 |
| | |||
* | Create AxisAlignedBoundingBox | Dan Goodliffe | 2025-03-11 |
| | | | | Used to define the extents of GeoData mesh | ||
* | Pass frustum into render functions | Dan Goodliffe | 2025-03-07 |
| | | | | Support for culling objects outside the view frustum | ||
* | Work around clang thinking this is unused in lambdas | Dan Goodliffe | 2025-03-01 |
| | |||
* | Split meshes by surface and tile | Dan Goodliffe | 2025-02-26 |
| | | | | | Tile is derived per face based on the first vertices point rounded to roughly 1km. | ||
* | Improve Terrain::generateMeshes performance | Dan Goodliffe | 2025-02-25 |
| | | | | | Creates mesh per surface based on a single buffer of all vertices and a collection of per surfuce indices. Makes ColourBias a uniform instead of a vertex attribute. | ||
* | Don't rely on triangle centroid not already having a surface | Dan Goodliffe | 2025-02-24 |
| | |||
* | Improve number of segments in LinkCurve bases | Dan Goodliffe | 2025-02-23 |
| | |||
* | Process set height as required in chunks of target vertex | Dan Goodliffe | 2025-02-23 |
| | |||
* | Less allocy/work set based surface/recursive height setting | Dan Goodliffe | 2025-02-23 |
| | |||
* | Add adjusted boundary vertices to new/changes/boundary lists | Dan Goodliffe | 2025-02-23 |
| | |||
* | Expand new verts collection once | Dan Goodliffe | 2025-02-18 |
| | | | | Before doing vertex normal recalc only, not on every insert | ||
* | Only build/run GeoDataMesh::sanityCheck for debug | Dan Goodliffe | 2025-02-17 |
| | |||
* | Refactor GeoData::setHeights until a struct made of a logical breakdown of ↵ | Dan Goodliffe | 2025-02-17 |
| | | | | the process | ||
* | Fixes and tests to new range helpers | Dan Goodliffe | 2025-02-15 |
| | |||
* | Range adaptor to make triangle strip triples | Dan Goodliffe | 2025-02-15 |
| | |||
* | Use new helpers to simplify close entity search in GeoData::setPoint | Dan Goodliffe | 2025-02-14 |
| | |||
* | Move basic setHeights lambdas into proper helper functions | Dan Goodliffe | 2025-02-13 |
| | |||
* | Replace mesh generation counter with afterChange event | Dan Goodliffe | 2025-02-10 |
| | |||
* | Combine GeoData and Terrain class hierarchies | Dan Goodliffe | 2025-02-09 |
| | |||
* | Split GeoData mesh basics into a subclass | Dan Goodliffe | 2025-02-09 |
| | | | | Declutters the class for terrain related things | ||
* | Move lots of geoData helpers into lib | Dan Goodliffe | 2025-02-09 |
| | |||
* | Initial commit setting terrain during network construction | Dan Goodliffe | 2025-02-09 |
| | | | | This is all in the wrong place, it shouldn't be part of the network interface. |