|
Lagrange
|
Per-instance data for OccludedFacetSampler; gates each facet individually. More...
#include <occluded_sampler_common.h>
Public Attributes | |
| std::vector< Scalar > | facet_weights |
| Per-facet ray-distribution weight = cbrt(area). | |
| std::vector< Index > | active_local_facets |
| std::optional< AdjacencyList< Index > > | facet_neighbors |
| 1-ring edge-neighbors (mesh dual graph). | |
| std::vector< std::optional< Eigen::Vector3< Scalar > > > | facet_escape_directions |
| World-space unit-length escape direction recorded the first time each facet becomes visible; std::nullopt means "not yet visible". | |
| std::vector< std::optional< Eigen::Vector3< Scalar > > > | facet_escape_snapshot |
Pre-batch snapshot of facet_escape_directions. | |
Public Attributes inherited from InstanceData< Scalar, Index > | |
| Index | mesh_index |
| Eigen::Transform< Scalar, 3, Eigen::Affine > | transform |
| std::vector< Scalar > | facet_areas |
| std::vector< RaySampler< Scalar > > | ray_samplers |
Per-instance data for OccludedFacetSampler; gates each facet individually.
Per-facet ray-distribution weight = cbrt(area).
cbrt softens per-facet because each facet is its own Bernoulli trial.
| std::optional<AdjacencyList<Index> > facet_neighbors |
1-ring edge-neighbors (mesh dual graph).
std::optional because AdjacencyList isn't default-constructible.
| std::vector<std::optional<Eigen::Vector3<Scalar> > > facet_escape_directions |
World-space unit-length escape direction recorded the first time each facet becomes visible; std::nullopt means "not yet visible".
Adaptive reads from facet_escape_snapshot instead so live writes here don't race.
| std::vector<std::optional<Eigen::Vector3<Scalar> > > facet_escape_snapshot |
Pre-batch snapshot of facet_escape_directions.
Read by Adaptive; refreshed at the start of each process_instance. Kept as a member to reuse the allocation.