Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/editors/transform/transform_manipulator.c')
-rw-r--r--source/blender/editors/transform/transform_manipulator.c180
1 files changed, 90 insertions, 90 deletions
diff --git a/source/blender/editors/transform/transform_manipulator.c b/source/blender/editors/transform/transform_manipulator.c
index 86e83715da4..a4e093644c3 100644
--- a/source/blender/editors/transform/transform_manipulator.c
+++ b/source/blender/editors/transform/transform_manipulator.c
@@ -66,7 +66,7 @@
#include "BKE_pointcache.h"
#include "BKE_utildefines.h"
-#include "BLI_arithb.h"
+#include "BLI_math.h"
#include "BLI_editVert.h"
#include "BIF_gl.h"
@@ -116,8 +116,8 @@ static int is_mat4_flipped(float mat[][4])
{
float vec[3];
- Crossf(vec, mat[0], mat[1]);
- if( Inpf(vec, mat[2]) < 0.0 ) return 1;
+ cross_v3_v3v3(vec, mat[0], mat[1]);
+ if( dot_v3v3(vec, mat[2]) < 0.0 ) return 1;
return 0;
}
@@ -129,7 +129,7 @@ static void calc_tw_center(Scene *scene, float *co)
float *max= scene->twmax;
DO_MINMAX(co, min, max);
- VecAddf(twcent, twcent, co);
+ add_v3_v3v3(twcent, twcent, co);
}
static void protectflag_to_drawflags(short protectflag, short *drawflags)
@@ -191,30 +191,30 @@ void gimbal_axis(Object *ob, float gmat[][3])
if(pchan && test_rotmode_euler(pchan->rotmode)) {
float mat[3][3], tmat[3][3], obmat[3][3];
- EulToGimbalAxis(mat, pchan->eul, pchan->rotmode);
+ eulO_to_gimbal_axis(mat, pchan->eul, pchan->rotmode);
/* apply bone transformation */
- Mat3MulMat3(tmat, pchan->bone->bone_mat, mat);
+ mul_m3_m3m3(tmat, pchan->bone->bone_mat, mat);
if (pchan->parent)
{
float parent_mat[3][3];
- Mat3CpyMat4(parent_mat, pchan->parent->pose_mat);
- Mat3MulMat3(mat, parent_mat, tmat);
+ copy_m3_m4(parent_mat, pchan->parent->pose_mat);
+ mul_m3_m3m3(mat, parent_mat, tmat);
/* needed if object transformation isn't identity */
- Mat3CpyMat4(obmat, ob->obmat);
- Mat3MulMat3(gmat, obmat, mat);
+ copy_m3_m4(obmat, ob->obmat);
+ mul_m3_m3m3(gmat, obmat, mat);
}
else
{
/* needed if object transformation isn't identity */
- Mat3CpyMat4(obmat, ob->obmat);
- Mat3MulMat3(gmat, obmat, tmat);
+ copy_m3_m4(obmat, ob->obmat);
+ mul_m3_m3m3(gmat, obmat, tmat);
}
- Mat3Ortho(gmat);
+ normalize_m3(gmat);
}
}
else {
@@ -225,14 +225,14 @@ void gimbal_axis(Object *ob, float gmat[][3])
{
float parent_mat[3][3], amat[3][3];
- EulToGimbalAxis(amat, ob->rot, ob->rotmode);
- Mat3CpyMat4(parent_mat, ob->parent->obmat);
- Mat3Ortho(parent_mat);
- Mat3MulMat3(gmat, parent_mat, amat);
+ eulO_to_gimbal_axis(amat, ob->rot, ob->rotmode);
+ copy_m3_m4(parent_mat, ob->parent->obmat);
+ normalize_m3(parent_mat);
+ mul_m3_m3m3(gmat, parent_mat, amat);
}
else
{
- EulToGimbalAxis(gmat, ob->rot, ob->rotmode);
+ eulO_to_gimbal_axis(gmat, ob->rot, ob->rotmode);
}
}
}
@@ -254,7 +254,7 @@ int calc_manipulator_stats(const bContext *C)
int a, totsel= 0;
/* transform widget matrix */
- Mat4One(rv3d->twmat);
+ unit_m4(rv3d->twmat);
v3d->twdrawflag= 0xFFFF;
@@ -395,10 +395,10 @@ int calc_manipulator_stats(const bContext *C)
/* selection center */
if(totsel) {
- VecMulf(scene->twcent, 1.0f/(float)totsel); // centroid!
- Mat4MulVecfl(obedit->obmat, scene->twcent);
- Mat4MulVecfl(obedit->obmat, scene->twmin);
- Mat4MulVecfl(obedit->obmat, scene->twmax);
+ mul_v3_fl(scene->twcent, 1.0f/(float)totsel); // centroid!
+ mul_m4_v3(obedit->obmat, scene->twcent);
+ mul_m4_v3(obedit->obmat, scene->twmin);
+ mul_m4_v3(obedit->obmat, scene->twmax);
}
}
else if(ob && (ob->mode & OB_MODE_POSE)) {
@@ -415,10 +415,10 @@ int calc_manipulator_stats(const bContext *C)
stats_pose(scene, v3d, pchan);
}
- VecMulf(scene->twcent, 1.0f/(float)totsel); // centroid!
- Mat4MulVecfl(ob->obmat, scene->twcent);
- Mat4MulVecfl(ob->obmat, scene->twmin);
- Mat4MulVecfl(ob->obmat, scene->twmax);
+ mul_v3_fl(scene->twcent, 1.0f/(float)totsel); // centroid!
+ mul_m4_v3(ob->obmat, scene->twcent);
+ mul_m4_v3(ob->obmat, scene->twmin);
+ mul_m4_v3(ob->obmat, scene->twmax);
}
}
else if(ob && (ob->mode & (OB_MODE_SCULPT|OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT))) {
@@ -445,7 +445,7 @@ int calc_manipulator_stats(const bContext *C)
/* selection center */
if(totsel)
- VecMulf(scene->twcent, 1.0f/(float)totsel); // centroid!
+ mul_v3_fl(scene->twcent, 1.0f/(float)totsel); // centroid!
}
}
else {
@@ -466,7 +466,7 @@ int calc_manipulator_stats(const bContext *C)
/* selection center */
if(totsel) {
- VecMulf(scene->twcent, 1.0f/(float)totsel); // centroid!
+ mul_v3_fl(scene->twcent, 1.0f/(float)totsel); // centroid!
}
}
@@ -481,37 +481,37 @@ int calc_manipulator_stats(const bContext *C)
case V3D_MANIP_GIMBAL:
{
float mat[3][3];
- Mat3One(mat);
+ unit_m3(mat);
gimbal_axis(ob, mat);
- Mat4CpyMat3(rv3d->twmat, mat);
+ copy_m4_m3(rv3d->twmat, mat);
break;
}
case V3D_MANIP_NORMAL:
if(obedit || ob->mode & OB_MODE_POSE) {
float mat[3][3];
ED_getTransformOrientationMatrix(C, mat, (v3d->around == V3D_ACTIVE));
- Mat4CpyMat3(rv3d->twmat, mat);
+ copy_m4_m3(rv3d->twmat, mat);
break;
}
/* no break we define 'normal' as 'local' in Object mode */
case V3D_MANIP_LOCAL:
- Mat4CpyMat4(rv3d->twmat, ob->obmat);
- Mat4Ortho(rv3d->twmat);
+ copy_m4_m4(rv3d->twmat, ob->obmat);
+ normalize_m4(rv3d->twmat);
break;
case V3D_MANIP_VIEW:
{
float mat[3][3];
- Mat3CpyMat4(mat, rv3d->viewinv);
- Mat3Ortho(mat);
- Mat4CpyMat3(rv3d->twmat, mat);
+ copy_m3_m4(mat, rv3d->viewinv);
+ normalize_m3(mat);
+ copy_m4_m3(rv3d->twmat, mat);
}
break;
default: /* V3D_MANIP_CUSTOM */
{
float mat[3][3];
applyTransformOrientation(C, mat, NULL);
- Mat4CpyMat3(rv3d->twmat, mat);
+ copy_m4_m3(rv3d->twmat, mat);
break;
}
}
@@ -528,7 +528,7 @@ static float screen_aligned(RegionView3D *rv3d, float mat[][4])
float vec[3], size;
VECCOPY(vec, mat[0]);
- size= Normalize(vec);
+ size= normalize_v3(vec);
glTranslatef(mat[3][0], mat[3][1], mat[3][2]);
@@ -709,8 +709,8 @@ static void preOrtho(int ortho, float twmat[][4], int axis)
{
if (ortho == 0) {
float omat[4][4];
- Mat4CpyMat4(omat, twmat);
- Mat4Orthogonal(omat, axis);
+ copy_m4_m4(omat, twmat);
+ orthogonalize_m4(omat, axis);
glPushMatrix();
wmMultMatrix(omat);
}
@@ -720,8 +720,8 @@ static void preOrthoFront(int ortho, float twmat[][4], int axis)
{
if (ortho == 0) {
float omat[4][4];
- Mat4CpyMat4(omat, twmat);
- Mat4Orthogonal(omat, axis);
+ copy_m4_m4(omat, twmat);
+ orthogonalize_m4(omat, axis);
glPushMatrix();
wmMultMatrix(omat);
glFrontFace( is_mat4_flipped(omat)?GL_CW:GL_CCW);
@@ -753,8 +753,8 @@ static void draw_manipulator_rotate_ghost(View3D *v3d, RegionView3D *rv3d, int d
glEnable(GL_BLEND);
/* we need both [4][4] transforms, t->mat seems to be premul, not post for mat[][4] */
- Mat4CpyMat4(matt, rv3d->twmat); // to copy the parts outside of [3][3]
-// XXX Mat4MulMat34(matt, t->mat, rv3d->twmat);
+ copy_m4_m4(matt, rv3d->twmat); // to copy the parts outside of [3][3]
+// XXX mul_m4_m3m4(matt, t->mat, rv3d->twmat);
/* Screen aligned view rot circle */
if(drawflags & MAN_ROT_V) {
@@ -766,7 +766,7 @@ static void draw_manipulator_rotate_ghost(View3D *v3d, RegionView3D *rv3d, int d
vec[0]= 0; // XXX (float)(t->con.imval[0] - t->center2d[0]);
vec[1]= 0; // XXX (float)(t->con.imval[1] - t->center2d[1]);
vec[2]= 0.0f;
- Normalize(vec);
+ normalize_v3(vec);
startphi= saacos( vec[1] );
if(vec[0]<0.0) startphi= -startphi;
@@ -788,16 +788,16 @@ static void draw_manipulator_rotate_ghost(View3D *v3d, RegionView3D *rv3d, int d
svec[2]= 0.0f;
/* screen aligned vec transform back to manipulator space */
- Mat3CpyMat4(ivmat, rv3d->viewinv);
- Mat3CpyMat4(tmat, rv3d->twmat);
- Mat3Inv(imat, tmat);
- Mat3MulMat3(tmat, imat, ivmat);
+ copy_m3_m4(ivmat, rv3d->viewinv);
+ copy_m3_m4(tmat, rv3d->twmat);
+ invert_m3_m3(imat, tmat);
+ mul_m3_m3m3(tmat, imat, ivmat);
- Mat3MulVecfl(tmat, svec); // tmat is used further on
- Normalize(svec);
+ mul_m3_v3(tmat, svec); // tmat is used further on
+ normalize_v3(svec);
}
- ortho = IsMat4Orthogonal(rv3d->twmat);
+ ortho = is_orthogonal_m4(rv3d->twmat);
if (ortho) {
wmMultMatrix(rv3d->twmat); // aligns with original widget
@@ -812,19 +812,19 @@ static void draw_manipulator_rotate_ghost(View3D *v3d, RegionView3D *rv3d, int d
/* correct for squeezed arc */
svec[0]+= tmat[2][0];
svec[1]+= tmat[2][1];
- Normalize(svec);
+ normalize_v3(svec);
startphi= (float)atan2(svec[0], svec[1]);
}
else startphi= 0.5f*(float)M_PI;
VECCOPY(vec, rv3d->twmat[0]); // use x axis to detect rotation
- Normalize(vec);
- Normalize(matt[0]);
- phi= saacos( Inpf(vec, matt[0]) );
+ normalize_v3(vec);
+ normalize_v3(matt[0]);
+ phi= saacos( dot_v3v3(vec, matt[0]) );
if(phi!=0.0) {
- Crossf(cross, vec, matt[0]); // results in z vector
- if(Inpf(cross, rv3d->twmat[2]) > 0.0) phi= -phi;
+ cross_v3_v3v3(cross, vec, matt[0]); // results in z vector
+ if(dot_v3v3(cross, rv3d->twmat[2]) > 0.0) phi= -phi;
gluPartialDisk(qobj, 0.0, 1.0, 32, 1, 180.0*startphi/M_PI, 180.0*(phi)/M_PI);
}
@@ -838,19 +838,19 @@ static void draw_manipulator_rotate_ghost(View3D *v3d, RegionView3D *rv3d, int d
/* correct for squeezed arc */
svec[1]+= tmat[2][1];
svec[2]+= tmat[2][2];
- Normalize(svec);
+ normalize_v3(svec);
startphi= (float)(M_PI + atan2(svec[2], -svec[1]));
}
else startphi= 0.0f;
VECCOPY(vec, rv3d->twmat[1]); // use y axis to detect rotation
- Normalize(vec);
- Normalize(matt[1]);
- phi= saacos( Inpf(vec, matt[1]) );
+ normalize_v3(vec);
+ normalize_v3(matt[1]);
+ phi= saacos( dot_v3v3(vec, matt[1]) );
if(phi!=0.0) {
- Crossf(cross, vec, matt[1]); // results in x vector
- if(Inpf(cross, rv3d->twmat[0]) > 0.0) phi= -phi;
+ cross_v3_v3v3(cross, vec, matt[1]); // results in x vector
+ if(dot_v3v3(cross, rv3d->twmat[0]) > 0.0) phi= -phi;
glRotatef(90.0, 0.0, 1.0, 0.0);
gluPartialDisk(qobj, 0.0, 1.0, 32, 1, 180.0*startphi/M_PI, 180.0*phi/M_PI);
glRotatef(-90.0, 0.0, 1.0, 0.0);
@@ -866,19 +866,19 @@ static void draw_manipulator_rotate_ghost(View3D *v3d, RegionView3D *rv3d, int d
/* correct for squeezed arc */
svec[0]+= tmat[2][0];
svec[2]+= tmat[2][2];
- Normalize(svec);
+ normalize_v3(svec);
startphi= (float)(M_PI + atan2(-svec[0], svec[2]));
}
else startphi= (float)M_PI;
VECCOPY(vec, rv3d->twmat[2]); // use z axis to detect rotation
- Normalize(vec);
- Normalize(matt[2]);
- phi= saacos( Inpf(vec, matt[2]) );
+ normalize_v3(vec);
+ normalize_v3(matt[2]);
+ phi= saacos( dot_v3v3(vec, matt[2]) );
if(phi!=0.0) {
- Crossf(cross, vec, matt[2]); // results in y vector
- if(Inpf(cross, rv3d->twmat[1]) > 0.0) phi= -phi;
+ cross_v3_v3v3(cross, vec, matt[2]); // results in y vector
+ if(dot_v3v3(cross, rv3d->twmat[1]) > 0.0) phi= -phi;
glRotatef(-90.0, 1.0, 0.0, 0.0);
gluPartialDisk(qobj, 0.0, 1.0, 32, 1, 180.0*startphi/M_PI, 180.0*phi/M_PI);
glRotatef(90.0, 1.0, 0.0, 0.0);
@@ -911,14 +911,14 @@ static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving,
/* Init stuff */
glDisable(GL_DEPTH_TEST);
- Mat4One(unitmat);
+ unit_m4(unitmat);
qobj= gluNewQuadric();
gluQuadricDrawStyle(qobj, GLU_FILL);
/* prepare for screen aligned draw */
VECCOPY(vec, rv3d->twmat[0]);
- size= Normalize(vec);
+ size= normalize_v3(vec);
glPushMatrix();
glTranslatef(rv3d->twmat[3][0], rv3d->twmat[3][1], rv3d->twmat[3][2]);
@@ -958,8 +958,8 @@ static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving,
vec[0]= 0; // XXX (float)(t->imval[0] - t->center2d[0]);
vec[1]= 0; // XXX (float)(t->imval[1] - t->center2d[1]);
vec[2]= 0.0f;
- Normalize(vec);
- VecMulf(vec, 1.2f*size);
+ normalize_v3(vec);
+ mul_v3_fl(vec, 1.2f*size);
glBegin(GL_LINES);
glVertex3f(0.0f, 0.0f, 0.0f);
glVertex3fv(vec);
@@ -969,12 +969,12 @@ static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving,
glPopMatrix();
- ortho = IsMat4Orthogonal(rv3d->twmat);
+ ortho = is_orthogonal_m4(rv3d->twmat);
/* apply the transform delta */
if(moving) {
- Mat4CpyMat4(matt, rv3d->twmat); // to copy the parts outside of [3][3]
- // XXX Mat4MulMat34(matt, t->mat, rv3d->twmat);
+ copy_m4_m4(matt, rv3d->twmat); // to copy the parts outside of [3][3]
+ // XXX mul_m4_m3m4(matt, t->mat, rv3d->twmat);
if (ortho) {
wmMultMatrix(matt);
glFrontFace( is_mat4_flipped(matt)?GL_CW:GL_CCW);
@@ -1229,7 +1229,7 @@ static void draw_manipulator_scale(View3D *v3d, RegionView3D *rv3d, int moving,
manipulator_setcolor(v3d, 'c', colcode);
glPushMatrix();
size= screen_aligned(rv3d, rv3d->twmat);
- Mat4One(unitmat);
+ unit_m4(unitmat);
drawcircball(GL_LINE_LOOP, unitmat[3], 0.2f*size, unitmat);
glPopMatrix();
@@ -1240,8 +1240,8 @@ static void draw_manipulator_scale(View3D *v3d, RegionView3D *rv3d, int moving,
if(moving) {
float matt[4][4];
- Mat4CpyMat4(matt, rv3d->twmat); // to copy the parts outside of [3][3]
- // XXX Mat4MulMat34(matt, t->mat, rv3d->twmat);
+ copy_m4_m4(matt, rv3d->twmat); // to copy the parts outside of [3][3]
+ // XXX mul_m4_m3m4(matt, t->mat, rv3d->twmat);
wmMultMatrix(matt);
glFrontFace( is_mat4_flipped(matt)?GL_CW:GL_CCW);
}
@@ -1347,7 +1347,7 @@ static void draw_manipulator_translate(View3D *v3d, RegionView3D *rv3d, int movi
manipulator_setcolor(v3d, 'c', colcode);
glPushMatrix();
size= screen_aligned(rv3d, rv3d->twmat);
- Mat4One(unitmat);
+ unit_m4(unitmat);
drawcircball(GL_LINE_LOOP, unitmat[3], 0.2f*size, unitmat);
glPopMatrix();
@@ -1420,7 +1420,7 @@ static void draw_manipulator_rotate_cyl(View3D *v3d, RegionView3D *rv3d, int mov
/* Screen aligned view rot circle */
if(drawflags & MAN_ROT_V) {
float unitmat[4][4];
- Mat4One(unitmat);
+ unit_m4(unitmat);
if(G.f & G_PICKSEL) glLoadName(MAN_ROT_V);
UI_ThemeColor(TH_TRANSFORM);
@@ -1431,8 +1431,8 @@ static void draw_manipulator_rotate_cyl(View3D *v3d, RegionView3D *rv3d, int mov
vec[0]= 0; // XXX (float)(t->imval[0] - t->center2d[0]);
vec[1]= 0; // XXX (float)(t->imval[1] - t->center2d[1]);
vec[2]= 0.0f;
- Normalize(vec);
- VecMulf(vec, 1.2f*size);
+ normalize_v3(vec);
+ mul_v3_fl(vec, 1.2f*size);
glBegin(GL_LINES);
glVertex3f(0.0, 0.0, 0.0);
glVertex3fv(vec);
@@ -1444,9 +1444,9 @@ static void draw_manipulator_rotate_cyl(View3D *v3d, RegionView3D *rv3d, int mov
/* apply the transform delta */
if(moving) {
float matt[4][4];
- Mat4CpyMat4(matt, rv3d->twmat); // to copy the parts outside of [3][3]
+ copy_m4_m4(matt, rv3d->twmat); // to copy the parts outside of [3][3]
// XXX if (t->flag & T_USES_MANIPULATOR) {
- // XXX Mat4MulMat34(matt, t->mat, rv3d->twmat);
+ // XXX mul_m4_m3m4(matt, t->mat, rv3d->twmat);
// XXX }
wmMultMatrix(matt);
}
@@ -1563,7 +1563,7 @@ void BIF_draw_manipulator(const bContext *C)
break;
}
- Mat4MulFloat3((float *)rv3d->twmat, get_manipulator_drawsize(ar));
+ mul_mat3_m4_fl((float *)rv3d->twmat, get_manipulator_drawsize(ar));
}
if(v3d->twflag & V3D_DRAW_MANIPULATOR) {
@@ -1622,7 +1622,7 @@ static int manipulator_selectbuf(ScrArea *sa, ARegion *ar, short *mval, float ho
rect.ymax= mval[1]+hotspot;
setwinmatrixview3d(ar, v3d, &rect);
- Mat4MulMat4(rv3d->persmat, rv3d->viewmat, rv3d->winmat);
+ mul_m4_m4m4(rv3d->persmat, rv3d->viewmat, rv3d->winmat);
glSelectBuffer( 64, buffer);
glRenderMode(GL_SELECT);
@@ -1644,7 +1644,7 @@ static int manipulator_selectbuf(ScrArea *sa, ARegion *ar, short *mval, float ho
G.f &= ~G_PICKSEL;
setwinmatrixview3d(ar, v3d, NULL);
- Mat4MulMat4(rv3d->persmat, rv3d->viewmat, rv3d->winmat);
+ mul_m4_m4m4(rv3d->persmat, rv3d->viewmat, rv3d->winmat);
if(hits==1) return buffer[3];
else if(hits>1) {