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
path: root/source
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2007-04-20 00:58:09 +0400
committerCampbell Barton <ideasman42@gmail.com>2007-04-20 00:58:09 +0400
commit60b3268c32fbc8a908ffac76b45966da43373c3e (patch)
tree81128aa5ca19b962f0bd5538f87600dbce25b2cf /source
parentf5a40315ca8c5f14623a09f8272417f65aaf6f6a (diff)
adding a python function for cleaning strings (for filenames and export names) BPySys.py - used fotr obj and fbx export.
view.c - missed one smoothview/camera. Brigg's hide object patch didnt change the object selection flag, other minor changes also.
Diffstat (limited to 'source')
-rw-r--r--source/blender/src/editobject.c55
-rw-r--r--source/blender/src/view.c21
2 files changed, 46 insertions, 30 deletions
diff --git a/source/blender/src/editobject.c b/source/blender/src/editobject.c
index 2cb57faffd8..a8d9251d249 100644
--- a/source/blender/src/editobject.c
+++ b/source/blender/src/editobject.c
@@ -5457,33 +5457,42 @@ void hookmenu(void)
void hide_objects(int select)
{
- Base *b;
- int swap;
- for(b = G.scene->base.first; b; b=b->next){
- if(TESTBASE(b)==select){
- b->flag &= ~SELECT;
- b->object->restrictflag |= OB_RESTRICT_VIEW;
- DAG_object_flush_update(G.scene, b->object, OB_RECALC_DATA);
- }
- }
- G.scene->basact = NULL;
- allqueue(REDRAWVIEW3D,0);
- allqueue(REDRAWOOPS,0);
- if(select) BIF_undo_push("Hide Selected Objects");
- else if(select) BIF_undo_push("Hide Unselected Objects");
+ Base *base;
+ int changed = 0;
+ for(base = FIRSTBASE; base; base=base->next){
+ if(TESTBASE(base)==select){
+ base->flag &= ~SELECT;
+ base->object->flag = base->flag;
+ base->object->restrictflag |= OB_RESTRICT_VIEW;
+ DAG_object_flush_update(G.scene, base->object, OB_RECALC_DATA);
+ changed = 1;
+ if (base==BASACT) BASACT= NULL;
+ }
+ }
+ if (changed) {
+ allqueue(REDRAWVIEW3D,0);
+ allqueue(REDRAWOOPS,0);
+ if(select) BIF_undo_push("Hide Selected Objects");
+ else if(select) BIF_undo_push("Hide Unselected Objects");
+ }
}
void show_objects(void)
{
- Base *b;
- for(b = G.scene->base.first; b; b=b->next){
- if((b->lay & G.vd->lay) && b->object->restrictflag & OB_RESTRICT_VIEW){
- b->flag |= SELECT;
- b->object->restrictflag &= ~OB_RESTRICT_VIEW;
- DAG_object_flush_update(G.scene, b->object, OB_RECALC_DATA);
+ Base *base;
+ int changed = 0;
+ for(base = FIRSTBASE; base; base=base->next){
+ if((base->lay & G.vd->lay) && base->object->restrictflag & OB_RESTRICT_VIEW) {
+ base->flag |= SELECT;
+ base->object->flag = base->flag;
+ base->object->restrictflag &= ~OB_RESTRICT_VIEW;
+ DAG_object_flush_update(G.scene, base->object, OB_RECALC_DATA);
+ changed = 1;
}
}
- BIF_undo_push("Unhide Objects");
- allqueue(REDRAWVIEW3D,0);
- allqueue(REDRAWOOPS,0);
+ if (changed) {
+ BIF_undo_push("Unhide Objects");
+ allqueue(REDRAWVIEW3D,0);
+ allqueue(REDRAWOOPS,0);
+ }
}
diff --git a/source/blender/src/view.c b/source/blender/src/view.c
index bb7cf56821a..2193d17aa1c 100644
--- a/source/blender/src/view.c
+++ b/source/blender/src/view.c
@@ -1414,23 +1414,30 @@ void centerview() /* like a localview without local! */
new_dist = size;
- // correction for window aspect ratio
+ /* correction for window aspect ratio */
if(curarea->winy>2 && curarea->winx>2) {
size= (float)curarea->winx/(float)curarea->winy;
if(size<1.0) size= 1.0/size;
new_dist*= size;
}
- if(G.vd->persp>1) {
- G.vd->persp= 1;
- }
-
G.vd->cursor[0]= -new_ofs[0];
G.vd->cursor[1]= -new_ofs[1];
G.vd->cursor[2]= -new_ofs[2];
- smooth_view(G.vd, new_ofs, NULL, &new_dist, NULL);
-
+ if (G.vd->persp==2 && G.vd->camera) {
+ float orig_lens= G.vd->lens;
+
+ G.vd->persp=1;
+ G.vd->dist= 0.0;
+ view_settings_from_ob(G.vd->camera, G.vd->ofs, NULL, NULL, &G.vd->lens);
+ smooth_view(G.vd, new_ofs, NULL, &new_dist, &orig_lens);
+ } else {
+ if(G.vd->persp>=2)
+ G.vd->persp= 1;
+
+ smooth_view(G.vd, new_ofs, NULL, &new_dist, NULL);
+ }
scrarea_queue_winredraw(curarea);
BIF_view3d_previewrender_signal(curarea, PR_DBASE|PR_DISPRECT);