Пример #1
0
def test_calcPointCloudMetric():
    pointsA = [(1,0,0), (0,0,0), (0,0,1)]
    R = mmMath.exp(mmMath.v3(0,1,0), math.pi/4)
    pointsB = []
    for p in pointsA:
        pointsB.append(np.dot(R, p)+(0,1,0))
    
    T = mmMath.I_SE3()
    distance = cmt.calcPointCloudMetric(pointsA, pointsB, T)
    print distance
    print T
    
    pointsC = []
    for p in pointsB:
        pointsC.append(mmMath.T2p(np.dot(T, mmMath.p2T(p))))
    
    viewer = ysv.SimpleViewer()
    def extraDrawCallback():
        for p in pointsA:
            ygh.drawPoint(p, (255,0,0))
        for p in pointsB:
            ygh.drawPoint(p, (0,255,0))
        for p in pointsC:
            ygh.drawPoint(p, (0,255,255))
    viewer.setExtraDrawCallback(extraDrawCallback)
    
    viewer.startTimer(1/30.)
    viewer.show()
    
    Fl.run()
Пример #2
0
 def update(self, posture):
     if self.rootFixed:
         T = mm.I_SE3()
         joint = posture.skeleton.root
         self._updateBody(joint, T, posture)
     else:
         OdeModel.update(self, posture)
Пример #3
0
 def __init__(self, default_color = (0,255,0)):
     self.pointMap = {}
     self.vectorMap = {}
     self.vectorOriginMap = {}
     self.SO3Map = {}
     self.SO3OriginMap = {}
     self.colorMap = {}
     
     self.coordinate = mmMath.I_SE3()
     
     self.point_size = 3.0
     self.line_width = 1.0
     self.default_color = default_color
    def test_primitives_renderers():
        boxSize = [1, 1, 1]
        boxFrame = mm.I_SE3()

        cylinderSize = [1, 1]
        cylinderFrame = mm.I_SE3()

        sphereRadius = 1.
        spherePosition = (0, 0.5, 0)

        arrowVector = (1, 0, 0)
        arrowPoint = (0, 0, 0)

        viewer = ysv.SimpleViewer()
        #        viewer.doc.addRenderer('box', BoxesRenderer([boxSize], [boxFrame], (255,0,0)))
        #        viewer.doc.addRenderer('cylinder', CylindersRenderer([cylinderSize], [cylinderFrame], (0,0,255)))
        #        viewer.doc.addRenderer('sphere', SpheresRenderer([sphereRadius], [spherePosition], (0,0,255)))
        viewer.doc.addRenderer(
            'sphere',
            WideArrowRenderer([arrowVector], [arrowPoint], (255, 0, 0), 1.,
                              .1))

        viewer.show()
        Fl.run()
    def test_FramesRenderer_OrientationsRenderer():
        frame0 = mm.I_SE3()
        frame1 = mm.Rp2T(mm.exp(mm.v3(0, 1, 0), math.pi / 8.), (1, 0, 0))

        viewer = ysv.SimpleViewer()
        viewer.doc.addRenderer('frame0', FramesRenderer([frame0], (255, 0, 0)))
        viewer.doc.addRenderer('frame1', FramesRenderer([frame1], (255, 0, 0)))
        viewer.doc.addRenderer(
            'orientation0',
            OrientationsRenderer([mm.T2R(frame0)], [mm.T2p(frame0)],
                                 (0, 255, 0)))
        viewer.doc.addRenderer(
            'orientation1',
            OrientationsRenderer([mm.T2R(frame1)], [mm.T2p(frame1)],
                                 (0, 255, 0)))

        viewer.show()
        Fl.run()