Points #82
No reviewers
Labels
No labels
bug
design
duplicate
engine
enhancement
maintenance
prospective
question
regression
stub
todo
ui
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: StudioInfinity/dyna3#82
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "Vectornaut/dyna3:points"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
On the main branch, there's only one kind of element, which for many purposes is assumed to be a sphere. The branch to be merged creates distinct structures for spheres and points, which are unified under a new element trait. It pursues some of the future directions laid out in pull request #80, and it starts addressing issue #27 by adding rudimentary rendering for points.
Organization
Elements
The
ElementtraitEach kind of element must implement the
assembly::Elementtrait, which is analogous to theRegulatortrait introduced in pull request #80. The branch to be merged has twoElementimplementations:SphereandPoint. You can think ofSphereas the successor to theElementstructure from the main branch, where we often assumed that all elements were spheres.Display
The
ScenestructureThe
display::Scenestructure from this pull request does for the display component what theengine::ConstraintProblemstructure from pull request #80 does for the engine: it holds assembly data in a format that's easy for low-level operations to consume.The
DisplayItemtraitAnything that can be displayed has to implement the
display::DisplayItemtrait. It currently provides methods for two tasks:Scenestructure.The ray-casting method for spheres is taken from the
assemblymodule on the main branch. The method for points is new.The shaders
Each point is individually rendered with the newly introduced vertex and fragment shaders
point.vertandpoint.frag. The fragment shader that ray-casts all of the assembly's spheres has been renamed frominversive.fragtospheres.frag, since it's no longer intended to handle every type of element.Future directions
engine::local_unif_to_stdis already implemented for both point and sphere representation vectors. However, I've occasionally seen engine crashes during nudging.Elementstructure toSpherea1e23543cbpointsto Points@ -46,3 +46,3 @@height: 32px;font-size: large;/*font-size: large;*/}Sorry I am on a mobile device and so will have to make individual comments instead of a single review, polluting your inbox. Anyhow, why are we leaving this css block in place now that it is empty? It is easy to restore in the future if we need it again. Not a fan of "dead code".
Whoops, I forgot to remove those before committing. Removed in commit
35689e3.I've expanded and corrected the pull request description a bit. Summary of changes:
The shaders
Future directions