Package plugins :: Module fill
[hide private]
[frames] | no frames]

Source Code for Module plugins.fill

 1  """ 
 2  Fills the perimeters. 
 3   
 4  Credits: 
 5          Original Author: Enrique Perez (http://skeinforge.com) 
 6          Contributors: Please see the documentation in Skeinforge  
 7          Modifed as SFACT: Ahmet Cem Turan (github.com/ahmetcemturan/SFACT)       
 8   
 9  License:  
10          GNU Affero General Public License http://www.gnu.org/licenses/agpl.html 
11  """ 
12   
13  from config import config 
14  from importlib import import_module 
15  from utilities import memory_tracker 
16  import logging 
17  import math 
18  import sys 
19   
20  logger = logging.getLogger(__name__) 
21  name = __name__ 
22   
23 -def performAction(slicedModel):
24 'Fills the perimeters.' 25 if not config.getboolean(name, 'active'): 26 logger.info("%s plugin is inactive", name.capitalize()) 27 return 28 29 f = FillSkein(slicedModel) 30 if slicedModel.runtimeParameters.profileMemory: 31 memory_tracker.track_object(f) 32 f.fill() 33 if slicedModel.runtimeParameters.profileMemory: 34 memory_tracker.create_snapshot("After fill")
35
36 -class FillSkein:
37 'A class to fill a skein of extrusions.'
38 - def __init__(self, slicedModel):
39 self.slicedModel = slicedModel 40 self.extrusionWidth = config.getfloat('carve', 'extrusion.width') 41 self.fillStrategyName = config.get(name, 'strategy') 42 self.fillStrategyPath = config.get(name, 'strategy.path')
43
44 - def fill(self):
45 'Fills the layers.' 46 if self.extrusionWidth == None: 47 logger.warning('Nothing will be done because extrusion width FillSkein is None.') 48 return 49 50 fillStrategy = None 51 try: 52 if self.fillStrategyPath not in sys.path: 53 sys.path.insert(0, self.fillStrategyPath) 54 fillStrategy = import_module(self.fillStrategyName).getStrategy(self.slicedModel) 55 logger.info("Using fill strategy: %s", self.fillStrategyName) 56 except ImportError: 57 logger.warning("Could not find module for fill strategy called: %s", self.fillStrategyName) 58 except Exception as inst: 59 logger.warning("Exception reading strategy %s: %s", self.fillStrategyName, inst) 60 61 for layer in self.slicedModel.layers.values(): 62 63 if fillStrategy != None: 64 fillStrategy.fill(layer)
65