Blender  V2.93
Classes | Typedefs | Functions
view3d_iterators.c File Reference
#include "DNA_armature_types.h"
#include "DNA_curve_types.h"
#include "DNA_lattice_types.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_meta_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "BLI_math_geom.h"
#include "BLI_rect.h"
#include "BLI_utildefines.h"
#include "BKE_DerivedMesh.h"
#include "BKE_action.h"
#include "BKE_armature.h"
#include "BKE_curve.h"
#include "BKE_displist.h"
#include "BKE_editmesh.h"
#include "BKE_mesh_iterators.h"
#include "BKE_mesh_runtime.h"
#include "BKE_modifier.h"
#include "DEG_depsgraph.h"
#include "DEG_depsgraph_query.h"
#include "bmesh.h"
#include "ED_armature.h"
#include "ED_screen.h"
#include "ED_view3d.h"

Go to the source code of this file.

Classes

struct  foreachScreenObjectVert_userData
 
struct  foreachScreenVert_userData
 
struct  foreachScreenEdge_userData
 
struct  foreachScreenFace_userData
 

Typedefs

typedef struct foreachScreenObjectVert_userData foreachScreenObjectVert_userData
 
typedef struct foreachScreenVert_userData foreachScreenVert_userData
 
typedef struct foreachScreenEdge_userData foreachScreenEdge_userData
 
typedef struct foreachScreenFace_userData foreachScreenFace_userData
 

Functions

static void meshobject_foreachScreenVert__mapFunc (void *userData, int index, const float co[3], const float UNUSED(no_f[3]), const short UNUSED(no_s[3]))
 
void meshobject_foreachScreenVert (ViewContext *vc, void(*func)(void *userData, MVert *eve, const float screen_co[2], int index), void *userData, eV3DProjTest clip_flag)
 
static void mesh_foreachScreenVert__mapFunc (void *userData, int index, const float co[3], const float UNUSED(no_f[3]), const short UNUSED(no_s[3]))
 
void mesh_foreachScreenVert (ViewContext *vc, void(*func)(void *userData, BMVert *eve, const float screen_co[2], int index), void *userData, eV3DProjTest clip_flag)
 
static void mesh_foreachScreenEdge__mapFunc (void *userData, int index, const float v0co[3], const float v1co[3])
 
void mesh_foreachScreenEdge (ViewContext *vc, void(*func)(void *userData, BMEdge *eed, const float screen_co_a[2], const float screen_co_b[2], int index), void *userData, eV3DProjTest clip_flag)
 
static void mesh_foreachScreenEdge_clip_bb_segment__mapFunc (void *userData, int index, const float v0co[3], const float v1co[3])
 
void mesh_foreachScreenEdge_clip_bb_segment (ViewContext *vc, void(*func)(void *userData, BMEdge *eed, const float screen_co_a[2], const float screen_co_b[2], int index), void *userData, eV3DProjTest clip_flag)
 
static void mesh_foreachScreenFace__mapFunc (void *userData, int index, const float cent[3], const float UNUSED(no[3]))
 
void mesh_foreachScreenFace (ViewContext *vc, void(*func)(void *userData, BMFace *efa, const float screen_co_b[2], int index), void *userData, const eV3DProjTest clip_flag)
 
void nurbs_foreachScreenVert (ViewContext *vc, void(*func)(void *userData, Nurb *nu, BPoint *bp, BezTriple *bezt, int beztindex, bool handles_visible, const float screen_co_b[2]), void *userData, const eV3DProjTest clip_flag)
 
void mball_foreachScreenElem (struct ViewContext *vc, void(*func)(void *userData, struct MetaElem *ml, const float screen_co_b[2]), void *userData, const eV3DProjTest clip_flag)
 
void lattice_foreachScreenVert (ViewContext *vc, void(*func)(void *userData, BPoint *bp, const float screen_co[2]), void *userData, const eV3DProjTest clip_flag)
 
void armature_foreachScreenBone (struct ViewContext *vc, void(*func)(void *userData, struct EditBone *ebone, const float screen_co_a[2], const float screen_co_b[2]), void *userData, const eV3DProjTest clip_flag)
 
void pose_foreachScreenBone (struct ViewContext *vc, void(*func)(void *userData, struct bPoseChannel *pchan, const float screen_co_a[2], const float screen_co_b[2]), void *userData, const eV3DProjTest clip_flag)
 

Typedef Documentation

◆ foreachScreenEdge_userData

◆ foreachScreenFace_userData

◆ foreachScreenObjectVert_userData

