Message ID associated with ViewPort changes ?

  • On 31/05/2013 at 11:43, xxxxxxxx wrote:


    is there a message associated with changes made to the active viewport ? I have a
    utils.ViewportSelect instance and I do not want to reinit on each call. Currently I am
    using this method :

        def checkViewportSelect(self, doc, bd) :
            Handles / updates the viewportselect object.
            :param doc : The active document
            :param bd  : The active BaseDraw
            :return    : bool
            if isinstance(bd, c4d.BaseDraw) :
                # create an instance
                if not isinstance(self.ViewPortSelect, utils.ViewportSelect) :
                    self.ViewPortSelect = utils.ViewportSelect()
                # (re)init the instance
                if (self.ViewPortFrame != bd.GetFrame() or
                    self.ViewPortMatrix != bd.GetMg()) :
                    self.ViewPortFrame = bd.GetFrame()
                    self.ViewPortMatrix = bd.GetMg()
                    wd = self.ViewPortFrame["cr"] - self.ViewPortFrame["cl"] + 1
                    hg = self.ViewPortFrame["cb"] - self.ViewPortFrame["ct"] + 1
                    self.ViewPortSelect.Init(w = wd, h = hg, bd = bd, ops = [self.Object], 
                                             mode = c4d.Mpolyedgepoint, onlyvisible = True, 
                                             flags = c4d.VIEWPORTSELECTFLAGS_IGNORE_HIDDEN_SEL)
                return True
            return False 

    Which is working fine, but it feels a bit 'unsafe'. So I am wondering if there is a message
    associated with active viewport changes (dimensions, camera pos, projection and so on).
    I am looking for a ToolData or CoreMessage.

    Not sure how you are doing that ? Initing the VPS object for each call the seems to be a
    bit overkill ?

    Happy rendering,

Log in to reply