[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56310] branches/soc-2011-tomato/source/ blender/editors/space_view3d/drawobject.c: Made bundles in 3D viewport have constant size
Sergey Sharybin
sergey.vfx at gmail.com
Fri Apr 26 13:43:19 CEST 2013
Revision: 56310
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56310
Author: nazgul
Date: 2013-04-26 11:43:19 +0000 (Fri, 26 Apr 2013)
Log Message:
-----------
Made bundles in 3D viewport have constant size
This means bundles' size is not affected by camera scale.
This way it's more useful to work with -- bundles never
becomes too small or too large (depending on reconstructed
scene scale).
Modified Paths:
--------------
branches/soc-2011-tomato/source/blender/editors/space_view3d/drawobject.c
Modified: branches/soc-2011-tomato/source/blender/editors/space_view3d/drawobject.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/space_view3d/drawobject.c 2013-04-26 11:31:54 UTC (rev 56309)
+++ branches/soc-2011-tomato/source/blender/editors/space_view3d/drawobject.c 2013-04-26 11:43:19 UTC (rev 56310)
@@ -1482,12 +1482,20 @@
unsigned char col_unsel[4], col_sel[4];
int tracknr = *global_track_index;
ListBase *tracksbase = BKE_tracking_object_get_tracks(tracking, tracking_object);
+ float camera_size[3];
UI_GetThemeColor4ubv(TH_TEXT, col_unsel);
UI_GetThemeColor4ubv(TH_SELECT, col_sel);
BKE_tracking_get_camera_object_matrix(scene, base->object, mat);
+ /* we're compensating camera size for bundles size,
+ * to make it so bundles are always displayed with the same size
+ */
+ copy_v3_v3(camera_size, base->object->size);
+ if ((tracking_object->flag & TRACKING_OBJECT_CAMERA) == 0)
+ mul_v3_fl(camera_size, tracking_object->scale);
+
glPushMatrix();
if (tracking_object->flag & TRACKING_OBJECT_CAMERA) {
@@ -1522,7 +1530,9 @@
glPushMatrix();
glTranslatef(track->bundle_pos[0], track->bundle_pos[1], track->bundle_pos[2]);
- glScalef(v3d->bundle_size / 0.05f, v3d->bundle_size / 0.05f, v3d->bundle_size / 0.05f);
+ glScalef(v3d->bundle_size / 0.05f / camera_size[0],
+ v3d->bundle_size / 0.05f / camera_size[1],
+ v3d->bundle_size / 0.05f / camera_size[2]);
if (v3d->drawtype == OB_WIRE) {
glDisable(GL_LIGHTING);
More information about the Bf-blender-cvs
mailing list