def getPointsArray(self, motionTrail, currFrame, camera=None): range = [self.firstFrame, self.lastFrame ] if self.prePosRange == 0 else [ currFrame - self.prePosRange, currFrame + self.prePosRange ] range[0] = range[0] if range[0] >= self.firstFrame else self.firstFrame range[1] = range[1] if range[1] <= self.lastFrame else self.lastFrame rangeList = utilMod.rangeToList(range) worldPoints = [] cameraPoints = [] for loopFrame in rangeList: if self.nodeInfo[motionTrail].has_key(loopFrame): if self.nodeInfo[motionTrail][loopFrame].has_key( "pointMatrix"): pointMatrix = self.nodeInfo[motionTrail][loopFrame][ "pointMatrix"] worldPoints.append(pointMatrix[12:15]) if camera: cameraPoint = self.getCameraPoint( camera, loopFrame, currFrame, pointMatrix) cameraPoints.append(cameraPoint) return {"world": worldPoints, "camera": cameraPoints}
def getPointsArray(self, motionTrail, currFrame, camera=None): range = [self.firstFrame, self.lastFrame] if self.prePosRange == 0 else [currFrame-self.prePosRange, currFrame+self.prePosRange] range[0] = range[0] if range[0] >= self.firstFrame else self.firstFrame range[1] = range[1] if range[1] <= self.lastFrame else self.lastFrame rangeList = utilMod.rangeToList(range) worldPoints = [] cameraPoints = [] for loopFrame in rangeList: if self.nodeInfo[motionTrail].has_key(loopFrame): if self.nodeInfo[motionTrail][loopFrame].has_key("pointMatrix"): pointMatrix = self.nodeInfo[motionTrail][loopFrame]["pointMatrix"] worldPoints.append(pointMatrix[12:15]) if camera: cameraPoint = self.getCameraPoint(camera, loopFrame, currFrame, pointMatrix) cameraPoints.append(cameraPoint) return {"world":worldPoints, "camera":cameraPoints}
def getSortedRange(self): range = utilMod.rangeToList([self.firstFrame, self.lastFrame]) keys = self.keysTimes if self.blockingMode else [] currTime = int(cmds.currentTime(query=True)) currFrame = currTime if currTime in range else range[0] sortedRange = [currFrame] if currFrame in range else [] ranges = [keys, range] self.currFrame = currTime for loopRange in ranges: if len(loopRange) == 0: continue count = 0 direction = 1 frame = currFrame while True: if frame in range: if frame in loopRange and frame not in sortedRange: sortedRange.append(frame) else: break increase = ((1 + count) * direction) next = (increase + frame) if next > loopRange[-1] or next < loopRange[0]: increase = 1 * direction * -1 else: direction *= -1 frame += increase count += 1 return sortedRange
def getSortedRange(self): range = utilMod.rangeToList([self.firstFrame, self.lastFrame]) keys = self.keysTimes if self.blockingMode else [] currTime = int(cmds.currentTime(query=True)) currFrame = currTime if currTime in range else range[0] sortedRange = [currFrame] if currFrame in range else [] ranges = [keys, range] self.currFrame = currTime for loopRange in ranges: if len(loopRange) == 0: continue count = 0 direction = 1 frame = currFrame while True: if frame in range: if frame in loopRange and frame not in sortedRange: sortedRange.append(frame) else: break increase = ((1+count) * direction) next = (increase + frame) if next > loopRange[-1] or next < loopRange[0]: increase = 1 * direction *-1 else: direction *= -1 frame += increase count += 1 return sortedRange