Points #82
No reviewers
Labels
No labels
bug
design
duplicate
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
Element
traitEach kind of element must implement the
assembly::Element
trait, which is analogous to theRegulator
trait introduced in pull request #80. The branch to be merged has twoElement
implementations:Sphere
andPoint
. You can think ofSphere
as the successor to theElement
structure from the main branch, where we often assumed that all elements were spheres.Display
The
Scene
structureThe
display::Scene
structure from this pull request does for the display component what theengine::ConstraintProblem
structure 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
DisplayItem
traitAnything that can be displayed has to implement the
display::DisplayItem
trait. It currently provides methods for two tasks:Scene
structure.The ray-casting method for spheres is taken from the
assembly
module 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.vert
andpoint.frag
. The fragment shader that ray-casts all of the assembly's spheres has been renamed frominversive.frag
tospheres.frag
, since it's no longer intended to handle every type of element.Future directions
engine::local_unif_to_std
is already implemented for both point and sphere representation vectors. However, I've occasionally seen engine crashes during nudging.Element
structure toSphere
a1e23543cbpointsto 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