00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 from ost import info
00022 from ost import gfx
00023 from PyQt4 import QtGui
00024
00025 class RenderOp():
00026 RENDERMODE_ATTRIBUTE_NAME = "RenderMode"
00027 KEEP_ATTRIBUTE_NAME = "Keep"
00028
00029 def __init__(self, render_mode, selection, keep=False):
00030 self.render_mode_ = render_mode
00031 self.selection_ = selection
00032 self.keep_ = keep
00033
00034 def SetRenderMode(self, render_mode):
00035 self.render_mode_ = render_mode
00036
00037 def GetRenderMode(self):
00038 return self.render_mode_
00039
00040 def SetSelection(self, selection):
00041 self.selection_ = selection
00042
00043 def GetSelection(self):
00044 return self.selection_
00045
00046 def SetKeep(self, keep):
00047 self.keep_ = keep
00048
00049 def IsKept(self):
00050 return self.keep_
00051
00052 def ApplyOn(self, entity):
00053 if (entity is not None) and isinstance(entity, gfx.Entity):
00054 entity.SetRenderMode(self.GetRenderMode(),entity.view.Select(self.GetSelection()),self.IsKept())
00055
00056 def ToInfo(self,group):
00057 group.SetAttribute(RenderOp.RENDERMODE_ATTRIBUTE_NAME, str(self.GetRenderMode().name))
00058 group.SetAttribute(RenderOp.KEEP_ATTRIBUTE_NAME, str(int(self.IsKept())))
00059 group.SetTextData(str(self.GetSelection()))
00060
00061 @staticmethod
00062 def FromInfo(group):
00063 render_op = None
00064 if (group.HasAttribute(RenderOp.RENDERMODE_ATTRIBUTE_NAME)
00065 and group.HasAttribute(RenderOp.KEEP_ATTRIBUTE_NAME)):
00066 render_mode = getattr(gfx.RenderMode, group.GetAttribute(RenderOp.RENDERMODE_ATTRIBUTE_NAME))
00067 keep = bool(int(group.GetAttribute(RenderOp.KEEP_ATTRIBUTE_NAME)))
00068 selection = group.GetTextData()
00069 render_op = RenderOp(render_mode,selection,keep)
00070 return render_op