[Bf-blender-cvs] [c556dc4] multiview: Merge remote-tracking branch 'origin/master' into multiview

Dalai Felinto noreply at git.blender.org
Fri Aug 29 00:29:45 CEST 2014


Commit: c556dc44dac1a93fc23210f537cbcea912bc495f
Author: Dalai Felinto
Date:   Thu Aug 28 11:53:11 2014 +0200
Branches: multiview
https://developer.blender.org/rBc556dc44dac1a93fc23210f537cbcea912bc495f

Merge remote-tracking branch 'origin/master' into multiview

Conflicts:
	source/blender/blenkernel/BKE_scene.h
	source/blender/blenkernel/intern/scene.c
	source/blender/blenloader/intern/versioning_270.c

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



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

diff --cc source/blender/blenkernel/BKE_scene.h
index 2dee362,1bfe0ee..ec0798a
--- a/source/blender/blenkernel/BKE_scene.h
+++ b/source/blender/blenkernel/BKE_scene.h
@@@ -141,10 -140,8 +143,12 @@@ bool BKE_scene_check_rigidbody_active(c
  int BKE_scene_num_threads(const struct Scene *scene);
  int BKE_render_num_threads(const struct RenderData *r);
  
+ double BKE_scene_unit_scale(const struct UnitSettings *unit, const int unit_type, double value);
+ 
 +/* multiview */
 +bool BKE_render_is_stereo3d(const struct RenderData *rd);
 +size_t BKE_render_num_views(const struct RenderData *rd);
 +
  #ifdef __cplusplus
  }
  #endif
diff --cc source/blender/blenkernel/intern/scene.c
index dbc2dda,eb98e38..7a94ac9
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@@ -2022,39 -1978,28 +2029,65 @@@ int BKE_scene_num_threads(const Scene *
  	return BKE_render_num_threads(&scene->r);
  }
  
+ /* Apply the needed correction factor to value, based on unit_type (only length-related are affected currently)
+  * and unit->scale_length.
+  */
+ double BKE_scene_unit_scale(const UnitSettings *unit, const int unit_type, double value)
+ {
+ 	if (unit->system == USER_UNIT_NONE) {
+ 		/* Never apply scale_length when not using a unit setting! */
+ 		return value;
+ 	}
+ 
+ 	switch (unit_type) {
+ 		case B_UNIT_LENGTH:
+ 			return value * (double)unit->scale_length;
+ 		case B_UNIT_CAMERA:
+ 			return value * (double)unit->scale_length;
+ 		case B_UNIT_AREA:
+ 			return value * pow(unit->scale_length, 2);
+ 		case B_UNIT_VOLUME:
+ 			return value * pow(unit->scale_length, 3);
+ 		case B_UNIT_MASS:
+ 			return value * pow(unit->scale_length, 3);
+ 		default:
+ 			return value;
+ 	}
+ }
++
 +/******************** multiview *************************/
 +
 +size_t BKE_render_num_views(const RenderData *rd)
 +{
 +	SceneRenderView *srv;
 +	size_t totviews	= 0;
 +
 +	if (rd->views_setup == SCE_VIEWS_SETUP_BASIC) {
 +		if (BLI_findstring(&rd->views, STEREO_LEFT_NAME, offsetof(SceneRenderView, name)))
 +		    totviews++;
 +
 +		if (BLI_findstring(&rd->views, STEREO_RIGHT_NAME, offsetof(SceneRenderView, name)))
 +		    totviews++;
 +	}
 +	else {
 +		for (srv = (SceneRenderView *)rd->views.first; srv; srv = srv->next)
 +			if ((srv->viewflag & SCE_VIEW_DISABLE) == 0)
 +				totviews++;
 +	}
 +	return totviews;
 +}
 +
 +bool BKE_render_is_stereo3d(const RenderData *rd)
 +{
 +	SceneRenderView *srv[2];
 +
 +	if ((rd->scemode & R_MULTIVIEW) == 0)
 +		return false;
 +
 +	srv[0] = (SceneRenderView *)BLI_findstring(&rd->views, STEREO_LEFT_NAME, offsetof(SceneRenderView, name));
 +	srv[1] = (SceneRenderView *)BLI_findstring(&rd->views, STEREO_RIGHT_NAME, offsetof(SceneRenderView, name));
 +
 +	return (srv[0] && ((srv[0]->viewflag & SCE_VIEW_DISABLE) == 0) &&
 +	        srv[1] && ((srv[1]->viewflag & SCE_VIEW_DISABLE) == 0));
 +}
 +
diff --cc source/blender/blenloader/intern/versioning_270.c
index 5523ecd,8e760a9..2cc330d
--- a/source/blender/blenloader/intern/versioning_270.c
+++ b/source/blender/blenloader/intern/versioning_270.c
@@@ -43,10 -43,9 +44,11 @@@
  #include "DNA_object_types.h"
  #include "DNA_mesh_types.h"
  #include "DNA_modifier_types.h"
+ #include "DNA_particle_types.h"
  #include "DNA_linestyle_types.h"
  #include "DNA_actuator_types.h"
 +#include "DNA_camera_types.h"
 +#include "DNA_view3d_types.h"
  
  #include "DNA_genfile.h"
  
@@@ -361,54 -359,19 +363,70 @@@ void blo_do_versions_270(FileData *fd, 
  		}
  	}
  
+ 	if (!MAIN_VERSION_ATLEAST(main, 271, 6)) {
+ 		Object *ob;
+ 		for (ob = main->object.first; ob; ob = ob->id.next) {
+ 			ModifierData *md;
+ 
+ 			for (md = ob->modifiers.first; md; md = md->next) {
+ 				if (md->type == eModifierType_ParticleSystem) {
+ 					ParticleSystemModifierData *pmd = (ParticleSystemModifierData *)md;
+ 					if (pmd->psys && pmd->psys->clmd) {
+ 						pmd->psys->clmd->sim_parms->vel_damping = 1.0f;
+ 					}
+ 				}
+ 			}
+ 		}
+ 	}
++
 +	{
 +		SceneRenderView *srv;
 +		Camera *cam;
 +		bScreen *screen;
 +		Scene *scene;
 +
 +		if (!DNA_struct_elem_find(fd->filesdna, "RenderData", "ListBase", "views")) {
 +			for (scene = main->scene.first; scene; scene = scene->id.next) {
 +				BKE_scene_add_render_view(scene, STEREO_LEFT_NAME);
 +				srv = (SceneRenderView *)scene->r.views.first;
 +				BLI_strncpy(srv->suffix, "_L", sizeof(srv->suffix));
 +
 +				BKE_scene_add_render_view(scene, STEREO_RIGHT_NAME);
 +				srv = (SceneRenderView *)scene->r.views.last;
 +				BLI_strncpy(srv->suffix, "_R", sizeof(srv->suffix));
 +			}
 +		}
 +
 +		for (screen = main->screen.first; screen; screen = screen->id.next) {
 +			ScrArea *sa;
 +			for (sa = screen->areabase.first; sa; sa = sa->next) {
 +				SpaceLink *sl;
 +
 +				for (sl = sa->spacedata.first; sl; sl= sl->next) {
 +					switch (sl->spacetype) {
 +						case SPACE_VIEW3D:
 +						{
 +							View3D *v3d = (View3D*) sl;
 +							v3d->stereo_camera = STEREO_3D_ID;
 +							break;
 +						}
 +						case SPACE_IMAGE:
 +						{
 +							SpaceImage *sima = (SpaceImage *) sl;
 +							sima->iuser.flag |= IMA_SHOW_STEREO;
 +							sima->iuser.passtype = SCE_PASS_COMBINED;
 +							break;
 +						}
 +					}
 +				}
 +			}
 +		}
 +
 +		if (!DNA_struct_elem_find(fd->filesdna, "Camera", "CameraStereoSettings", "stereo")) {
 +			for (cam = main->camera.first; cam; cam = cam->id.next) {
 +				cam->stereo.interocular_distance = 0.065;
 +				cam->stereo.convergence_distance = 30.f * 0.065;
 +			}
 +		}
 +	}
  }




More information about the Bf-blender-cvs mailing list