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;
 +                      }
 +              }
 +      }
  }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to