33#include <NDEVR/Vertex.h>
34#include <NDEVR/UUID.h>
35#include <NDEVR/LineSegment.h>
36#include <NDEVR/Buffer.h>
37#include <NDEVR/Matrix.h>
The equivelent of std::vector but with a bit more control.
Templated logic for doing matrix multiplication.
fltp08 closest_snap_distance
The screen-space or world-space distance from the cursor to this snap point.
SnapLocationType
Defines the type of geometric feature that was snapped to.
@ e_x
Snapped along the X axis.
@ e_extension
Snapped along the extension of an edge beyond its endpoints.
@ e_no_snap
No snap was found.
@ e_midpoint
Snapped to the midpoint of an edge.
@ e_y
Snapped along the Y axis.
@ e_center
Snapped to the center of a circle, arc, or polygon.
@ e_point
Snapped to a generic point.
@ e_normal
Snapped along the surface normal direction.
@ e_model_node
Snapped to a model node origin.
@ e_z
Snapped along the Z axis.
@ e_tangent
Snapped to a tangent point on a curve.
@ e_snap_type_size
The number of snap location types (used for sizing arrays).
@ e_on_face
Snapped to a point on a face or surface.
@ e_parallel
Snapped along a direction parallel to a reference edge.
@ e_edge
Snapped to an edge of geometry.
@ e_endpoint
Snapped to an endpoint of a line segment or edge.
@ e_perpendicular
Snapped to a point forming a perpendicular with a reference line.
Vertex< 3, fltp08 > location
The 3D world-space position of the snap point.
LineSegment< 3, fltp08 > preferred_line
A preferred reference line associated with this snap (e.g., the edge snapped to). [Note: possible typ...
uint04 vertex_id
The vertex index within the geometry that was snapped to.
SnapLocationType location_type
The primary snap type that was matched.
UUID geometry_id
The UUID of the specific geometry object that was snapped to.
UUID layer_id
The UUID of the layer containing the snapped geometry.
SnapPoint()
Constructs a SnapPoint with all fields set to invalid/default values.
UUID model_id
The UUID of the model containing the snapped geometry.
Buffer< SnapLocationType > all_types
All snap types that apply to this point (e.g., a midpoint may also be on an edge).
bool is_smooth
Whether the snapped surface or edge is smooth (e.g., part of a curved surface).
Matrix< fltp08 > geometry_transform
The world transform matrix of the geometry at the time of snapping.
uint04 index_id
The index within the geometry (e.g., face or primitive index).
bool operator==(const SnapPoint &point) const
Compares two SnapPoints for equality based on location, model ID, and snap type.
A universally unique identifier (UUID) is a 128-bit number used to identify information in computer s...
A fixed-size array with N dimensions used as the basis for geometric and mathematical types.
A point in N-dimensional space, used primarily for spatial location information.
The primary namespace for the NDEVR SDK.
uint32_t uint04
-Defines an alias representing a 4 byte, unsigned integer -Can represent exact integer values 0 throu...
double fltp08
Defines an alias representing an 8 byte floating-point number.
Defines for a given type (such as sint04, fltp08, UUID, etc) a maximum, minimum, and reserved 'invali...