Blender V2.61 - r43446
|
#include "MEM_guardedalloc.h"
#include "DNA_scene_types.h"
#include "DNA_object_types.h"
#include "DNA_modifier_types.h"
#include "DNA_meshdata_types.h"
#include "BKE_DerivedMesh.h"
#include "BKE_modifier.h"
#include "BKE_multires.h"
#include "BKE_mesh.h"
#include "BLI_utildefines.h"
#include "BLI_math.h"
#include "BLI_editVert.h"
#include "ED_util.h"
Go to the source code of this file.
Classes | |
struct | MappedUserData |
Defines | |
#define | TAN_MAKE_VEC(a, b, c) a[0]= b[0] + 0.2f*(b[0]-c[0]); a[1]= b[1] + 0.2f*(b[1]-c[1]); a[2]= b[2] + 0.2f*(b[2]-c[2]) |
Functions | |
static void | set_crazy_vertex_quat (float *quat, float *v1, float *v2, float *v3, float *def1, float *def2, float *def3) |
static void | make_vertexcos__mapFunc (void *userData, int index, float *co, float *UNUSED(no_f), short *UNUSED(no_s)) |
static int | modifiers_disable_subsurf_temporary (Object *ob) |
float * | crazyspace_get_mapped_editverts (Scene *scene, Object *obedit) |
void | crazyspace_set_quats_editmesh (EditMesh *em, float *origcos, float *mappedcos, float *quats) |
void | crazyspace_set_quats_mesh (Mesh *me, float *origcos, float *mappedcos, float *quats) |
int | editmesh_get_first_deform_matrices (Scene *scene, Object *ob, EditMesh *em, float(**deformmats)[3][3], float(**deformcos)[3]) |
int | sculpt_get_first_deform_matrices (Scene *scene, Object *ob, float(**deformmats)[3][3], float(**deformcos)[3]) |
void | crazyspace_build_sculpt (Scene *scene, Object *ob, float(**deformmats)[3][3], float(**deformcos)[3]) |
Definition in file crazyspace.c.
#define TAN_MAKE_VEC | ( | a, | |
b, | |||
c | |||
) | a[0]= b[0] + 0.2f*(b[0]-c[0]); a[1]= b[1] + 0.2f*(b[1]-c[1]); a[2]= b[2] + 0.2f*(b[2]-c[2]) |
Definition at line 56 of file crazyspace.c.
Referenced by set_crazy_vertex_quat().
void crazyspace_build_sculpt | ( | Scene * | scene, |
Object * | ob, | ||
float(**) | deformmats[3][3], | ||
float(**) | deformcos[3] | ||
) |
Definition at line 380 of file crazyspace.c.
References copy_m3_m3(), crazyspace_set_quats_mesh(), Object::data, ModifierTypeInfo::deformMatrices, ModifierTypeInfo::deformVerts, eModifierMode_Realtime, eModifierTypeType_OnlyDeform, i, MEM_callocN(), MEM_dupallocN(), MEM_freeN(), MEM_mallocN(), mesh_getVertexCos(), modifier_isEnabled(), modifiers_getVirtualModifierList(), modifierType_getInfo(), mti, mul_m3_m3m3(), ModifierData::next, NULL, quat_to_mat3(), sculpt_get_first_deform_matrices(), Mesh::totvert, ModifierData::type, ModifierTypeInfo::type, and unit_m3().
Referenced by sculpt_update_mesh_elements().
Definition at line 104 of file crazyspace.c.
References CD_MASK_BAREMESH, Object::data, Mesh::edit_mesh, editmesh_get_derived_cage(), MappedUserData::flags, DerivedMesh::foreachMappedVert, make_vertexcos__mapFunc(), makeDerivedMesh(), MEM_callocN(), MEM_freeN(), modifiers_disable_subsurf_temporary(), DerivedMesh::release, EditMesh::totvert, and MappedUserData::vertexcos.
Referenced by createTransEditVerts().
void crazyspace_set_quats_editmesh | ( | EditMesh * | em, |
float * | origcos, | ||
float * | mappedcos, | ||
float * | quats | ||
) |
Definition at line 139 of file crazyspace.c.
References EditVert::co, EditVert::f1, EditMesh::faces, ListBase::first, EditFace::next, EditVert::next, NULL, EditVert::p, EditVert::prev, set_crazy_vertex_quat(), EditVert::tmp, EditFace::v1, EditFace::v2, EditFace::v3, EditFace::v4, and EditMesh::verts.
Referenced by createTransEditVerts().
void crazyspace_set_quats_mesh | ( | Mesh * | me, |
float * | origcos, | ||
float * | mappedcos, | ||
float * | quats | ||
) |
Definition at line 210 of file crazyspace.c.
References MVert::co, MVert::flag, i, ME_VERT_TMP_TAG, Mesh::mface, Mesh::mvert, set_crazy_vertex_quat(), Mesh::totvert, MFace::v1, MFace::v2, MFace::v3, and MFace::v4.
Referenced by crazyspace_build_sculpt().
int editmesh_get_first_deform_matrices | ( | Scene * | scene, |
Object * | ob, | ||
EditMesh * | em, | ||
float(**) | deformmats[3][3], | ||
float(**) | deformcos[3] | ||
) |
Definition at line 270 of file crazyspace.c.
References ModifierTypeInfo::deformMatricesEM, editmesh_get_derived(), editmesh_get_vertex_cos(), editmesh_modifier_is_enabled(), eModifierTypeType_OnlyDeform, i, MEM_callocN(), modifier_isCorrectableDeformed(), modifiers_clearErrors(), modifiers_getCageIndex(), modifiers_getVirtualModifierList(), modifierType_getInfo(), mti, ModifierData::next, NULL, DerivedMesh::release, ModifierTypeInfo::type, and unit_m3().
Referenced by createTransEditVerts().
static void make_vertexcos__mapFunc | ( | void * | userData, |
int | index, | ||
float * | co, | ||
float * | UNUSEDno_f, | ||
short * | UNUSEDno_s | ||
) | [static] |
Definition at line 74 of file crazyspace.c.
References copy_v3_v3(), MappedUserData::flags, and MappedUserData::vertexcos.
Referenced by crazyspace_get_mapped_editverts().
static int modifiers_disable_subsurf_temporary | ( | Object * | ob | ) | [static] |
Definition at line 88 of file crazyspace.c.
References eModifierMode_DisableTemporary, eModifierMode_OnCage, eModifierType_Subsurf, ListBase::first, ModifierData::mode, Object::modifiers, ModifierData::next, and ModifierData::type.
Referenced by crazyspace_get_mapped_editverts().
int sculpt_get_first_deform_matrices | ( | Scene * | scene, |
Object * | ob, | ||
float(**) | deformmats[3][3], | ||
float(**) | deformcos[3] | ||
) |
Definition at line 322 of file crazyspace.c.
References Object::data, ModifierTypeInfo::deformMatrices, eModifierMode_Realtime, eModifierTypeType_OnlyDeform, get_multires_modifier(), MEM_callocN(), mesh_create_derived(), mesh_getVertexCos(), modifier_isEnabled(), modifiers_getVirtualModifierList(), modifierType_getInfo(), mti, ModifierData::next, NULL, DerivedMesh::release, MultiresModifierData::sculptlvl, ModifierData::type, ModifierTypeInfo::type, and unit_m3().
Referenced by crazyspace_build_sculpt().
static void set_crazy_vertex_quat | ( | float * | quat, |
float * | v1, | ||
float * | v2, | ||
float * | v3, | ||
float * | def1, | ||
float * | def2, | ||
float * | def3 | ||
) | [static] |
Definition at line 57 of file crazyspace.c.
References sub_qt_qtqt(), TAN_MAKE_VEC, and tri_to_quat().
Referenced by crazyspace_set_quats_editmesh(), and crazyspace_set_quats_mesh().