gcc compile fix, removed duplicate symbols
This commit is contained in:
@@ -3440,160 +3440,6 @@ void mesh_set_face_flags(EditMesh *em, short mode)
|
||||
}
|
||||
#endif
|
||||
|
||||
/************************ Shape Operators *************************/
|
||||
|
||||
#if 0
|
||||
void shape_propagate(Scene *scene, Object *obedit, EditMesh *em, wmOperator *op)
|
||||
{
|
||||
EditVert *ev = NULL;
|
||||
Mesh* me = (Mesh*)obedit->data;
|
||||
Key* ky = NULL;
|
||||
KeyBlock* kb = NULL;
|
||||
Base* base=NULL;
|
||||
|
||||
|
||||
if(me->key){
|
||||
ky = me->key;
|
||||
} else {
|
||||
BKE_report(op->reports, RPT_ERROR, "Object Has No Key");
|
||||
return;
|
||||
}
|
||||
|
||||
if(ky->block.first){
|
||||
for(ev = em->verts.first; ev ; ev = ev->next){
|
||||
if(ev->f & SELECT){
|
||||
for(kb=ky->block.first;kb;kb = kb->next){
|
||||
float *data;
|
||||
data = kb->data;
|
||||
VECCOPY(data+(ev->keyindex*3),ev->co);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
BKE_report(op->reports, RPT_ERROR, "Object Has No Blendshapes");
|
||||
return;
|
||||
}
|
||||
|
||||
//TAG Mesh Objects that share this data
|
||||
for(base = scene->base.first; base; base = base->next){
|
||||
if(base->object && base->object->data == me){
|
||||
base->object->recalc = OB_RECALC_DATA;
|
||||
}
|
||||
}
|
||||
|
||||
DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
static int blend_from_shape_exec(bContext *C, wmOperator *op)
|
||||
{
|
||||
#if 0 //BMESH_TODO
|
||||
EditVert *ev = NULL;
|
||||
short mval[2], curval[2], event = 0, finished = 0, canceled = 0, fullcopy=0 ;
|
||||
float perc = 0;
|
||||
char str[64];
|
||||
float *data, *odata;
|
||||
Object *obedit= CTX_data_edit_object(C);
|
||||
Mesh *me= obedit->data;
|
||||
Key *key= me->key;
|
||||
EditMesh *em= BKE_mesh_get_editmesh(me);
|
||||
EditVert *eve;
|
||||
KeyBlock *kb;
|
||||
float *data, co[3];
|
||||
float blend= RNA_float_get(op->ptr, "blend");
|
||||
int shape= RNA_enum_get(op->ptr, "shape");
|
||||
int add= RNA_int_get(op->ptr, "add");
|
||||
int blended= 0;
|
||||
|
||||
if(key && (kb= BLI_findlink(&key->block, shape))) {
|
||||
data= kb->data;
|
||||
|
||||
for(eve=em->verts.first; eve; eve=eve->next){
|
||||
if(eve->f & SELECT) {
|
||||
if(eve->keyindex >= 0 && eve->keyindex < kb->totelem) {
|
||||
VECCOPY(co, data + eve->keyindex*3);
|
||||
|
||||
if(add) {
|
||||
VecMulf(co, blend);
|
||||
VecAddf(eve->co, eve->co, co);
|
||||
}
|
||||
else
|
||||
VecLerpf(eve->co, eve->co, co, blend);
|
||||
|
||||
blended= 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!canceled);
|
||||
else
|
||||
for(ev = em->verts.first; ev ; ev = ev->next){
|
||||
if(ev->f & SELECT){
|
||||
VECCOPY(ev->co, odata+(ev->keyindex*3));
|
||||
}
|
||||
}
|
||||
return;
|
||||
#endif
|
||||
return OPERATOR_CANCELLED;
|
||||
}
|
||||
|
||||
static EnumPropertyItem *shape_itemf(bContext *C, PointerRNA *ptr, int *free)
|
||||
{
|
||||
Object *obedit= CTX_data_edit_object(C);
|
||||
Mesh *me= (obedit) ? obedit->data : NULL;
|
||||
Key *key;
|
||||
KeyBlock *kb, *actkb;
|
||||
EnumPropertyItem tmp= {0, "", 0, "", ""}, *item= NULL;
|
||||
int totitem= 0, a;
|
||||
|
||||
if(obedit && obedit->type == OB_MESH) {
|
||||
key= me->key;
|
||||
actkb= ob_get_keyblock(obedit);
|
||||
|
||||
if(key && actkb) {
|
||||
for(kb=key->block.first, a=0; kb; kb=kb->next, a++) {
|
||||
if(kb != actkb) {
|
||||
tmp.value= a;
|
||||
tmp.identifier= kb->name;
|
||||
tmp.name= kb->name;
|
||||
RNA_enum_item_add(&item, &totitem, &tmp);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RNA_enum_item_end(&item, &totitem);
|
||||
*free= 1;
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
void MESH_OT_blend_from_shape(wmOperatorType *ot)
|
||||
{
|
||||
PropertyRNA *prop;
|
||||
static EnumPropertyItem shape_items[]= {{0, NULL, 0, NULL, NULL}};
|
||||
|
||||
/* identifiers */
|
||||
ot->name= "Blend From Shape";
|
||||
ot->description= "Blend in shape from a shape key.";
|
||||
ot->idname= "MESH_OT_blend_from_shape";
|
||||
|
||||
/* api callbacks */
|
||||
ot->exec= blend_from_shape_exec;
|
||||
ot->invoke= WM_operator_props_popup;
|
||||
ot->poll= ED_operator_editmesh;
|
||||
|
||||
/* flags */
|
||||
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
|
||||
|
||||
/* properties */
|
||||
prop= RNA_def_enum(ot->srna, "shape", shape_items, 0, "Shape", "Shape key to use for blending.");
|
||||
RNA_def_enum_funcs(prop, shape_itemf);
|
||||
RNA_def_float(ot->srna, "blend", 1.0f, -FLT_MAX, FLT_MAX, "Blend", "Blending factor.", -2.0f, 2.0f);
|
||||
RNA_def_boolean(ot->srna, "add", 1, "Add", "Add rather then blend between shapes.");
|
||||
}
|
||||
|
||||
/************************ Merge Operator *************************/
|
||||
|
||||
/* Collection Routines|Currently used by the improved merge code*/
|
||||
|
||||
Reference in New Issue
Block a user