[Bf-blender-cvs] [4a6802b] master: Transform: internal changes for orientations calculations.

Campbell Barton noreply at git.blender.org
Mon Nov 25 00:39:20 CET 2013


Commit: 4a6802b00b38ca03f6f8d75e5b2a786b4a3c1a16
Author: Campbell Barton
Date:   Mon Nov 25 07:49:49 2013 +1100
http://developer.blender.org/rB4a6802b00b38ca03f6f8d75e5b2a786b4a3c1a16

Transform: internal changes for orientations calculations.

- use (const char *) for the 'name'
- use bool where possible.
- remove unused return value for initTransInfo

===================================================================

M	source/blender/editors/include/ED_transform.h
M	source/blender/editors/transform/transform.c
M	source/blender/editors/transform/transform.h
M	source/blender/editors/transform/transform_generics.c
M	source/blender/editors/transform/transform_orientations.c

===================================================================

diff --git a/source/blender/editors/include/ED_transform.h b/source/blender/editors/include/ED_transform.h
index dde1aa3..6e5c2aa 100644
--- a/source/blender/editors/include/ED_transform.h
+++ b/source/blender/editors/include/ED_transform.h
@@ -121,8 +121,9 @@ struct ReportList;
 void BIF_clearTransformOrientation(struct bContext *C);
 void BIF_removeTransformOrientation(struct bContext *C, struct TransformOrientation *ts);
 void BIF_removeTransformOrientationIndex(struct bContext *C, int index);