◆ foreachScreenVert_userData

Function Documentation

◆ armature_foreachScreenBone()

void armature_foreachScreenBone ( struct ViewContext vc,
void(*)(void *userData, struct EditBone *ebone, const float screen_co_a[2], const float screen_co_b[2])  func,
void *  userData,
const eV3DProjTest  clip_flag 
)

◆ lattice_foreachScreenVert()

void lattice_foreachScreenVert ( ViewContext vc,
void(*)(void *userData, BPoint *bp, const float screen_co[2])  func,
void *  userData,
const eV3DProjTest  clip_flag 
)

◆ mball_foreachScreenElem()

void mball_foreachScreenElem ( struct ViewContext vc,
void(*)(void *userData, struct MetaElem *ml, const float screen_co_b[2])  func,
void *  userData,
const eV3DProjTest  clip_flag 
)

◆ mesh_foreachScreenEdge()

void mesh_foreachScreenEdge ( ViewContext vc,
void(*)(void *userData, BMEdge *eed, const float screen_co_a[2], const float screen_co_b[2], int index)  func,
void *  userData,
eV3DProjTest  clip_flag 
)

◆ mesh_foreachScreenEdge__mapFunc()

static void mesh_foreachScreenEdge__mapFunc ( void *  userData,
int  index,
const float  v0co[3],
const float  v1co[3] 
)
static

◆ mesh_foreachScreenEdge_clip_bb_segment()

void mesh_foreachScreenEdge_clip_bb_segment ( ViewContext vc,
void(*)(void *userData, BMEdge *eed, const float screen_co_a[2], const float screen_co_b[2], int index)  func,
void *  userData,
eV3DProjTest  clip_flag 
)

◆ mesh_foreachScreenEdge_clip_bb_segment__mapFunc()

static void mesh_foreachScreenEdge_clip_bb_segment__mapFunc ( void *  userData,
int  index,
const float  v0co[3],
const float  v1co[3] 
)
static

◆ mesh_foreachScreenFace()

void mesh_foreachScreenFace ( ViewContext vc,
void(*)(void *userData, BMFace *efa, const float screen_co_b[2], int index)  func,
void *  userData,
const eV3DProjTest  clip_flag 
)

◆ mesh_foreachScreenFace__mapFunc()

static void mesh_foreachScreenFace__mapFunc ( void *  userData,
int  index,
const float  cent[3],
const float   UNUSEDno[3] 
)
static

◆ mesh_foreachScreenVert()

void mesh_foreachScreenVert ( ViewContext vc,
void(*)(void *userData, BMVert *eve, const float screen_co[2], int index)  func,
void *  userData,
eV3DProjTest  clip_flag 
)

◆ mesh_foreachScreenVert__mapFunc()

static void mesh_foreachScreenVert__mapFunc ( void *  userData,
int  index,
const float  co[3],
const float   UNUSEDno_f[3],
const short   UNUSEDno_s[3] 
)
static

◆ meshobject_foreachScreenVert()

void meshobject_foreachScreenVert ( ViewContext vc,
void(*)(void *userData, MVert *eve, const float screen_co[2], int index)  func,
void *  userData,
eV3DProjTest  clip_flag 
)

◆ meshobject_foreachScreenVert__mapFunc()

static void meshobject_foreachScreenVert__mapFunc ( void *  userData,
int  index,
const float  co[3],
const float   UNUSEDno_f[3],
const short   UNUSEDno_s[3] 
)
static
Note
foreach funcs should be called while drawing or directly after if not, ED_view3d_init_mats_rv3d() can be used for selection tools but would not give correct results with dupli's for eg. which don't use the object matrix in the usual way.

Definition at line 96 of file view3d_iterators.c.

References MVert::co, data, ED_view3d_project_float_object(), ME_HIDE, and V3D_PROJ_RET_OK.

Referenced by meshobject_foreachScreenVert().

◆ nurbs_foreachScreenVert()

void nurbs_foreachScreenVert ( ViewContext vc,
void(*)(void *userData, Nurb *nu, BPoint *bp, BezTriple *bezt, int beztindex, bool handles_visible, const float screen_co_b[2])  func,
void *  userData,
const eV3DProjTest  clip_flag 
)

◆ pose_foreachScreenBone()

void pose_foreachScreenBone ( struct ViewContext vc,
void(*)(void *userData, struct bPoseChannel *pchan, const float screen_co_a[2], const float screen_co_b[2])  func,
void *  userData,
const eV3DProjTest  clip_flag 
)