Blender  V2.93
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_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.

Functions

bool BKE_subdiv_eval_begin (Subdiv *subdiv)
 
static void set_coarse_positions (Subdiv *subdiv, const Mesh *mesh, const float(*coarse_vertex_cos)[3])
 
static void set_face_varying_data_from_uv (Subdiv *subdiv, const MLoopUV *mloopuv, const int layer_index)
 
bool BKE_subdiv_eval_begin_from_mesh (Subdiv *subdiv, const Mesh *mesh, const float(*coarse_vertex_cos)[3])
 
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_limit_point_and_short_normal (Subdiv *subdiv, const int ptex_face_index, const float u, const float v, float r_P[3], short r_N[3])
 
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])
 
static void buffer_apply_offset (void **buffer, const int offset)
 
static void buffer_write_float_value (void **buffer, const float *values_buffer, int num_values)
 
static void buffer_write_short_value (void **buffer, const short *values_buffer, int num_values)
 
void BKE_subdiv_eval_limit_patch_resolution_point (Subdiv *subdiv, const int ptex_face_index, const int resolution, void *buffer, const int offset, const int stride)
 
void BKE_subdiv_eval_limit_patch_resolution_point_and_derivatives (Subdiv *subdiv, const int ptex_face_index, const int resolution, void *point_buffer, const int point_offset, const int point_stride, void *du_buffer, const int du_offset, const int du_stride, void *dv_buffer, const int dv_offset, const int dv_stride)
 
void BKE_subdiv_eval_limit_patch_resolution_point_and_normal (Subdiv *subdiv, const int ptex_face_index, const int resolution, void *point_buffer, const int point_offset, const int point_stride, void *normal_buffer, const int normal_offset, const int normal_stride)
 
void BKE_subdiv_eval_limit_patch_resolution_point_and_short_normal (Subdiv *subdiv, const int ptex_face_index, const int resolution, void *point_buffer, const int point_offset, const int point_stride, void *normal_buffer, const int normal_offset, const int normal_stride)
 

Function Documentation

◆ BKE_subdiv_eval_begin()

bool BKE_subdiv_eval_begin ( Subdiv subdiv)

◆ BKE_subdiv_eval_begin_from_mesh()

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

Definition at line 124 of file subdiv_eval.c.

References BKE_subdiv_eval_begin(), BKE_subdiv_eval_refine_from_mesh(), and mesh.

◆ 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 236 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_patch_resolution_point()

void BKE_subdiv_eval_limit_patch_resolution_point ( Subdiv subdiv,
const int  ptex_face_index,
const int  resolution,
void *  buffer,
const int  offset,
const int  stride 
)

Definition at line 297 of file subdiv_eval.c.

References BKE_subdiv_eval_limit_point(), buffer, buffer_apply_offset(), float(), stride, v, x, and y.

◆ BKE_subdiv_eval_limit_patch_resolution_point_and_derivatives()

void BKE_subdiv_eval_limit_patch_resolution_point_and_derivatives ( Subdiv subdiv,
const int  ptex_face_index,
const int  resolution,
void *  point_buffer,
const int  point_offset,
const int  point_stride,
void *  du_buffer,
const int  du_offset,
const int  du_stride,
void *  dv_buffer,
const int  dv_offset,
const int  dv_stride 
)

◆ BKE_subdiv_eval_limit_patch_resolution_point_and_normal()

void BKE_subdiv_eval_limit_patch_resolution_point_and_normal ( Subdiv subdiv,
const int  ptex_face_index,
const int  resolution,
void *  point_buffer,
const int  point_offset,
const int  point_stride,
void *  normal_buffer,
const int  normal_offset,
const int  normal_stride 
)

◆ BKE_subdiv_eval_limit_patch_resolution_point_and_short_normal()

void BKE_subdiv_eval_limit_patch_resolution_point_and_short_normal ( Subdiv subdiv,
const int  ptex_face_index,
const int  resolution,
void *  point_buffer,
const int  point_offset,
const int  point_stride,
void *  normal_buffer,
const int  normal_offset,
const int  normal_stride 
)

◆ 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_limit_point_and_short_normal()

void BKE_subdiv_eval_limit_point_and_short_normal ( Subdiv subdiv,
const int  ptex_face_index,
const float  u,
const float  v,
float  r_P[3],
short  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] 
)

◆ buffer_apply_offset()

static void buffer_apply_offset ( void **  buffer,
const int  offset 
)
static

◆ buffer_write_float_value()

static void buffer_write_float_value ( void **  buffer,
const float values_buffer,
int  num_values 
)
static

Definition at line 286 of file subdiv_eval.c.

References buffer.

Referenced by BKE_subdiv_eval_limit_patch_resolution_point_and_normal().

◆ buffer_write_short_value()

static void buffer_write_short_value ( void **  buffer,
const short *  values_buffer,
int  num_values 
)
static

Definition at line 292 of file subdiv_eval.c.

References buffer.

Referenced by BKE_subdiv_eval_limit_patch_resolution_point_and_short_normal().

◆ 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 MLoopUV mloopuv,
const int  layer_index 
)
static