Blender  V3.3
Classes | Typedefs | Functions
subdiv_eval.c File Reference
#include "BKE_subdiv_eval.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "BLI_bitmap.h"
#include "BLI_math_vector.h"
#include "BLI_task.h"
#include "BLI_utildefines.h"
#include "BKE_customdata.h"
#include "BKE_subdiv.h"
#include "MEM_guardedalloc.h"
#include "opensubdiv_evaluator_capi.h"
#include "opensubdiv_topology_refiner_capi.h"

Go to the source code of this file.

Classes

struct  FaceVaryingDataFromUVContext
 

Typedefs

typedef struct FaceVaryingDataFromUVContext FaceVaryingDataFromUVContext
 

Functions

static eOpenSubdivEvaluator opensubdiv_evalutor_from_subdiv_evaluator_type (eSubdivEvaluatorType evaluator_type)
 
bool BKE_subdiv_eval_begin (Subdiv *subdiv, eSubdivEvaluatorType evaluator_type, OpenSubdiv_EvaluatorCache *evaluator_cache, const OpenSubdiv_EvaluatorSettings *settings)
 
static void set_coarse_positions (Subdiv *subdiv, const Mesh *mesh, const float(*coarse_vertex_cos)[3])
 
static void set_face_varying_data_from_uv_task (void *__restrict userdata, const int face_index, const TaskParallelTLS *__restrict UNUSED(tls))
 
static void set_face_varying_data_from_uv (Subdiv *subdiv, const Mesh *mesh, const MLoopUV *mloopuv, const int layer_index)
 
static void set_vertex_data_from_orco (Subdiv *subdiv, const Mesh *mesh)
 
static void get_mesh_evaluator_settings (OpenSubdiv_EvaluatorSettings *settings, const Mesh *mesh)
 
bool BKE_subdiv_eval_begin_from_mesh (Subdiv *subdiv, const Mesh *mesh, const float(*coarse_vertex_cos)[3], eSubdivEvaluatorType evaluator_type, OpenSubdiv_EvaluatorCache *evaluator_cache)
 
bool BKE_subdiv_eval_refine_from_mesh (Subdiv *subdiv, const Mesh *mesh, const float(*coarse_vertex_cos)[3])
 
void BKE_subdiv_eval_init_displacement (Subdiv *subdiv)
 
void BKE_subdiv_eval_limit_point (Subdiv *subdiv, const int ptex_face_index, const float u, const float v, float r_P[3])
 
void BKE_subdiv_eval_limit_point_and_derivatives (Subdiv *subdiv, const int ptex_face_index, const float u, const float v, float r_P[3], float r_dPdu[3], float r_dPdv[3])
 
void BKE_subdiv_eval_limit_point_and_normal (Subdiv *subdiv, const int ptex_face_index, const float u, const float v, float r_P[3], float r_N[3])
 
void BKE_subdiv_eval_vertex_data (Subdiv *subdiv, const int ptex_face_index, const float u, const float v, float r_vertex_data[])
 
void BKE_subdiv_eval_face_varying (Subdiv *subdiv, const int face_varying_channel, const int ptex_face_index, const float u, const float v, float r_face_varying[2])
 
void BKE_subdiv_eval_displacement (Subdiv *subdiv, const int ptex_face_index, const float u, const float v, const float dPdu[3], const float dPdv[3], float r_D[3])
 
void BKE_subdiv_eval_final_point (Subdiv *subdiv, const int ptex_face_index, const float u, const float v, float r_P[3])
 

Typedef Documentation

◆ FaceVaryingDataFromUVContext

Function Documentation

◆ BKE_subdiv_eval_begin()

bool BKE_subdiv_eval_begin ( Subdiv subdiv,
eSubdivEvaluatorType  evaluator_type,
OpenSubdiv_EvaluatorCache evaluator_cache,
const OpenSubdiv_EvaluatorSettings settings 
)

