forked from bartvdbraak/blender
code cleanup: some edits for unused vars in recent smooth addition and some style edits.
This commit is contained in:
parent
e4fcc07a10
commit
c93978d445
@ -105,8 +105,7 @@ extern "C" void smoke_initWaveletBlenderRNA(WTURBULENCE *wt, float *strength)
|
|||||||
|
|
||||||
static void data_dissolve(float *density, float *heat, float *r, float *g, float *b, int total_cells, int speed, int log)
|
static void data_dissolve(float *density, float *heat, float *r, float *g, float *b, int total_cells, int speed, int log)
|
||||||
{
|
{
|
||||||
if(log)
|
if (log) {
|
||||||
{
|
|
||||||
/* max density/speed = dydx */
|
/* max density/speed = dydx */
|
||||||
float fac = 1.0f - (1.0f / (float)speed);
|
float fac = 1.0f - (1.0f / (float)speed);
|
||||||
|
|
||||||
|
@ -1832,9 +1832,11 @@ int BKE_imbuf_write(ImBuf *ibuf, const char *name, ImageFormatData *imf)
|
|||||||
}
|
}
|
||||||
if (imf->depth == R_IMF_CHAN_DEPTH_16) {
|
if (imf->depth == R_IMF_CHAN_DEPTH_16) {
|
||||||
ibuf->ftype |= CINEON_16BIT;
|
ibuf->ftype |= CINEON_16BIT;
|
||||||
} else if (imf->depth == R_IMF_CHAN_DEPTH_12) {
|
}
|
||||||
|
else if (imf->depth == R_IMF_CHAN_DEPTH_12) {
|
||||||
ibuf->ftype |= CINEON_12BIT;
|
ibuf->ftype |= CINEON_12BIT;
|
||||||
} else if (imf->depth == R_IMF_CHAN_DEPTH_10) {
|
}
|
||||||
|
else if (imf->depth == R_IMF_CHAN_DEPTH_10) {
|
||||||
ibuf->ftype |= CINEON_10BIT;
|
ibuf->ftype |= CINEON_10BIT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1845,9 +1847,11 @@ int BKE_imbuf_write(ImBuf *ibuf, const char *name, ImageFormatData *imf)
|
|||||||
}
|
}
|
||||||
if (imf->depth == R_IMF_CHAN_DEPTH_16) {
|
if (imf->depth == R_IMF_CHAN_DEPTH_16) {
|
||||||
ibuf->ftype |= CINEON_16BIT;
|
ibuf->ftype |= CINEON_16BIT;
|
||||||
} else if (imf->depth == R_IMF_CHAN_DEPTH_12) {
|
}
|
||||||
|
else if (imf->depth == R_IMF_CHAN_DEPTH_12) {
|
||||||
ibuf->ftype |= CINEON_12BIT;
|
ibuf->ftype |= CINEON_12BIT;
|
||||||
} else if (imf->depth == R_IMF_CHAN_DEPTH_10) {
|
}
|
||||||
|
else if (imf->depth == R_IMF_CHAN_DEPTH_10) {
|
||||||
ibuf->ftype |= CINEON_10BIT;
|
ibuf->ftype |= CINEON_10BIT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -69,7 +69,7 @@ struct BLaplacianSystem {
|
|||||||
};
|
};
|
||||||
typedef struct BLaplacianSystem LaplacianSystem;
|
typedef struct BLaplacianSystem LaplacianSystem;
|
||||||
|
|
||||||
static float compute_volume(BMesh *bm, BMOperator *op);
|
static float compute_volume(BMesh *bm);
|
||||||
static float cotan_weight(float *v1, float *v2, float *v3);
|
static float cotan_weight(float *v1, float *v2, float *v3);
|
||||||
static int vert_is_boundary(BMVert *v);
|
static int vert_is_boundary(BMVert *v);
|
||||||
static LaplacianSystem * init_laplacian_system( int a_numEdges, int a_numFaces, int a_numVerts);
|
static LaplacianSystem * init_laplacian_system( int a_numEdges, int a_numFaces, int a_numVerts);
|
||||||
@ -78,7 +78,7 @@ static void delete_laplacian_system(LaplacianSystem * sys);
|
|||||||
static void delete_void_pointer(void * data);
|
static void delete_void_pointer(void * data);
|
||||||
static void fill_laplacian_matrix(LaplacianSystem * sys);
|
static void fill_laplacian_matrix(LaplacianSystem * sys);
|
||||||
static void memset_laplacian_system(LaplacianSystem *sys, int val);
|
static void memset_laplacian_system(LaplacianSystem *sys, int val);
|
||||||
static void validate_solution(LaplacianSystem * sys, int usex, int usey, int usez, float lambda, float lambda_border, int volumepreservation);
|
static void validate_solution(LaplacianSystem * sys, int usex, int usey, int usez, int volumepreservation);
|
||||||
static void volume_preservation(BMesh *bm, BMOperator *op, float vini, float vend, int usex, int usey, int usez);
|
static void volume_preservation(BMesh *bm, BMOperator *op, float vini, float vend, int usex, int usey, int usez);
|
||||||
|
|
||||||
static void delete_void_pointer(void * data)
|
static void delete_void_pointer(void * data)
|
||||||
@ -230,7 +230,8 @@ static void init_laplacian_matrix(LaplacianSystem * sys)
|
|||||||
|
|
||||||
if (has_4_vert) {
|
if (has_4_vert) {
|
||||||
areaf = area_quad_v3(v1, v2, v3, v4);
|
areaf = area_quad_v3(v1, v2, v3, v4);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
areaf = area_tri_v3(v1, v2, v3);
|
areaf = area_tri_v3(v1, v2, v3);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -270,7 +271,8 @@ static void init_laplacian_matrix(LaplacianSystem * sys)
|
|||||||
|
|
||||||
sys->vweights[idv1] += (w2 + w3 + w4) / 4.0f;
|
sys->vweights[idv1] += (w2 + w3 + w4) / 4.0f;
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
i = BM_elem_index_get(f);
|
i = BM_elem_index_get(f);
|
||||||
|
|
||||||
w1 = cotan_weight(v1, v2, v3);
|
w1 = cotan_weight(v1, v2, v3);
|
||||||
@ -341,7 +343,8 @@ static void fill_laplacian_matrix(LaplacianSystem * sys)
|
|||||||
nlMatrixAdd(idv1, idv4, w4 * sys->vweights[idv1]);
|
nlMatrixAdd(idv1, idv4, w4 * sys->vweights[idv1]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
idv1 = BM_elem_index_get(vf[0]);
|
idv1 = BM_elem_index_get(vf[0]);
|
||||||
idv2 = BM_elem_index_get(vf[1]);
|
idv2 = BM_elem_index_get(vf[1]);
|
||||||
idv3 = BM_elem_index_get(vf[2]);
|
idv3 = BM_elem_index_get(vf[2]);
|
||||||
@ -412,7 +415,7 @@ static int vert_is_boundary(BMVert *v)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static float compute_volume(BMesh *bm, BMOperator *op)
|
static float compute_volume(BMesh *bm)
|
||||||
{
|
{
|
||||||
float vol = 0.0f;
|
float vol = 0.0f;
|
||||||
float x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4;
|
float x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4;
|
||||||
@ -474,7 +477,7 @@ static void volume_preservation(BMesh *bm, BMOperator *op, float vini, float ven
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void validate_solution(LaplacianSystem * sys, int usex, int usey, int usez, float lambda, float lambda_border, int volumepreservation)
|
static void validate_solution(LaplacianSystem * sys, int usex, int usey, int usez, int volumepreservation)
|
||||||
{
|
{
|
||||||
int m_vertex_id;
|
int m_vertex_id;
|
||||||
float leni, lene;
|
float leni, lene;
|
||||||
@ -506,7 +509,7 @@ static void validate_solution(LaplacianSystem * sys, int usex, int usey, int use
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (volumepreservation) {
|
if (volumepreservation) {
|
||||||
vini = compute_volume(sys->bm, sys->op);
|
vini = compute_volume(sys->bm);
|
||||||
}
|
}
|
||||||
BMO_ITER (v, &siter, sys->bm, sys->op, "verts", BM_VERT) {
|
BMO_ITER (v, &siter, sys->bm, sys->op, "verts", BM_VERT) {
|
||||||
m_vertex_id = BM_elem_index_get(v);
|
m_vertex_id = BM_elem_index_get(v);
|
||||||
@ -523,7 +526,7 @@ static void validate_solution(LaplacianSystem * sys, int usex, int usey, int use
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (volumepreservation) {
|
if (volumepreservation) {
|
||||||
vend = compute_volume(sys->bm, sys->op);
|
vend = compute_volume(sys->bm);
|
||||||
volume_preservation(sys->bm, sys->op, vini, vend, usex, usey, usez);
|
volume_preservation(sys->bm, sys->op, vini, vend, usex, usey, usez);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -593,10 +596,12 @@ void bmo_smooth_laplacian_vert_exec(BMesh *bm, BMOperator *op)
|
|||||||
|
|
||||||
if (!vert_is_boundary(v)) {
|
if (!vert_is_boundary(v)) {
|
||||||
nlMatrixAdd(i, i, 1.0f + lambda / (4.0f * sys->ring_areas[i]));
|
nlMatrixAdd(i, i, 1.0f + lambda / (4.0f * sys->ring_areas[i]));
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
nlMatrixAdd(i, i, 1.0f + lambda_border * 2.0f);
|
nlMatrixAdd(i, i, 1.0f + lambda_border * 2.0f);
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
nlMatrixAdd(i, i, 1.0f);
|
nlMatrixAdd(i, i, 1.0f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -606,7 +611,7 @@ void bmo_smooth_laplacian_vert_exec(BMesh *bm, BMOperator *op)
|
|||||||
nlEnd(NL_SYSTEM);
|
nlEnd(NL_SYSTEM);
|
||||||
|
|
||||||
if (nlSolveAdvanced(NULL, NL_TRUE) ) {
|
if (nlSolveAdvanced(NULL, NL_TRUE) ) {
|
||||||
validate_solution(sys, usex, usey, usez, lambda, lambda_border, volumepreservation);
|
validate_solution(sys, usex, usey, usez, volumepreservation);
|
||||||
}
|
}
|
||||||
|
|
||||||
delete_laplacian_system(sys);
|
delete_laplacian_system(sys);
|
||||||
|
@ -1672,8 +1672,8 @@ static int edbm_do_smooth_laplacian_vertex_exec(bContext *C, wmOperator *op)
|
|||||||
BMEditMesh *em = BMEdit_FromObject(obedit);
|
BMEditMesh *em = BMEdit_FromObject(obedit);
|
||||||
int usex = TRUE, usey = TRUE, usez = TRUE, volume_preservation = TRUE;
|
int usex = TRUE, usey = TRUE, usez = TRUE, volume_preservation = TRUE;
|
||||||
int i, repeat;
|
int i, repeat;
|
||||||
float lambda = 0.1f;
|
float lambda;
|
||||||
float lambda_border = 0.1f;
|
float lambda_border;
|
||||||
BMIter fiter;
|
BMIter fiter;
|
||||||
BMFace *f;
|
BMFace *f;
|
||||||
|
|
||||||
|
@ -2382,7 +2382,8 @@ static void createTransUVs(bContext *C, TransInfo *t)
|
|||||||
/* create element map with island information */
|
/* create element map with island information */
|
||||||
if (ts->uv_flag & UV_SYNC_SELECTION) {
|
if (ts->uv_flag & UV_SYNC_SELECTION) {
|
||||||
elementmap = EDBM_uv_element_map_create (em, FALSE, TRUE);
|
elementmap = EDBM_uv_element_map_create (em, FALSE, TRUE);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
elementmap = EDBM_uv_element_map_create (em, TRUE, TRUE);
|
elementmap = EDBM_uv_element_map_create (em, TRUE, TRUE);
|
||||||
}
|
}
|
||||||
island_enabled = MEM_callocN(sizeof(*island_enabled) * elementmap->totalIslands, "TransIslandData(UV Editing)");
|
island_enabled = MEM_callocN(sizeof(*island_enabled) * elementmap->totalIslands, "TransIslandData(UV Editing)");
|
||||||
|
@ -93,7 +93,7 @@ static void init_data(ModifierData *md);
|
|||||||
static void init_laplacian_matrix(LaplacianSystem *sys);
|
static void init_laplacian_matrix(LaplacianSystem *sys);
|
||||||
static void memset_laplacian_system(LaplacianSystem *sys, int val);
|
static void memset_laplacian_system(LaplacianSystem *sys, int val);
|
||||||
static void volume_preservation(LaplacianSystem *sys, float vini, float vend, short flag);
|
static void volume_preservation(LaplacianSystem *sys, float vini, float vend, short flag);
|
||||||
static void validate_solution(LaplacianSystem * sys, short flag, float lambda, float lambda_border);
|
static void validate_solution(LaplacianSystem *sys, short flag);
|
||||||
|
|
||||||
static void delete_void_pointer(void * data)
|
static void delete_void_pointer(void * data)
|
||||||
{
|
{
|
||||||
@ -334,7 +334,8 @@ static void init_laplacian_matrix(LaplacianSystem * sys)
|
|||||||
if (w1 < sys->min_area) {
|
if (w1 < sys->min_area) {
|
||||||
sys->zerola[idv1] = 1;
|
sys->zerola[idv1] = 1;
|
||||||
sys->zerola[idv2] = 1;
|
sys->zerola[idv2] = 1;
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
w1 = 1.0f / w1;
|
w1 = 1.0f / w1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -360,7 +361,8 @@ static void init_laplacian_matrix(LaplacianSystem * sys)
|
|||||||
|
|
||||||
if (has_4_vert) {
|
if (has_4_vert) {
|
||||||
areaf = area_quad_v3(v1, v2, v3, sys->vertexCos[sys->mfaces[i].v4]);
|
areaf = area_quad_v3(v1, v2, v3, sys->vertexCos[sys->mfaces[i].v4]);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
areaf = area_tri_v3(v1, v2, v3);
|
areaf = area_tri_v3(v1, v2, v3);
|
||||||
}
|
}
|
||||||
if (fabs(areaf) < sys->min_area) {
|
if (fabs(areaf) < sys->min_area) {
|
||||||
@ -399,7 +401,8 @@ static void init_laplacian_matrix(LaplacianSystem * sys)
|
|||||||
|
|
||||||
sys->vweights[idv1] += (w2 + w3 + w4) / 4.0f;
|
sys->vweights[idv1] += (w2 + w3 + w4) / 4.0f;
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
w1 = cotan_weight(v1, v2, v3);
|
w1 = cotan_weight(v1, v2, v3);
|
||||||
w2 = cotan_weight(v2, v3, v1);
|
w2 = cotan_weight(v2, v3, v1);
|
||||||
w3 = cotan_weight(v3, v1, v2);
|
w3 = cotan_weight(v3, v1, v2);
|
||||||
@ -469,7 +472,8 @@ static void fill_laplacian_matrix(LaplacianSystem * sys)
|
|||||||
nlMatrixAdd(idv1, idv4, w4 * sys->vweights[idv1]);
|
nlMatrixAdd(idv1, idv4, w4 * sys->vweights[idv1]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
/* Is ring if number of faces == number of edges around vertice*/
|
/* Is ring if number of faces == number of edges around vertice*/
|
||||||
if (sys->numNeEd[idv1] == sys->numNeFa[idv1] && sys->zerola[idv1] == 0) {
|
if (sys->numNeEd[idv1] == sys->numNeFa[idv1] && sys->zerola[idv1] == 0) {
|
||||||
nlMatrixAdd(idv1, idv2, sys->fweights[i][2] * sys->vweights[idv1]);
|
nlMatrixAdd(idv1, idv2, sys->fweights[i][2] * sys->vweights[idv1]);
|
||||||
@ -501,7 +505,7 @@ static void fill_laplacian_matrix(LaplacianSystem * sys)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void validate_solution(LaplacianSystem * sys, short flag, float lambda, float lambda_border)
|
static void validate_solution(LaplacianSystem *sys, short flag)
|
||||||
{
|
{
|
||||||
int i, idv1, idv2;
|
int i, idv1, idv2;
|
||||||
float leni, lene;
|
float leni, lene;
|
||||||
@ -561,7 +565,9 @@ static void laplaciansmoothModifier_do(
|
|||||||
DM_ensure_tessface(dm);
|
DM_ensure_tessface(dm);
|
||||||
|
|
||||||
sys = init_laplacian_system(dm->getNumEdges(dm), dm->getNumTessFaces(dm), numVerts);
|
sys = init_laplacian_system(dm->getNumEdges(dm), dm->getNumTessFaces(dm), numVerts);
|
||||||
if(!sys) return;
|
if (!sys) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
sys->mfaces = dm->getTessFaceArray(dm);
|
sys->mfaces = dm->getTessFaceArray(dm);
|
||||||
sys->medges = dm->getEdgeArray(dm);
|
sys->medges = dm->getEdgeArray(dm);
|
||||||
@ -589,15 +595,11 @@ static void laplaciansmoothModifier_do(
|
|||||||
nlSetVariable(1, i, vertexCos[i][1]);
|
nlSetVariable(1, i, vertexCos[i][1]);
|
||||||
nlSetVariable(2, i, vertexCos[i][2]);
|
nlSetVariable(2, i, vertexCos[i][2]);
|
||||||
if (iter == 0) {
|
if (iter == 0) {
|
||||||
sys->vert_centroid[0] += vertexCos[i][0];
|
add_v3_v3(sys->vert_centroid, vertexCos[i]);
|
||||||
sys->vert_centroid[1] += vertexCos[i][1];
|
|
||||||
sys->vert_centroid[2] += vertexCos[i][2];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (iter == 0 && numVerts > 0) {
|
if (iter == 0 && numVerts > 0) {
|
||||||
sys->vert_centroid[0] = sys->vert_centroid[0] / numVerts;
|
mul_v3_fl(sys->vert_centroid, 1.0f / (float)numVerts);
|
||||||
sys->vert_centroid[1] = sys->vert_centroid[1] / numVerts;
|
|
||||||
sys->vert_centroid[2] = sys->vert_centroid[2] / numVerts;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
nlBegin(NL_MATRIX);
|
nlBegin(NL_MATRIX);
|
||||||
@ -609,9 +611,11 @@ static void laplaciansmoothModifier_do(
|
|||||||
if (dv) {
|
if (dv) {
|
||||||
wpaint = defvert_find_weight(dv, defgrp_index);
|
wpaint = defvert_find_weight(dv, defgrp_index);
|
||||||
dv++;
|
dv++;
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
wpaint = 1.0f;
|
wpaint = 1.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sys->zerola[i] == 0) {
|
if (sys->zerola[i] == 0) {
|
||||||
w = sys->vweights[i] * sys->ring_areas[i];
|
w = sys->vweights[i] * sys->ring_areas[i];
|
||||||
sys->vweights[i] = (w == 0.0f) ? 0.0f : -smd->lambda * wpaint / (4.0f * w);
|
sys->vweights[i] = (w == 0.0f) ? 0.0f : -smd->lambda * wpaint / (4.0f * w);
|
||||||
@ -620,10 +624,12 @@ static void laplaciansmoothModifier_do(
|
|||||||
|
|
||||||
if (sys->numNeEd[i] == sys->numNeFa[i]) {
|
if (sys->numNeEd[i] == sys->numNeFa[i]) {
|
||||||
nlMatrixAdd(i, i, 1.0f + smd->lambda * wpaint / (4.0f * sys->ring_areas[i]));
|
nlMatrixAdd(i, i, 1.0f + smd->lambda * wpaint / (4.0f * sys->ring_areas[i]));
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
nlMatrixAdd(i, i, 1.0f + smd->lambda_border * wpaint * 2.0f);
|
nlMatrixAdd(i, i, 1.0f + smd->lambda_border * wpaint * 2.0f);
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
nlMatrixAdd(i, i, 1.0f);
|
nlMatrixAdd(i, i, 1.0f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -634,7 +640,7 @@ static void laplaciansmoothModifier_do(
|
|||||||
nlEnd(NL_SYSTEM);
|
nlEnd(NL_SYSTEM);
|
||||||
|
|
||||||
if (nlSolveAdvanced(NULL, NL_TRUE)) {
|
if (nlSolveAdvanced(NULL, NL_TRUE)) {
|
||||||
validate_solution(sys, smd->flag, smd->lambda, smd->lambda_border);
|
validate_solution(sys, smd->flag);
|
||||||
}
|
}
|
||||||
nlDeleteContext(sys->context);
|
nlDeleteContext(sys->context);
|
||||||
sys->context = NULL;
|
sys->context = NULL;
|
||||||
@ -684,10 +690,10 @@ ModifierTypeInfo modifierType_LaplacianSmooth = {
|
|||||||
/* deformMatricesEM */ NULL,
|
/* deformMatricesEM */ NULL,
|
||||||
/* applyModifier */ NULL,
|
/* applyModifier */ NULL,
|
||||||
/* applyModifierEM */ NULL,
|
/* applyModifierEM */ NULL,
|
||||||
/* init_data */ init_data,
|
/* initData */ init_data,
|
||||||
/* required_data_mask */ required_data_mask,
|
/* requiredDataMask */ required_data_mask,
|
||||||
/* freeData */ NULL,
|
/* freeData */ NULL,
|
||||||
/* is_disabled */ is_disabled,
|
/* isDisabled */ is_disabled,
|
||||||
/* updateDepgraph */ NULL,
|
/* updateDepgraph */ NULL,
|
||||||
/* dependsOnTime */ NULL,
|
/* dependsOnTime */ NULL,
|
||||||
/* dependsOnNormals */ NULL,
|
/* dependsOnNormals */ NULL,
|
||||||
|
Loading…
Reference in New Issue
Block a user