Blender V5.0
blender::bke::subdiv::ForeachContext Struct Reference

#include <BKE_subdiv_foreach.hh>

Public Attributes

ForeachTopologyInformationCb topology_info = nullptr
ForeachVertexFromCornerCb vertex_every_corner = nullptr
ForeachVertexFromEdgeCb vertex_every_edge = nullptr
ForeachVertexFromCornerCb vertex_corner = nullptr
ForeachVertexFromEdgeCb vertex_edge = nullptr
ForeachVertexInnerCb vertex_inner = nullptr
ForeachLooseCb vertex_loose = nullptr
ForeachVertexOfLooseEdgeCb vertex_of_loose_edge = nullptr
ForeachEdgeCb edge = nullptr
ForeachLoopCb loop = nullptr
ForeachPolygonCb poly = nullptr
void * user_data = nullptr
void * user_data_tls = nullptr
size_t user_data_tls_size = 0
void(* user_data_tls_free )(void *tls) = nullptr

Detailed Description

Definition at line 95 of file BKE_subdiv_foreach.hh.

Member Data Documentation

◆ edge

◆ loop

ForeachLoopCb blender::bke::subdiv::ForeachContext::loop = nullptr
Note
If subdivided loop does not come from coarse loop, ORIGINDEX_NONE will be passed as coarse_loop_index.

Definition at line 134 of file BKE_subdiv_foreach.hh.

Referenced by blender::bke::subdiv::setup_foreach_callbacks(), blender::bke::subdiv::subdiv_foreach_loops_of_face(), and blender::bke::subdiv::subdiv_foreach_task().

◆ poly

◆ topology_info

ForeachTopologyInformationCb blender::bke::subdiv::ForeachContext::topology_info = nullptr

Is called when topology information becomes available. Is only called once.

Note
If this callback returns false, the foreach loop is aborted.

Definition at line 102 of file BKE_subdiv_foreach.hh.

Referenced by multires_reshape_assign_final_coords_from_vertcos(), blender::bke::subdiv::setup_foreach_callbacks(), and blender::bke::subdiv::setup_foreach_callbacks().

◆ user_data

◆ user_data_tls

void* blender::bke::subdiv::ForeachContext::user_data_tls = nullptr

Initial value of TLS data.

Definition at line 144 of file BKE_subdiv_foreach.hh.

Referenced by blender::bke::subdiv::subdiv_foreach_tls_alloc(), and blender::bke::subdiv::subdiv_to_mesh().

◆ user_data_tls_free

void(* blender::bke::subdiv::ForeachContext::user_data_tls_free) (void *tls) = nullptr

◆ user_data_tls_size

size_t blender::bke::subdiv::ForeachContext::user_data_tls_size = 0

◆ vertex_corner

ForeachVertexFromCornerCb blender::bke::subdiv::ForeachContext::vertex_corner = nullptr

Those callbacks are run once per subdivision vertex, ptex is undefined as in it will be whatever first ptex face happened to be traversed in the multi-threaded environment and which shares "emitting" vertex or edge.

Definition at line 114 of file BKE_subdiv_foreach.hh.

Referenced by blender::bke::subdiv::setup_foreach_callbacks(), blender::bke::subdiv::setup_foreach_callbacks(), blender::bke::subdiv::subdiv_foreach_corner_vertices_regular(), blender::bke::subdiv::subdiv_foreach_corner_vertices_special(), and blender::bke::subdiv::subdiv_foreach_single_geometry_vertices().

◆ vertex_edge

◆ vertex_every_corner

◆ vertex_every_edge

◆ vertex_inner

◆ vertex_loose

ForeachLooseCb blender::bke::subdiv::ForeachContext::vertex_loose = nullptr

Called once for each loose vertex. One loose coarse vertex corresponds to a single subdivision vertex.

Definition at line 122 of file BKE_subdiv_foreach.hh.

Referenced by blender::bke::subdiv::setup_foreach_callbacks(), blender::bke::subdiv::subdiv_foreach_loose_vertices_task(), and blender::bke::subdiv::subdiv_foreach_single_thread_tasks().

◆ vertex_of_loose_edge

ForeachVertexOfLooseEdgeCb blender::bke::subdiv::ForeachContext::vertex_of_loose_edge = nullptr

The documentation for this struct was generated from the following file: