Blender  V3.3
Namespaces | Functions
crazyspace.cc File Reference
#include "MEM_guardedalloc.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "BLI_bitmap.h"
#include "BLI_linklist.h"
#include "BLI_utildefines.h"
#include "BKE_DerivedMesh.h"
#include "BKE_crazyspace.h"
#include "BKE_crazyspace.hh"
#include "BKE_curves.hh"
#include "BKE_editmesh.h"
#include "BKE_geometry_set.hh"
#include "BKE_lib_id.h"
#include "BKE_mesh.h"
#include "BKE_mesh_wrapper.h"
#include "BKE_modifier.h"
#include "BKE_multires.h"
#include "BKE_report.h"
#include "DEG_depsgraph_query.h"

Go to the source code of this file.

Namespaces

 blender
 
 blender::bke
 
 blender::bke::crazyspace
 

Functions

BLI_INLINE void tan_calc_quat_v3 (float r_quat[4], const float co_1[3], const float co_2[3], const float co_3[3])
 
static void set_crazy_vertex_quat (float r_quat[4], const float co_1[3], const float co_2[3], const float co_3[3], const float vd_1[3], const float vd_2[3], const float vd_3[3])
 
static bool modifiers_disable_subsurf_temporary (struct Scene *scene, Object *ob)
 
float(* BKE_crazyspace_get_mapped_editverts (struct Depsgraph *depsgraph, Object *obedit))[3]
 
void BKE_crazyspace_set_quats_editmesh (BMEditMesh *em, float(*origcos)[3], float(*mappedcos)[3], float(*quats)[4], const bool use_select)
 
void BKE_crazyspace_set_quats_mesh (Mesh *me, float(*origcos)[3], float(*mappedcos)[3], float(*quats)[4])
 
int BKE_crazyspace_get_first_deform_matrices_editbmesh (struct Depsgraph *depsgraph, Scene *scene, Object *ob, BMEditMesh *em, float(**deformmats)[3][3], float(**deformcos)[3])
 
static void crazyspace_init_object_for_eval (struct Depsgraph *depsgraph, Object *object, Object *object_crazy)
 
static void crazyspace_init_verts_and_matrices (const Mesh *mesh, float(**deformmats)[3][3], float(**deformcos)[3])
 
static bool crazyspace_modifier_supports_deform_matrices (ModifierData *md)
 
static bool crazyspace_modifier_supports_deform (ModifierData *md)
 
int BKE_sculpt_get_first_deform_matrices (struct Depsgraph *depsgraph, Scene *scene, Object *object, float(**deformmats)[3][3], float(**deformcos)[3])
 
void BKE_crazyspace_build_sculpt (struct Depsgraph *depsgraph, Scene *scene, Object *object, float(**deformmats)[3][3], float(**deformcos)[3])
 
GeometryDeformation blender::bke::crazyspace::get_evaluated_curves_deformation (const Depsgraph &depsgraph, const Object &ob_orig)
 
Crazyspace API
void BKE_crazyspace_api_eval (Depsgraph *depsgraph, Scene *scene, Object *object, struct ReportList *reports)
 
void BKE_crazyspace_api_displacement_to_deformed (struct Object *object, struct ReportList *reports, int vertex_index, float displacement[3], float r_displacement_deformed[3])
 
void BKE_crazyspace_api_displacement_to_original (struct Object *object, struct ReportList *reports, int vertex_index, float displacement_deformed[3], float r_displacement[3])
 
void BKE_crazyspace_api_eval_clear (Object *object)
 

Function Documentation

◆ BKE_crazyspace_api_displacement_to_deformed()

void BKE_crazyspace_api_displacement_to_deformed ( struct Object object,
struct ReportList reports,
int  vertex_index,
float  displacement[3],
float  r_displacement_deformed[3] 
)

◆ BKE_crazyspace_api_displacement_to_original()

void BKE_crazyspace_api_displacement_to_original ( struct Object object,
struct ReportList reports,
int  vertex_index,
float  displacement_deformed[3],
float  r_displacement[3] 
)

◆ BKE_crazyspace_api_eval()

void BKE_crazyspace_api_eval ( Depsgraph depsgraph,
Scene scene,
Object object,
struct ReportList reports 
)

◆ BKE_crazyspace_api_eval_clear()

void BKE_crazyspace_api_eval_clear ( Object object)

◆ BKE_crazyspace_build_sculpt()

void BKE_crazyspace_build_sculpt ( struct Depsgraph depsgraph,
Scene scene,
Object object,
float(**)  deformmats[3][3],
float(**)  deformcos[3] 
)

◆ BKE_crazyspace_get_first_deform_matrices_editbmesh()

int BKE_crazyspace_get_first_deform_matrices_editbmesh ( struct Depsgraph depsgraph,
struct Scene scene,
struct Object ob,
struct BMEditMesh em,
float(**)  deformmats[3][3],
float(**)  deformcos[3] 
)

◆ BKE_crazyspace_get_mapped_editverts()

float(* BKE_crazyspace_get_mapped_editverts ( struct Depsgraph depsgraph,
struct Object obedit 
) )[3]

◆ BKE_crazyspace_set_quats_editmesh()

void BKE_crazyspace_set_quats_editmesh ( BMEditMesh em,
float(*)  origcos[3],
float(*)  mappedcos[3],
float(*)  quats[4],
const bool  use_select 
)

◆ BKE_crazyspace_set_quats_mesh()

void BKE_crazyspace_set_quats_mesh ( Mesh me,
float(*)  origcos[3],
float(*)  mappedcos[3],
float(*)  quats[4] 
)

◆ BKE_sculpt_get_first_deform_matrices()

int BKE_sculpt_get_first_deform_matrices ( struct Depsgraph depsgraph,
Scene scene,
Object object,
float(**)  deformmats[3][3],
float(**)  deformcos[3] 
)

◆ crazyspace_init_object_for_eval()

static void crazyspace_init_object_for_eval ( struct Depsgraph depsgraph,
Object object,
Object object_crazy 
)
static

Crazy-space evaluation needs to have an object which has all the fields evaluated, but the mesh data being at undeformed state. This way it can re-apply modifiers and also have proper pointers to key data blocks.

Similar to BKE_object_eval_reset(), but does not modify the actual evaluated object.

Definition at line 312 of file crazyspace.cc.

References Object::data, Object_Runtime::data_orig, DEG_get_evaluated_object(), depsgraph, and Object::runtime.

Referenced by BKE_crazyspace_build_sculpt(), and BKE_sculpt_get_first_deform_matrices().

◆ crazyspace_init_verts_and_matrices()

static void crazyspace_init_verts_and_matrices ( const Mesh mesh,
float(**)  deformmats[3][3],
float(**)  deformcos[3] 
)
static

◆ crazyspace_modifier_supports_deform()

static bool crazyspace_modifier_supports_deform ( ModifierData md)
static

◆ crazyspace_modifier_supports_deform_matrices()

static bool crazyspace_modifier_supports_deform_matrices ( ModifierData md)
static

◆ modifiers_disable_subsurf_temporary()

static bool modifiers_disable_subsurf_temporary ( struct Scene scene,
Object ob 
)
static

◆ set_crazy_vertex_quat()

static void set_crazy_vertex_quat ( float  r_quat[4],
const float  co_1[3],
const float  co_2[3],
const float  co_3[3],
const float  vd_1[3],
const float  vd_2[3],
const float  vd_3[3] 
)
static

◆ tan_calc_quat_v3()

BLI_INLINE void tan_calc_quat_v3 ( float  r_quat[4],
const float  co_1[3],
const float  co_2[3],
const float  co_3[3] 
)

Definition at line 35 of file crazyspace.cc.

References cross_v3_v3v3(), nor, normalize_v3(), sub_v3_v3v3(), tri_to_quat_ex(), and unit_qt().

Referenced by set_crazy_vertex_quat().