def __init__(self, parent=None): QtWidgets.QWidget.__init__(self, parent) Ui_IsoCutterPanelBase.__init__(self) self.setupUi(self) #current object key self.__key = -1 #default setting of the panel self.vrpCheckBoxMapVariable.setEnabled(False) self.vrpComboBoxVariable.setEnabled(False) self.visibilityCheckBox.setVisible( covise.coConfigIsOn("vr-prepare.AdditionalVisibilityCheckbox", False)) self.__baseVariable = None #temporary storage of this parameter part self.colorCreator = {} middleFloatInRangeCtrls = [self.floatInRangeIsoValue] self.__boundingBox = Box() for w, r in zip(middleFloatInRangeCtrls, self.__boundingBox.getTuple()): w.setRange(r) sideRange = 0, self.__heuristicProbeMaxSideLengthFromBox( self.__boundingBox.getTuple()) IsoCutterPanelConnector(self)
def getPartsBoundingBox(self): """ get the bounding box from all originally unfiltered/untransformed/unreduced/un... import modules """ box = Box((0, 0), (0, 0), (0, 0)) for key in globalKeyHandler().getAllElements(): # get bounding box of all parts if globalKeyHandler().getObject(key) and globalKeyHandler( ).getObject(key).typeNr in [TYPE_3D_PART, TYPE_2D_PART]: tmpBB = globalKeyHandler().getObject( key).importModule.getBoxFromGeoRWCovise() box = box + tmpBB return box
def executeSampleData(self, varname, bbox=None, outside=USER_DEFINED): if not covise.coConfigIsOn("vr-prepare.UseSamplingModules", False): return if bbox==None: if not (varname,outside) in self._bbox: self._bbox[(varname,outside)] = Box() box = self._bbox[(varname,outside)] else: box = bbox self._updateSample( varname, box, outside) sample = self._sample[(varname,outside)] saveExecute(sample)
def _initSample( self, varname, outside ): if not (varname,outside) in self._sample: self._sample[(varname,outside)] = Sample() theNet().add(self._sample[(varname,outside)]) self._bbox[(varname,USER_DEFINED)] = Box() self._bbox[(varname,MAX_FLT)] = Box() # connect( Import3DModule.geoConnectionPoint(self), ConnectionPoint(self._sample[(varname,outside)], 'GridIn') ) # connect( Import3DModule.dataConnectionPoint(self, varname), ConnectionPoint(self._sample[(varname,outside)], 'DataIn') ) connect( ParentClass3D.geoConnectionPoint(self), ConnectionPoint(self._sample[(varname,outside)], 'GridIn') ) connect( ParentClass3D.dataConnectionPoint(self, varname), ConnectionPoint(self._sample[(varname,outside)], 'DataIn') ) sample = self._sample[(varname,outside)] sample.set_outside(outside) if not ParentClass3D.executeOct(self) and not ParentClass3D.executeData(self, varname): saveExecute(sample) # reconnect Sample # print "RECONNECTING 3D SAMPLE" theNet().disconnectAllFromModulePort(self._sample[(varname,outside)], 'GridIn') theNet().disconnectAllFromModulePort(self._sample[(varname,outside)], 'DataIn') connect( ParentClass3D.geoConnectionPoint(self), ConnectionPoint(self._sample[(varname,outside)], 'GridIn') ) connect( ParentClass3D.dataConnectionPoint(self, varname), ConnectionPoint(self._sample[(varname,outside)], 'DataIn') )
def __init__(self, parent, doApply, doApplyRadioBttn, doParamChange, typeRec=TRACER, startStyle=PLANE): QtCore.QObject.__init__(self) assert parent assert doApply #slots to be registered by parent self.__parent = parent self.__apply = doApply self.__applyRadioBttn = doApplyRadioBttn self.__paramChange = doParamChange self.__type = typeRec middleFloatInRangeCtrls = [ self.__parent.floatInRangeX, self.__parent.floatInRangeY, self.__parent.floatInRangeZ ] sideFloatInRangeCtrls = [] rotFloatInRangeCtrls = [] endPointFloatInRangeCtrls = [] # a streamlines panel will have these widgets so they will get connected if typeRec == TRACER: endPointFloatInRangeCtrls = [ self.__parent.floatInRangeEndPointX, self.__parent.floatInRangeEndPointY, self.__parent.floatInRangeEndPointZ ] self.__boundingBox = ((-1, 1), (-1, 1), (-1, 1)) for w, r in zip(middleFloatInRangeCtrls, self.__boundingBox): w.setRange(r) #if not typeRec == POINTPROBING: if startStyle == PLANE: sideRange = 0, self.__heuristicProbeMaxSideLengthFromBox( self.__boundingBox) if self.__type == TRACER: sideFloatInRangeCtrls = [ self.__parent.floatInRangeWidth, self.__parent.floatInRangeHeight ] for w in sideFloatInRangeCtrls: w.setRange(sideRange) rotFloatInRangeCtrls = [ self.__parent.floatInRangeRotX, self.__parent.floatInRangeRotY, self.__parent.floatInRangeRotZ ] for w in rotFloatInRangeCtrls: w.setRange((-180., 180.)) elif startStyle == LINE: endPointFloatInRangeCtrls = [ self.__parent.floatInRangeEndPointX, self.__parent.floatInRangeEndPointY, self.__parent.floatInRangeEndPointZ ] for w, r in zip(endPointFloatInRangeCtrls, self.__boundingBox): w.setRange(r) sideFloatInRangeCtrls = [] rotFloatInRangeCtrls = [] #else: # sideFloatInRangeCtrls = [] # rotFloatInRangeCtrls = [] for w in middleFloatInRangeCtrls + sideFloatInRangeCtrls + rotFloatInRangeCtrls + endPointFloatInRangeCtrls: w.sigSliderReleased.connect(self.__apply) if self.__paramChange: w.sigValueChanged.connect(self.__paramChange) #if not typeRec == POINTPROBING: for w in [ self.__parent.xAxisRadioButton, self.__parent.yAxisRadioButton, self.__parent.zAxisRadioButton ]: w.clicked.connect(self.__radioButtonClick) self.__boundingBox = Box((-1, 1), (-1, 1), (-1, 1))
def getBox(self, forceExecute=False): box = Box((0, 0), (0, 0), (0, 0)) for part in self._parts: box = box + part.getBox(forceExecute) return box
def getBoxFromGeoRWCovise(self): box = Box((0, 0), (0, 0), (0, 0)) for part in self._parts: box = box + part.getBoxFromGeoRWCovise() return box