EBGeometry
Compact, header-only C++ library for fast evaluation of signed distance functions
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
EBGeometry_DCEL_Reconcile.hpp File Reference

Reconciling a DCEL mesh whose vertices moved, where its pool is: in parallel on a device, in host loops otherwise. More...

#include <cstddef>
#include <cstdint>
#include "EBGeometry_DCEL_Mesh.hpp"
#include "EBGeometry_DCEL_Vertex.hpp"
#include "EBGeometry_GPUTransform.hpp"
#include "EBGeometry_Macros.hpp"
#include "EBGeometry_PODVector.hpp"
#include "EBGeometry_Pool.hpp"
#include "EBGeometry_DCEL_ReconcileImplem.hpp"
Include dependency graph for EBGeometry_DCEL_Reconcile.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  EBGeometry::DCEL::ReconcileDetail::Corner
 One corner of a face, as seen from the vertex at it: the face, and the vertices before and after the vertex on the face's loop. More...
 
class  EBGeometry::DCEL::ReconcileSchedule
 Which faces touch each vertex of a mesh, checked and stored once, for DCEL::reconcile(). More...
 

Namespaces

namespace  EBGeometry
 Namespace containing all of EBGeometry's functionality.
 
namespace  EBGeometry::DCEL
 Namespace containing various double-connected edge list (DCEL) functionality.
 
namespace  EBGeometry::DCEL::ReconcileDetail
 Internals of DCEL::ReconcileSchedule and DCEL::reconcile().
 

Functions

template<class T >
void EBGeometry::DCEL::reconcile (Pool &a_pool, const MeshT< T > &a_mesh, const ReconcileSchedule &a_schedule)
 Reconcile the copy of a_mesh that lives in a_pool, after its vertices have moved: every face's normal, centroid, area and projection axes, and every half-edge's and vertex's pseudonormal, as MeshT::reconcile() computes them.
 

Detailed Description

Reconciling a DCEL mesh whose vertices moved, where its pool is: in parallel on a device, in host loops otherwise.

MeshT::reconcile() checks the mesh's topology and builds which faces touch each vertex, as vectors, on every call, and runs on the host only. Moving vertices changes neither, so DCEL::ReconcileSchedule checks the topology and stores the vertex-to-face lists once, on the host, and DCEL::reconcile() then reconciles the mesh in three passes: one per face, per half-edge and per vertex.

Author
Robert Marskar