def drawJointHelpers(self): """ Draw the joint helpers from the basemesh that define the default or reference rig. """ if self.jointsObj: self.removeObject(self.jointsObj) self.jointsObj = None self.jointsMesh = None self.selectedJoint = None jointPositions = [] # TODO maybe define a getter for this list in the skeleton module jointGroupNames = [group.name for group in self.human.meshData.faceGroups if group.name.startswith("joint-")] if self.human.getSkeleton(): jointGroupNames += self.human.getSkeleton().joint_pos_idxs.keys() for groupName in jointGroupNames: jointPositions.append(self.human.getSkeleton().getJointPosition(groupName, self.human)) else: for groupName in jointGroupNames: jointPositions.append(skeleton._getHumanJointPosition(self.human, groupName)) self.jointsMesh = skeleton_drawing.meshFromJoints(jointPositions, jointGroupNames) self.jointsMesh.priority = 100 self.jointsMesh.setPickable(False) self.jointsObj = self.addObject( gui3d.Object(self.jointsMesh, self.human.getPosition()) ) self.jointsObj.setRotation(self.human.getRotation()) color = np.asarray([255, 255, 0, 255], dtype=np.uint8) self.jointsMesh.color[:] = color[None,:] self.jointsMesh.markCoords(colr=True) self.jointsMesh.sync_color() mh.redraw()
def drawJointHelpers(self): """ Draw the joint helpers from the basemesh that define the default or reference rig. """ if self.jointsObj: self.removeObject(self.jointsObj) self.jointsObj = None self.jointsMesh = None self.selectedJoint = None jointGroupNames = [group.name for group in self.human.meshData.faceGroups if group.name.startswith("joint-")] # TODO maybe define a getter for this list in the skeleton module jointPositions = [] for groupName in jointGroupNames: jointPositions.append(skeleton.getHumanJointPosition(self.human.meshData, groupName)) self.jointsMesh = skeleton_drawing.meshFromJoints(jointPositions, jointGroupNames) self.jointsMesh.priority = 100 self.jointsMesh.setPickable(True) mh.updatePickingBuffer() self.jointsObj = self.addObject( gui3d.Object(self.human.getPosition(), self.jointsMesh) ) self.jointsObj.setRotation(self.human.getRotation()) color = np.asarray([255, 255, 0, 255], dtype=np.uint8) self.jointsMesh.color[:] = color[None,:] self.jointsMesh.markCoords(colr=True) self.jointsMesh.sync_color() # Add event listeners to joint mesh for joint highlighting @self.jointsObj.mhEvent def onMouseEntered(event): """ Event fired when mouse hovers over a joint mesh facegroup """ gui3d.TaskView.onMouseEntered(self, event) # Highlight joint self.selectedJoint = event.group setColorForFaceGroup(self.jointsMesh, self.selectedJoint.name, [216, 110, 39, 255]) gui3d.app.statusPersist(event.group.name) gui3d.app.redraw() @self.jointsObj.mhEvent def onMouseExited(event): """ Event fired when mouse hovers off of a joint mesh facegroup """ gui3d.TaskView.onMouseExited(self, event) # Disable highlight on joint if self.selectedJoint: setColorForFaceGroup(self.jointsMesh, self.selectedJoint.name, [255,255,0,255]) gui3d.app.statusPersist('') gui3d.app.redraw()
def drawJointHelpers(self): """ Draw the joint helpers from the basemesh that define the default or reference rig. """ if self.jointsObj: self.removeObject(self.jointsObj) self.jointsObj = None self.jointsMesh = None self.selectedJoint = None jointGroupNames = [ group.name for group in self.human.meshData.faceGroups if group.name.startswith("joint-") ] # TODO maybe define a getter for this list in the skeleton module jointPositions = [] for groupName in jointGroupNames: jointPositions.append( skeleton.getHumanJointPosition(self.human.meshData, groupName)) self.jointsMesh = skeleton_drawing.meshFromJoints( jointPositions, jointGroupNames) self.jointsMesh.priority = 100 self.jointsMesh.setPickable(True) mh.updatePickingBuffer() self.jointsObj = self.addObject( gui3d.Object(self.human.getPosition(), self.jointsMesh)) self.jointsObj.setRotation(self.human.getRotation()) color = np.asarray([255, 255, 0, 255], dtype=np.uint8) self.jointsMesh.color[:] = color[None, :] self.jointsMesh.markCoords(colr=True) self.jointsMesh.sync_color() # Add event listeners to joint mesh for joint highlighting @self.jointsObj.mhEvent def onMouseEntered(event): """ Event fired when mouse hovers over a joint mesh facegroup """ gui3d.TaskView.onMouseEntered(self, event) # Highlight joint self.selectedJoint = event.group setColorForFaceGroup(self.jointsMesh, self.selectedJoint.name, [216, 110, 39, 255]) gui3d.app.statusPersist(event.group.name) gui3d.app.redraw() @self.jointsObj.mhEvent def onMouseExited(event): """ Event fired when mouse hovers off of a joint mesh facegroup """ gui3d.TaskView.onMouseExited(self, event) # Disable highlight on joint if self.selectedJoint: setColorForFaceGroup(self.jointsMesh, self.selectedJoint.name, [255, 255, 0, 255]) gui3d.app.statusPersist('') gui3d.app.redraw()