Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/Hexorg/bevy_copperfield
/ functions
Functions
181 in github.com/Hexorg/bevy_copperfield
⨍
Functions
181
◇
Types & classes
31
↓ 92 callers
Method
goto
Initiate traversal of the mesh starting at a given edge
src/mesh.rs:332
↓ 70 callers
Method
halfedge
Returns the associate half-edge with whatever current position is [`Traversal`] also derefereces to this so you can say ``` use bevy::prelude::default
src/mesh/traversal.rs:236
↓ 43 callers
Method
iter
(&'m self)
src/mesh/selection.rs:72
↓ 37 callers
Method
face
Returns the associated face with a given position. If option is none, then the associated position is a boundary position (mesh ends there)
src/mesh/traversal.rs:249
↓ 32 callers
Method
twin
(self)
src/mesh/traversal.rs:338
↓ 31 callers
Function
extrude
(mesh: &mut HalfEdgeMesh, face: FaceId, length: f32)
src/mesh/face_ops.rs:73
↓ 30 callers
Method
iter_loop
Iterate over a loop of edges (likely forming a face) E.g. ```text . ---- . / \ . . \.______./ ```
src/mesh/traversal.rs:170
↓ 30 callers
Method
vertex
Returns the associate half-edge with whatever current position is
src/mesh/traversal.rs:242
↓ 25 callers
Function
transform
(mesh: &mut HalfEdgeMesh, face: FaceId, transform: Transform)
src/mesh/face_ops.rs:8
↓ 24 callers
Method
position
(&self)
src/mesh/attributes.rs:179
↓ 23 callers
Method
len
(&self)
src/mesh/selection.rs:14
↓ 23 callers
Method
new_face
Create a new face and attach it to correct twin edges. This method does not modify twin edges if they already exist
src/mesh.rs:414
↓ 22 callers
Method
new_vertex
(&mut self)
src/mesh.rs:344
↓ 16 callers
Method
next
(&mut self)
src/mesh/selection.rs:154
↓ 15 callers
Method
iter_outgoing
Iterate over all outgoing edges (Also known as edge fan) This results in iterating over all the edges that come out of the same vertex E.g. ```text \
src/mesh/traversal.rs:189
↓ 12 callers
Method
attribute
Get an attribute
src/mesh.rs:618
↓ 11 callers
Method
add_attribute
Insert attributes into mesh. Faces, Edges, and Vertices can have their own attribute data
src/mesh.rs:609
↓ 11 callers
Method
contains
(mut self, pos: impl Into<MeshPosition> + Copy)
src/mesh/traversal.rs:67
↓ 10 callers
Method
vertex_keys
(&self)
src/mesh.rs:600
↓ 9 callers
Method
as_vertices_vec3_mut
(&mut self)
src/mesh/attributes.rs:65
↓ 9 callers
Method
face_keys
(&self)
src/mesh.rs:596
↓ 8 callers
Method
calculate_normal
Fit a plane to a collection of points. Fast, and accurate to within a few degrees. Returns None if the points do not span a plane. https://www.ilikebi
src/mesh/attributes.rs:269
↓ 7 callers
Method
edge_keys
(&self)
src/mesh.rs:604
↓ 7 callers
Method
get_flow
Scans the nearby halfedges and returns incoming and outgoing boundary edges to this vertex Or `HalfEdgeId::default()` if those edges aren't found Half
src/mesh/traversal.rs:256
↓ 6 callers
Method
as_vertices_vec3
(&self)
src/mesh/attributes.rs:58
↓ 6 callers
Method
procgen
(&self)
src/mesh_builders.rs:18
↓ 6 callers
Function
sample_mesh
Returns a mesh in the form ```text indices VertexId FaceId 0--3--5 1--4--6 +--+--+ | | | | | | |1 |2 | 1--2--4 2--3--5
src/mesh.rs:977
↓ 5 callers
Method
calculate_uvs
(&mut self)
src/mesh.rs:551
↓ 5 callers
Method
sharpness
(&self)
src/mesh/attributes.rs:222
↓ 5 callers
Method
try_next
(mut self)
src/mesh/traversal.rs:349
↓ 4 callers
Method
adjacent_faces
Iterate over all halfedges that have a face associated with them
src/mesh/traversal.rs:217
↓ 4 callers
Method
iter_incoming
Iterate over all incoming edges (twins of outgoing edges) It's similar to outgoing, except all edges are twins E.g. ```text \ | / \|/ --- . --- /|\ /
src/mesh/traversal.rs:207
↓ 4 callers
Method
new_edge
(&mut self, edge: HalfEdge, mut twin: HalfEdge)
src/mesh.rs:349
↓ 4 callers
Method
previous
Get the previous vertex or edge in a face.
src/mesh/traversal.rs:313
↓ 4 callers
Method
print_mesh
(&self)
src/mesh.rs:660
↓ 4 callers
Function
split
Splits a face along two of its points that do not share an edge. old FaceId will be kept on the side along `v -> w` direction, and new face will be cr
src/mesh/face_ops.rs:36
↓ 3 callers
Method
as_edge_vec2
(&self)
src/mesh/attributes.rs:86
↓ 3 callers
Method
as_edge_vec2_mut
(&mut self)
src/mesh/attributes.rs:92
↓ 3 callers
Method
calculate_centroid
(&self)
src/mesh/attributes.rs:258
↓ 3 callers
Function
chamfer
(mesh: &mut HalfEdgeMesh, target: HalfEdgeId, factor: f32)
src/mesh/edge_ops.rs:119
↓ 3 callers
Function
delete
Remove an edge, either making a mesh boundary
src/mesh/edge_ops.rs:12
↓ 3 callers
Method
find_halfedge_to
Get current vertex and scan over outgoing edges. If any of the edges land on `vertex` - return that edge.
src/mesh/traversal.rs:157
↓ 3 callers
Function
get_face_center_pos
(edge: HalfEdgeId, mesh: &HalfEdgeMesh)
examples/debug.rs:377
↓ 3 callers
Function
lscm
Section 2 of the [Least Squares Conformal Maps](https://dl.acm.org/doi/pdf/10.1145/566654.566590) paper. Given a set of charts, project each chart to
src/uvmesh/least_squares_conformal_maps.rs:73
↓ 3 callers
Function
straight_line
(count: usize, is_face: bool)
src/mesh/traversal.rs:384
↓ 3 callers
Method
triangulate
(&self)
src/mesh/attributes.rs:234
↓ 2 callers
Function
add_pawn_top
(mesh: &mut HalfEdgeMesh, top_face: FaceId)
examples/chess.rs:127
↓ 2 callers
Method
attach_edge
Connect the mesh such that `edge_previous` will point to newly created edge and newly created `edge.next` will point to `edge_next` At the same time,
src/mesh.rs:370
↓ 2 callers
Method
attribute_mut
Get an attribute
src/mesh.rs:623
↓ 2 callers
Method
cmp
(&self, other: &Self)
src/uvmesh.rs:247
↓ 2 callers
Function
delete
Removes a vertex, either making a mesh boundary, or filling it up with a new face
src/mesh/vertex_ops.rs:16
↓ 2 callers
Function
get_edge_pos
(edge: HalfEdgeId, mesh: &HalfEdgeMesh)
examples/debug.rs:385
↓ 2 callers
Method
is_smooth_normals
(&self)
src/mesh/attributes.rs:196
↓ 2 callers
Function
make_base
(diameter: f32, resolution: u32)
examples/chess.rs:12
↓ 2 callers
Function
make_stick
(length: f32, transform: Transform)
examples/sticks.rs:13
↓ 2 callers
Method
next
(&mut self)
src/mesh/traversal.rs:80
↓ 2 callers
Method
partial_cmp
(&self, other: &Self)
src/uvmesh.rs:242
↓ 2 callers
Method
select
Go to a position and select it, allowing you to select more items to later act on as a group
src/mesh.rs:338
↓ 2 callers
Function
split
Split an edge and its twin, creating new vertex in-between Original edge is trimmed short, and new edge is inserted after edge, with `factor` specifyi
src/mesh/edge_ops.rs:69
↓ 2 callers
Function
subdivide
Catmull-Clark subdivision. Based on [Wikipedia Article](https://en.wikipedia.org/wiki/Catmull%E2%80%93Clark_subdivision_surface)
src/mesh/mesh_ops.rs:26
↓ 2 callers
Method
try_twin
(mut self)
src/mesh/traversal.rs:359
↓ 1 callers
Method
as_edge_bool
(&self)
src/mesh/attributes.rs:110
↓ 1 callers
Method
as_edge_bool_mut
(&mut self)
src/mesh/attributes.rs:116
↓ 1 callers
Method
as_edge_vec3_mut
(&mut self)
src/mesh/attributes.rs:104
↓ 1 callers
Method
as_vertices_bool
(&self)
src/mesh/attributes.rs:72
↓ 1 callers
Method
as_vertices_bool_mut
(&mut self)
src/mesh/attributes.rs:79
↓ 1 callers
Method
as_vertices_u32_mut
(&mut self)
src/mesh/attributes.rs:37
↓ 1 callers
Method
as_vertices_vec2_mut
(&mut self)
src/mesh/attributes.rs:51
↓ 1 callers
Method
build
(self)
src/mesh/selection.rs:60
↓ 1 callers
Function
build_mesh
()
examples/debug.rs:81
↓ 1 callers
Function
chamfer
Chamfers a vertex by stitching a face from mid-points of the vertex's outgoing edges. Returns newly-created FaceId
src/mesh/vertex_ops.rs:31
↓ 1 callers
Function
check_self_intersection
( mesh: &HalfEdgeMesh, chart: &HashSet<FaceId>, map: &[(HalfEdgeId, Vec2)], )
src/uvmesh/least_squares_conformal_maps.rs:256
↓ 1 callers
Function
conjugate_gradient_least_squares
Solves Ax = b matrix in a least-squares way. A does not need to be diagonal, or square. Based on https://web.stanford.edu/group/SOL/software/cgls/
src/uvmesh/least_squares_conformal_maps.rs:18
↓ 1 callers
Function
create_charts
Based on [Xatlas](https://github.com/jpcy/xatlas/tree/master)'s implementation and https://dl.acm.org/doi/10.1145/566654.566590 paper
src/uvmesh.rs:111
↓ 1 callers
Function
cube
(mesh: &mut HalfEdgeMesh, transform: Transform)
src/uvmesh/primitive_mapping.rs:25
↓ 1 callers
Function
cuboid_tests
()
examples/debug.rs:25
↓ 1 callers
Function
delete
Removes a vertex, either making a mesh boundary, or filling it up with a new face
src/mesh/face_ops.rs:25
↓ 1 callers
Function
dfs
( mesh: &HalfEdgeMesh, start_pos: Vec3, pos: HalfEdgeId, string: Vec<HalfEdgeI
src/uvmesh.rs:171
↓ 1 callers
Function
eigen_solver3_QL_algorithm
(mut mat:Mat3, mut diag:[f32;3], mut subd:[f32;3])
src/uvmesh/fit.rs:80
↓ 1 callers
Function
eigen_solver3_tridiagonal
Householder reduction T = Q^t M Q Input: mat, symmetric 3x3 matrix M Output: mat, orthogonal matrix Q diag, diagonal entries of T subd, subdiagonal en
src/uvmesh/fit.rs:50
↓ 1 callers
Function
expand_charts
( mesh: &HalfEdgeMesh, seeds: &[FaceId], distances: &SecondaryMap<FaceId, usize>, )
src/uvmesh.rs:298
↓ 1 callers
Function
expand_feature_curve
( mesh: &mut HalfEdgeMesh, neighborhood_edges: &mut HashSet<HalfEdgeId>, start: HalfEdgeId, )
src/uvmesh.rs:164
↓ 1 callers
Method
face_count
How many faces are currently allocated
src/mesh.rs:582
↓ 1 callers
Function
find_distance_to_features_with_dikstra
( mesh: &HalfEdgeMesh, features: &[FaceId], )
src/uvmesh.rs:227
↓ 1 callers
Method
get_mesh_halfedge
(self, _: &HalfEdgeMesh)
src/mesh.rs:93
↓ 1 callers
Method
get_mesh_position
(self, _: &HalfEdgeMesh)
src/mesh.rs:89
↓ 1 callers
Method
halfedge_to
Get current vertex and scan over outgoing edges. If any of the edges land on `vertex` - return that edge. Panics if halfedge is not found
src/mesh/traversal.rs:149
↓ 1 callers
Function
insert
( mesh: &HalfEdgeMesh, chart: &mut HashSet<FaceId>,
src/uvmesh/least_squares_conformal_maps.rs:299
↓ 1 callers
Function
invert_normals
Invert winding of all faces in a mesh. Since normal direction is calculated based of face winding, this effectively inverses normals.
src/mesh/mesh_ops.rs:143
↓ 1 callers
Method
is_uv_seam
(&self)
src/mesh/attributes.rs:211
↓ 1 callers
Method
join
(&mut self, other: &HalfEdgeMesh)
src/mesh.rs:682
↓ 1 callers
Function
make_fence
(length: f32)
examples/sticks.rs:66
↓ 1 callers
Method
next_or_twin
Traverse to the next half-edge or to its twin if the next pointer is invalid (happens during first face construction)
src/mesh/traversal.rs:302
↓ 1 callers
Method
previous_or_twin
Get the previous vertex or edge in a face or to its twin if the next pointer is invalid (happens during first face construction)
src/mesh/traversal.rs:328
↓ 1 callers
Function
project
(mesh: &mut HalfEdgeMesh, charts: Vec<Chart>)
src/uvmesh/least_squares_conformal_maps.rs:213
↓ 1 callers
Function
sample_mesh
Returns a mesh in the form ```text indices VertexId FaceId 0--3--5 1--4--6 +--+--+ | | | | | | |1 |2 | 1--2--4 2--3--5
examples/debug.rs:550
↓ 1 callers
Method
select_faces
Selects adjacent faces of vertices and exact faces of halfedges
src/mesh/selection.rs:125
↓ 1 callers
Method
select_vertex
Convert current position into vertex selection
src/mesh/traversal.rs:130
↓ 1 callers
Function
sphere
(mesh: &mut HalfEdgeMesh, sphere_center: Vec3, sphere_radius: Vec3)
src/uvmesh/primitive_mapping.rs:12
↓ 1 callers
Method
uv
(&self)
src/mesh/attributes.rs:188
next →
1–100 of 181, ranked by callers