-void BIF_createTransformOrientation(struct bContext *C, struct ReportList *reports, char *name, int use_view,
-                                    int use, int overwrite);
+void BIF_createTransformOrientation(struct bContext *C, struct ReportList *reports,
+                                    const char *name, const bool use_view,
+                                    const bool activate, const bool overwrite);
 void BIF_selectTransformOrientation(struct bContext *C, struct TransformOrientation *ts);
 void BIF_selectTransformOrientationValue(struct bContext *C, int orientation);
 
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c
index 2756685..f88d836 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -1468,7 +1468,7 @@ int calculateTransformCenter(bContext *C, int centerMode, float cent3d[3], float
 
 	t->mode = TFM_DUMMY;
 
-	initTransInfo(C, t, NULL, NULL);    // internal data, mouse, vectors
+	initTransInfo(C, t, NULL, NULL);
 
 	/* avoid doing connectivity lookups (when V3D_LOCAL is set) */
 	t->around = V3D_CENTER;
@@ -1970,9 +1970,7 @@ int initTransform(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *even
 		t->launch_event = LEFTMOUSE;
 	}
 
-	if (!initTransInfo(C, t, op, event)) {  /* internal data, mouse, vectors */
-		return 0;
-	}
+	initTransInfo(C, t, op, event);
 
 	if (t->spacetype == SPACE_VIEW3D) {
 		//calc_manipulator_stats(curarea);
diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h
index ab5f034..164ad74 100644
--- a/source/blender/editors/transform/transform.h
+++ b/source/blender/editors/transform/transform.h
@@ -615,7 +615,7 @@ void setInputPostFct(MouseInput *mi, void	(*post)(struct TransInfo *t, float val
 
 /*********************** Generics ********************************/
 
-int initTransInfo(struct bContext *C, TransInfo *t, struct wmOperator *op, const struct wmEvent *event);
+void initTransInfo(struct bContext *C, TransInfo *t, struct wmOperator *op, const struct wmEvent *event);
 void postTrans(struct bContext *C, TransInfo *t);
 void resetTransModal(TransInfo *t);
 void resetTransRestrictions(TransInfo *t);
@@ -648,8 +648,9 @@ void initTransformOrientation(struct bContext *C, TransInfo *t);
 bool createSpaceNormal(float mat[3][3], const float normal[3]);
 bool createSpaceNormalTangent(float mat[3][3], const float normal[3], const float tangent[3]);
 
-struct TransformOrientation *addMatrixSpace(struct bContext *C, float mat[3][3], char name[], int overwrite);
-void applyTransformOrientation(const struct bContext *C, float mat[3][3], char *name);
+struct TransformOrientation *addMatrixSpace(struct bContext *C, float mat[3][3],
+                                            const char *name, const bool overwrite);
+void applyTransformOrientation(const struct bContext *C, float mat[3][3], char r_name[64]);
 
 #define ORIENTATION_NONE	0
 #define ORIENTATION_NORMAL	1
@@ -657,7 +658,7 @@ void applyTransformOrientation(const struct bContext *C, float mat[3][3], char *
 #define ORIENTATION_EDGE	3
 #define ORIENTATION_FACE	4
 
-int getTransformOrientation(const struct bContext *C, float normal[3], float plane[3], int activeOnly);
+int getTransformOrientation(const struct bContext *C, float normal[3], float plane[3], const bool activeOnly);
 
 void freeEdgeSlideTempFaces(EdgeSlideData *sld);
 void freeEdgeSlideVerts(TransInfo *t);
diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c
index 95b6067..0ff94fb 100644
--- a/source/blender/editors/transform/transform_generics.c
+++ b/source/blender/editors/transform/transform_generics.c
@@ -1029,8 +1029,12 @@ static int initTransInfo_edit_pet_to_flag(const int proportional)
 	}
 }
 
-/* the *op can be NULL */
-int initTransInfo(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *event)
+/**
+ * Setup internal data, mouse, vectors
+ *
+ * \note \a op and \a event can be NULL
+ */
+void initTransInfo(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *event)
 {
 	Scene *sce = CTX_data_scene(C);
 	ToolSettings *ts = CTX_data_tool_settings(C);
@@ -1321,8 +1325,6 @@ int initTransInfo(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *even
 
 	setTransformViewMatrices(t);
 	initNumInput(&t->num);
-	
-	return 1;
 }
 
 /* Here I would suggest only TransInfo related issues, like free data & reset vars. Not redraws */
diff --git a/source/blender/editors/transform/transform_orientations.c b/source/blender/editors/transform/transform_orientations.c
index cd6a2e6..9a50c0c 100644
--- a/source/blender/editors/transform/transform_orientations.c
+++ b/source/blender/editors/transform/transform_orientations.c
@@ -78,15 +78,7 @@ void BIF_clearTransformOrientation(bContext *C)
 
 static TransformOrientation *findOrientationName(ListBase *lb, const char *name)
 {
-	TransformOrientation *ts = NULL;
-
-	for (ts = lb->first; ts; ts = ts->next) {
-		if (strncmp(ts->name, name, sizeof(ts->name) - 1) == 0) {
-			return ts;
-		}
-	}
-	
-	return NULL;
+	return BLI_findstring(lb, name, offsetof(TransformOrientation, name));
 }
 
 static bool uniqueOrientationNameCheck(void *arg, const char *name)
@@ -100,7 +92,8 @@ static void uniqueOrientationName(ListBase *lb, char *name)
 	                  sizeof(((TransformOrientation *)NULL)->name));
 }
 
-static TransformOrientation *createViewSpace(bContext *C, ReportList *UNUSED(reports), char *name, int overwrite)
+static TransformOrientation *createViewSpace(bContext *C, ReportList *UNUSED(reports),
+                                             const char *name, const bool overwrite)
 {
 	RegionView3D *rv3d = CTX_wm_region_view3d(C);
 	float mat[3][3];
@@ -111,21 +104,22 @@ static TransformOrientation *createViewSpace(bContext *C, ReportList *UNUSED(rep
 	copy_m3_m4(mat, rv3d->viewinv);
 	normalize_m3(mat);
 
-	if (!name[0]) {
+	if (name[0] == 0) {
 		View3D *v3d = CTX_wm_view3d(C);
 		if (rv3d->persp == RV3D_CAMOB && v3d->camera) {
 			/* If an object is used as camera, then this space is the same as object space! */
-			BLI_strncpy(name, v3d->camera->id.name + 2, MAX_NAME);
+			name = v3d->camera->id.name + 2;
 		}
 		else {
-			strcpy(name, "Custom View");
+			name = "Custom View";
 		}
 	}
 
 	return addMatrixSpace(C, mat, name, overwrite);
 }
 
-static TransformOrientation *createObjectSpace(bContext *C, ReportList *UNUSED(reports), char *name, int overwrite)
+static TransformOrientation *createObjectSpace(bContext *C, ReportList *UNUSED(reports),
+                                               const char *name, const bool overwrite)
 {
 	Base *base = CTX_data_active_base(C);
 	Object *ob;
@@ -141,13 +135,14 @@ static TransformOrientation *createObjectSpace(bContext *C, ReportList *UNUSED(r
 
 	/* use object name if no name is given */
 	if (name[0] == 0) {
-		BLI_strncpy(name, ob->id.name + 2, MAX_ID_NAME - 2);
+		name = ob->id.name + 2;
 	}
 
 	return addMatrixSpace(C, mat, name, overwrite);
 }
 
-static TransformOrientation *createBoneSpace(bContext *C, ReportList *reports, char *name, int overwrite)
+static TransformOrientation *createBoneSpace(bContext *C, ReportList *reports,
+                                             const char *name, const bool overwrite)
 {
 	float mat[3][3];
 	float normal[3], plane[3];
@@ -160,13 +155,14 @@ static TransformOrientation *createBoneSpace(bContext *C, ReportList *reports, c
 	}
 
 	if (name[0] == 0) {
-		strcpy(name, "Bone");
+		name = "Bone";
 	}
 
 	return addMatrixSpace(C, mat, name, overwrite);
 }
 
-static TransformOrientation *createCurveSpace(bContext *C, ReportList *reports, char *name, int overwrite)
+static TransformOrientation *createCurveSpace(bContext *C, ReportList *reports,
+                                              const char *name, const bool overwrite)
 {
 	float mat[3][3];
 	float normal[3], plane[3];
@@ -179,14 +175,15 @@ static TransformOrientation *createCurveSpace(bContext *C, ReportList *reports,
 	}
 
 	if (name[0] == 0) {
-		strcpy(name, "Curve");
+		name = "Curve";
 	}
 
 	return addMatrixSpace(C, mat, name, overwrite);
 }
 
 
-static TransformOrientation *createMeshSpace(bContext *C, ReportList *reports, char *name, int overwrite)
+static TransformOrientation *createMeshSpace(bContext *C, ReportList *reports,
+                                             const char *name, const bool overwrite)
 {
 	float mat[3][3];
 	float normal[3], plane[3];
@@ -202,7 +199,7 @@ static TransformOrientation *createMeshSpace(bContext *C, ReportList *reports, c
 			}
 	
 			if (name[0] == 0) {
-				strcpy(name, "Vertex");
+				name = "Vertex";
 			}
 			break;
 		case ORIENTATION_EDGE:
@@ -212,7 +209,7 @@ static TransformOrientation *createMeshSpace(bContext *C, ReportList *reports, c
 			}
 	
 			if (name[0] == 0) {
-				strcpy(name, "Edge");
+				name = "Edge";
 			}
 			break;
 		case ORIENTATION_FACE:
@@ -222,7 +219,7 @@ static TransformOrientation *createMeshSpace(bContext *C, ReportList *reports, c
 			}
 	
 			if (name[0] == 0) {
-				strcpy(name, "Face");
+				name = "Face";
 			}
 			break;
 		default:
@@ -288,8 +285,9 @@ bool createSpaceNormalTangent(float mat[3][3], const float normal[3], const floa
 	return true;
 }
 
-/* name must be a MAX_NAME length string! */
-void BIF_createTransformOrientation(bContext *C, ReportList *reports, char *name, int use_view, int use, int overwrite)
+void BIF_createTransformOrientation(bContext *C, ReportList *reports,
+                                    const char *name, const bool use_view,
+                                    const bool activate, const bool overwrite)
 {
 	TransformOrientation *ts =

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list