@@ -411,7 +411,7 @@ def execute(self, context):
411
411
412
412
413
413
class FlipFluidIncreaseDecreaseCacheDirectory (bpy .types .Operator ):
414
- bl_idname = "flip_fluid_operators.increment_decrease_cache_directory "
414
+ bl_idname = "flip_fluid_operators.increase_decrease_cache_directory "
415
415
bl_label = "Increase/Decrease Cache Directory"
416
416
bl_description = ("Increase or decrease a numbered suffix on the cache directory." +
417
417
" Note: this will not rename an existing cache directory" )
@@ -468,6 +468,105 @@ def execute(self, context):
468
468
return {'FINISHED' }
469
469
470
470
471
+ class FlipFluidIncreaseDecreaseRenderDirectory (bpy .types .Operator ):
472
+ bl_idname = "flip_fluid_operators.increase_decrease_render_directory"
473
+ bl_label = "Increase/Decrease Render Directory"
474
+ bl_description = ("Increase or decrease a numbered suffix on the render output directory." +
475
+ " Note: this will not rename an existing render output directory" )
476
+
477
+ increment_mode = StringProperty (default = "INCREASE" )
478
+ exec (vcu .convert_attribute_to_28 ("increment_mode" ))
479
+
480
+
481
+ @classmethod
482
+ def poll (cls , context ):
483
+ return True
484
+
485
+
486
+ def get_trailing_number (self , s ):
487
+ m = re .search (r'\d+$' , s )
488
+ return int (m .group ()) if m else None
489
+
490
+
491
+ def ends_with_slash (self , s ):
492
+ return s .endswith ("/" ) or s .endswith ("\\ " )
493
+
494
+
495
+ def ends_with_underscore (self , s ):
496
+ return s .endswith ("_" )
497
+
498
+
499
+ def execute (self , context ):
500
+ render_directory = context .scene .render .filepath
501
+
502
+ basename = render_directory
503
+ endswith_slash = self .ends_with_slash (basename )
504
+ endswith_underscore = self .ends_with_underscore (basename )
505
+
506
+ slash_character = ""
507
+ if endswith_slash :
508
+ slash_character = basename [- 1 ]
509
+ basename = basename [:- 1 ]
510
+ elif endswith_underscore :
511
+ basename = basename [:- 1 ]
512
+
513
+ suffix_number = self .get_trailing_number (basename )
514
+ if suffix_number :
515
+ basename = basename [:- len (str (suffix_number ))]
516
+ if endswith_underscore :
517
+ if self .ends_with_underscore (basename ):
518
+ basename = basename [:- 1 ]
519
+
520
+ if self .increment_mode == 'INCREASE' :
521
+ if not suffix_number :
522
+ suffix_number = 0
523
+ suffix_number += 1
524
+ suffix_string = str (suffix_number )
525
+ else :
526
+ if not suffix_number :
527
+ return {'FINISHED' }
528
+ if suffix_number <= 1 :
529
+ suffix_string = ""
530
+
531
+ else :
532
+ suffix_string = str (suffix_number - 1 )
533
+
534
+ if endswith_slash :
535
+ new_basename = basename + suffix_string + slash_character
536
+ elif endswith_underscore :
537
+ if suffix_string :
538
+ new_basename = basename + "_" + suffix_string + "_"
539
+ else :
540
+ new_basename = basename + "_"
541
+ else :
542
+ new_basename = basename + suffix_string
543
+
544
+ context .scene .render .filepath = new_basename
545
+ return {'FINISHED' }
546
+
547
+
548
+ class FlipFluidIncreaseDecreaseCacheRenderVersion (bpy .types .Operator ):
549
+ bl_idname = "flip_fluid_operators.increase_decrease_cache_render_version"
550
+ bl_label = "Increase/Decrease Cache and Render Version"
551
+ bl_description = ("Increase or decrease a numbered suffix on both the cache" +
552
+ " directory and render output directory. Note: this will not rename an" +
553
+ " existing cache our render output directory" )
554
+
555
+ increment_mode = StringProperty (default = "INCREASE" )
556
+ exec (vcu .convert_attribute_to_28 ("increment_mode" ))
557
+
558
+
559
+ @classmethod
560
+ def poll (cls , context ):
561
+ return True
562
+
563
+
564
+ def execute (self , context ):
565
+ bpy .ops .flip_fluid_operators .increase_decrease_cache_directory (increment_mode = self .increment_mode )
566
+ bpy .ops .flip_fluid_operators .increase_decrease_render_directory (increment_mode = self .increment_mode )
567
+ return {'FINISHED' }
568
+
569
+
471
570
class FlipFluidRelativeLinkedGeometryDirectory (bpy .types .Operator ):
472
571
bl_idname = "flip_fluid_operators.relative_linked_geometry_directory"
473
572
bl_label = "Make Relative"
@@ -569,6 +668,8 @@ def register():
569
668
bpy .utils .register_class (FlipFluidAbsoluteCacheDirectory )
570
669
bpy .utils .register_class (FlipFluidMatchFilenameCacheDirectory )
571
670
bpy .utils .register_class (FlipFluidIncreaseDecreaseCacheDirectory )
671
+ bpy .utils .register_class (FlipFluidIncreaseDecreaseRenderDirectory )
672
+ bpy .utils .register_class (FlipFluidIncreaseDecreaseCacheRenderVersion )
572
673
bpy .utils .register_class (FlipFluidRelativeLinkedGeometryDirectory )
573
674
bpy .utils .register_class (FlipFluidAbsoluteLinkedGeometryDirectory )
574
675
bpy .utils .register_class (FlipFluidClearLinkedGeometryDirectory )
@@ -588,6 +689,8 @@ def unregister():
588
689
bpy .utils .unregister_class (FlipFluidAbsoluteCacheDirectory )
589
690
bpy .utils .unregister_class (FlipFluidMatchFilenameCacheDirectory )
590
691
bpy .utils .unregister_class (FlipFluidIncreaseDecreaseCacheDirectory )
692
+ bpy .utils .unregister_class (FlipFluidIncreaseDecreaseRenderDirectory )
693
+ bpy .utils .unregister_class (FlipFluidIncreaseDecreaseCacheRenderVersion )
591
694
bpy .utils .unregister_class (FlipFluidRelativeLinkedGeometryDirectory )
592
695
bpy .utils .unregister_class (FlipFluidAbsoluteLinkedGeometryDirectory )
593
696
bpy .utils .unregister_class (FlipFluidClearLinkedGeometryDirectory )
0 commit comments