◆ BKE_subdiv_eval_begin_from_mesh()

bool BKE_subdiv_eval_begin_from_mesh ( Subdiv subdiv,
const Mesh mesh,
const float(*)  coarse_vertex_cos[3],
eSubdivEvaluatorType  evaluator_type,
OpenSubdiv_EvaluatorCache evaluator_cache 
)

◆ BKE_subdiv_eval_displacement()

void BKE_subdiv_eval_displacement ( Subdiv subdiv,
const int  ptex_face_index,
const float  u,
const float  v,
const float  dPdu[3],
const float  dPdv[3],
float  r_D[3] 
)

◆ BKE_subdiv_eval_face_varying()

void BKE_subdiv_eval_face_varying ( Subdiv subdiv,
const int  face_varying_channel,
const int  ptex_face_index,
const float  u,
const float  v,
float  r_face_varying[2] 
)

Definition at line 339 of file subdiv_eval.c.

References OpenSubdiv_Evaluator::evaluateFaceVarying, Subdiv::evaluator, and v.

Referenced by subdiv_eval_uv_layer().

◆ BKE_subdiv_eval_final_point()

void BKE_subdiv_eval_final_point ( Subdiv subdiv,
const int  ptex_face_index,
const float  u,
const float  v,
float  r_P[3] 
)

◆ BKE_subdiv_eval_init_displacement()

void BKE_subdiv_eval_init_displacement ( Subdiv subdiv)

◆ BKE_subdiv_eval_limit_point()

void BKE_subdiv_eval_limit_point ( Subdiv subdiv,
const int  ptex_face_index,
const float  u,
const float  v,
float  r_P[3] 
)

◆ BKE_subdiv_eval_limit_point_and_derivatives()

void BKE_subdiv_eval_limit_point_and_derivatives ( Subdiv subdiv,
const int  ptex_face_index,
const float  u,
const float  v,
float  r_P[3],
float  r_dPdu[3],
float  r_dPdv[3] 
)

◆ BKE_subdiv_eval_limit_point_and_normal()

void BKE_subdiv_eval_limit_point_and_normal ( Subdiv subdiv,
const int  ptex_face_index,
const float  u,
const float  v,
float  r_P[3],
float  r_N[3] 
)

◆ BKE_subdiv_eval_refine_from_mesh()

bool BKE_subdiv_eval_refine_from_mesh ( Subdiv subdiv,
const Mesh mesh,
const float(*)  coarse_vertex_cos[3] 
)

◆ BKE_subdiv_eval_vertex_data()

void BKE_subdiv_eval_vertex_data ( Subdiv subdiv,
const int  ptex_face_index,
const float  u,
const float  v,
float  r_vertex_data[] 
)

◆ get_mesh_evaluator_settings()

static void get_mesh_evaluator_settings ( OpenSubdiv_EvaluatorSettings settings,
const Mesh mesh 
)
static

◆ opensubdiv_evalutor_from_subdiv_evaluator_type()

static eOpenSubdivEvaluator opensubdiv_evalutor_from_subdiv_evaluator_type ( eSubdivEvaluatorType  evaluator_type)
static

◆ set_coarse_positions()

static void set_coarse_positions ( Subdiv subdiv,
const Mesh mesh,
const float(*)  coarse_vertex_cos[3] 
)
static

◆ set_face_varying_data_from_uv()

static void set_face_varying_data_from_uv ( Subdiv subdiv,
const Mesh mesh,
const MLoopUV mloopuv,
const int  layer_index 
)
static

◆ set_face_varying_data_from_uv_task()

static void set_face_varying_data_from_uv_task ( void *__restrict  userdata,
const int  face_index,
const TaskParallelTLS *__restrict   UNUSEDtls 
)
static

◆ set_vertex_data_from_orco()

static void set_vertex_data_from_orco ( Subdiv subdiv,
const Mesh mesh 
)
static