Ejemplo n.º 1
0
    def setup(self, world):
        world.clear()
        efig = Utils().GetFigure()
        efig.clearMesh()

        shape = igeBullet.shape(igeBullet.BOX_SHAPE_PROXYTYPE,
                                halfExtents=(1, 0.2, 1))

        self.body1 = igeBullet.rigidBody(shape, 0, (0, 5, -1.2), (0, 0, 0, 1))
        world.add(self.body1)
        Utils().AddShapeMesh(shape)

        self.body2 = igeBullet.rigidBody(shape, 1, (0, 5, 1.2), (0, 0, 0, 1))
        world.add(self.body2)
        Utils().AddShapeMesh(shape)

        rotA = vmath.quat(vmath.mat_rotationZYX(3, 0, 3.14 / 2, 0))
        posA = vmath.vec3(0, 0, 1.2)
        rotB = vmath.quat(vmath.mat_rotationZYX(3, 0, 3.14 / 2, 0))
        posB = vmath.vec3(0, 0, -1.2)
        joint = igeBullet.constraint(igeBullet.HINGE_CONSTRAINT_TYPE,
                                     self.body1,
                                     self.body2,
                                     frameA=(posA, rotA),
                                     frameB=(posB, rotB))
        world.add(joint)

        efig.mergeSameMaterialMesh()
Ejemplo n.º 2
0
 def __init__( self):
     self.currentState = STATUS_STAY
     self.nextState = STATUS_STAY
     self.figure = core.figure('Sapphiart/Sapphiart')
     self.figure.connectAnimator(core.ANIMETION_SLOT_A0, STATE_MOTION[self.currentState])
     self.currentDir= vmath.vec3(0,0,1)
     self.gorlDir= vmath.vec3(0,0,1)
     self.currentPosition = vmath.vec3(0,0,0)
     self.transitTime = 0.0
Ejemplo n.º 3
0
    def step(self):

        touch = core.singleTouch()
        if touch is not None:
            self.frame.position = vmath.vec3(touch['org_x'], touch['org_y'], 0)
            self.button.position = vmath.vec3(touch['cur_x'], touch['cur_y'],
                                              10)
        else:
            self.frame.position = vmath.vec3(0, 1000, 0)
            self.button.position = vmath.vec3(0, 1000, 10)
Ejemplo n.º 4
0
    def step(self, targetFigure):
        at = targetFigure.position

        dir = at - self.pos
        distance = vmath.length(dir)
        dir = vmath.normalize(dir)

        speed = 0.0
        if distance > 6.0:
            speed = (distance - 6.0) * 0.1
        elif distance < 4.0:
            speed = (distance - 4.0) * 0.1

        self.pos += dir * speed

        self.camera.target = at + vmath.vec3(0, self.targetHeighjt, 0)
        self.camera.position = self.pos + vmath.vec3(0, self.height, 0)
Ejemplo n.º 5
0
def IntersectRayAABB(p, d, min, max):
    tmin = 0.0
    tmax = sys.float_info.max
    for i in range(3):
        if math.fabs(d.getElem(i)) < sys.float_info.epsilon:
            if p.getElem(i) < min.getElem(i) or p.getElem(i) > max.getElem(i):
                return False, 0, vmath.vec3()
        else:
            ood = 1.0 / d.getElem(i)
            t1 = (min.getElem(i) - p.getElem(i)) * ood
            t2 = (max.getElem(i) - p.getElem(i)) * ood
            if t1 > t2: t1, t2 = t2, t1
            if t1 > tmin: tmin = t1
            if t2 < tmax: tmax = t2
            if tmin > tmax: return False, 0, vmath.vec3()
    q = p + d * tmin
    return True, tmin, q
Ejemplo n.º 6
0
    def setup(self, world):
        world.clear()
        efig = Utils().GetFigure()
        efig.clearMesh()

        shape = igeBullet.shape(igeBullet.CAPSULE_SHAPE_PROXYTYPE, 1, 4)

        self.body1 = igeBullet.rigidBody(shape,0,(-3,5,0),vmath.quat(vmath.mat_rotationZYX(3, 0, 0, 3.14/2)))
        world.add(self.body1)
        Utils().AddShapeMesh(shape)

        self.body2 = igeBullet.rigidBody(shape,1,(3,5,0),vmath.quat(vmath.mat_rotationZYX(3, 0, 0, 3.14/2)))
        world.add(self.body2)
        Utils().AddShapeMesh(shape)

        rotA = vmath.quat(vmath.mat_rotationZYX(3, 0, 0, 3.14/2))
        posA = vmath.vec3(0, -3.2, 0)
        rotB = vmath.quat(vmath.mat_rotationZYX(3, 0, 0, 3.14/2))
        posB = vmath.vec3(0,  3.2, 0)
        joint = igeBullet.constraint(igeBullet.CONETWIST_CONSTRAINT_TYPE, self.body1, self.body2,
                                     frameA=(posA, rotA), frameB=(posB, rotB))
        world.add(joint)

        efig.mergeSameMaterialMesh()
Ejemplo n.º 7
0
 def __init__(self):
     self.pos = vmath.vec3(0, 0, 5)
     self.height = 3.0
     self.targetHeighjt = 1.0
     self.camera = core.camera("cam01")
Ejemplo n.º 8
0
using Box2D with ige
"""

import igeCore as core
import igeVmath as vmath
import Box2D
from Box2D.b2 import (world, polygonShape, staticBody, dynamicBody)
from DynamicBox import DynamicBox

# open or resize window (This function is valid only on PC,Ignored in smartphone apps)
core.window(True, 480, 640)

cam = core.camera("maincam")
cam.orthographicProjection = True
cam.position = vmath.vec3(0.0, 0.0, 100.0)

showcase = core.showcase()

boxes = []

world = world(gravity=(0, -10), doSleep=True)
boxes.append(DynamicBox(world, showcase, (0, -100), (150, 20), 0, True))
boxes.append(DynamicBox(world, showcase, (10, 100), (10, 5), 15))

while True:
    core.update()
    touch = core.singleTouch()
    if touch is not None and touch['is_pressed']:
        boxes.append(
            DynamicBox(world, showcase, (touch['cur_x'], touch['cur_y']),
Ejemplo n.º 9
0
#add shadow shader
for i in range(ground.numMaterials):
    shaderGen = ground.getShaderGenerator(i)
    shaderGen.setShadow(False, True, True)
    ground.setShaderGenerator(i, shaderGen)

#create shadow buffer
shadowBuffer = core.texture('Shadow',
                            1024,
                            1024,
                            format=core.GL_RED,
                            depth=True,
                            float=True)

efig = graphicsHelper.createSprite(100, 100, shadowBuffer)
efig.position = vmath.vec3(-100, 200, 0)

# what you want to draw should be registered in showcase
showcase2D = core.showcase('2dcase')
showcase3D = core.showcase("3dcase")

showcase3D.add(ground)
showcase3D.add(char.figure)

showcase2D.add(efig)
showcase2D.add(controller.frame)
showcase2D.add(controller.button)

showcase3D.addShadowBuffer(shadowBuffer)

#set shadow environment
Ejemplo n.º 10
0
    def setup(self, world):
        world.clear()
        efig = Utils().GetFigure()
        efig.clearMesh()

        #shape = igeBullet.shape(igeBullet.STATIC_PLANE_PROXYTYPE, normal=(0,1,0), constant=0)
        shape = igeBullet.shape(igeBullet.BOX_SHAPE_PROXYTYPE, halfExtents=(10,1,10))
        body = igeBullet.rigidBody(shape,0,(0,0,0),(0,0,0,1))
        world.add(body)
        Utils().AddShapeMesh(shape)

        scale = 5.0
        offset = vmath.vec3(0, 5, 0)

        M_PI = 3.14159265358979323846
        M_PI_2 = 1.57079632679489661923
        M_PI_4 = 0.785398163397448309616

        BODYPART_PELVIS = 0
        BODYPART_SPINE = 1
        BODYPART_HEAD = 2
        BODYPART_LEFT_UPPER_LEG = 3
        BODYPART_LEFT_LOWER_LEG = 4
        BODYPART_RIGHT_UPPER_LEG = 5
        BODYPART_RIGHT_LOWER_LEG = 6
        BODYPART_LEFT_UPPER_ARM = 7
        BODYPART_LEFT_LOWER_ARM = 8
        BODYPART_RIGHT_UPPER_ARM = 9
        BODYPART_RIGHT_LOWER_ARM = 10
        self.BODYPART_COUNT = 11
        JOINT_PELVIS_SPINE = 0
        JOINT_SPINE_HEAD = 1
        JOINT_LEFT_HIP = 2
        JOINT_LEFT_KNEE = 3
        JOINT_RIGHT_HIP = 4
        JOINT_RIGHT_KNEE = 5
        JOINT_LEFT_SHOULDER = 6
        JOINT_LEFT_ELBOW = 7
        JOINT_RIGHT_SHOULDER = 8
        JOINT_RIGHT_ELBOW = 9
        JOINT_COUNT = 10

        m_shapes = [0] * self.BODYPART_COUNT
        m_shapes[BODYPART_PELVIS] = igeBullet.shape(igeBullet.CAPSULE_SHAPE_PROXYTYPE, 0.15 * scale, 0.20 * scale)
        m_shapes[BODYPART_SPINE] = igeBullet.shape(igeBullet.CAPSULE_SHAPE_PROXYTYPE, 0.15 * scale, 0.28 * scale)
        m_shapes[BODYPART_HEAD] = igeBullet.shape(igeBullet.CAPSULE_SHAPE_PROXYTYPE, 0.10 * scale, 0.05 * scale)
        m_shapes[BODYPART_LEFT_UPPER_LEG] = igeBullet.shape(igeBullet.CAPSULE_SHAPE_PROXYTYPE, 0.07 * scale, 0.45 * scale)
        m_shapes[BODYPART_LEFT_LOWER_LEG] = igeBullet.shape(igeBullet.CAPSULE_SHAPE_PROXYTYPE, 0.05 * scale, 0.37 * scale)
        m_shapes[BODYPART_RIGHT_UPPER_LEG] = igeBullet.shape(igeBullet.CAPSULE_SHAPE_PROXYTYPE, 0.07 * scale, 0.45 * scale)
        m_shapes[BODYPART_RIGHT_LOWER_LEG] = igeBullet.shape(igeBullet.CAPSULE_SHAPE_PROXYTYPE, 0.05 * scale, 0.37 * scale)
        m_shapes[BODYPART_LEFT_UPPER_ARM] = igeBullet.shape(igeBullet.CAPSULE_SHAPE_PROXYTYPE, 0.05 * scale, 0.33 * scale)
        m_shapes[BODYPART_LEFT_LOWER_ARM] = igeBullet.shape(igeBullet.CAPSULE_SHAPE_PROXYTYPE, 0.04 * scale, 0.25 * scale)
        m_shapes[BODYPART_RIGHT_UPPER_ARM] = igeBullet.shape(igeBullet.CAPSULE_SHAPE_PROXYTYPE, 0.05 * scale, 0.33 * scale)
        m_shapes[BODYPART_RIGHT_LOWER_ARM] = igeBullet.shape(igeBullet.CAPSULE_SHAPE_PROXYTYPE, 0.04 * scale, 0.25 * scale)

        for i in range(self.BODYPART_COUNT):
            Utils().AddShapeMesh(m_shapes[i])

        self.m_bodies = [0] * self.BODYPART_COUNT
        pos = vmath.vec3(0, 1, 0) * scale + offset
        rot = vmath.quat()
        self.m_bodies[BODYPART_PELVIS] = igeBullet.rigidBody(m_shapes[BODYPART_PELVIS], 1, pos, rot)
        world.add(self.m_bodies[BODYPART_PELVIS])

        pos = vmath.vec3(0, 1.2, 0) * scale + offset
        self.m_bodies[BODYPART_SPINE] = igeBullet.rigidBody(m_shapes[BODYPART_SPINE], 1, pos, rot)
        world.add(self.m_bodies[BODYPART_SPINE])

        pos = vmath.vec3(0, 1.6, 0) * scale + offset
        self.m_bodies[BODYPART_HEAD] = igeBullet.rigidBody(m_shapes[BODYPART_HEAD], 1, pos, rot)
        world.add(self.m_bodies[BODYPART_HEAD])

        pos = vmath.vec3(-0.18, 0.65, 0) * scale + offset
        self.m_bodies[BODYPART_LEFT_UPPER_LEG] = igeBullet.rigidBody(m_shapes[BODYPART_LEFT_UPPER_LEG], 1, pos, rot)
        world.add(self.m_bodies[BODYPART_LEFT_UPPER_LEG])

        pos = vmath.vec3(-0.18, 0.2, 0) * scale + offset
        self.m_bodies[BODYPART_LEFT_LOWER_LEG] = igeBullet.rigidBody(m_shapes[BODYPART_LEFT_LOWER_LEG], 1, pos, rot)
        world.add(self.m_bodies[BODYPART_LEFT_LOWER_LEG])

        pos = vmath.vec3(0.18, 0.65, 0) * scale + offset
        self.m_bodies[BODYPART_RIGHT_UPPER_LEG] = igeBullet.rigidBody(m_shapes[BODYPART_RIGHT_UPPER_LEG], 1, pos, rot)
        world.add(self.m_bodies[BODYPART_RIGHT_UPPER_LEG])

        pos = vmath.vec3(0.18, 0.2, 0) * scale + offset
        self.m_bodies[BODYPART_RIGHT_LOWER_LEG] = igeBullet.rigidBody(m_shapes[BODYPART_RIGHT_LOWER_LEG], 1, pos, rot)
        world.add(self.m_bodies[BODYPART_RIGHT_LOWER_LEG])

        pos = vmath.vec3(-0.35, 1.45, 0) * scale + offset
        rot = vmath.quat(vmath.mat_rotationZYX(3, 0, 0, M_PI_2))
        self.m_bodies[BODYPART_LEFT_UPPER_ARM] = igeBullet.rigidBody(m_shapes[BODYPART_LEFT_UPPER_ARM], 1, pos, rot)
        world.add(self.m_bodies[BODYPART_LEFT_UPPER_ARM])

        pos = vmath.vec3(-0.7, 1.45, 0) * scale + offset
        rot = vmath.quat(vmath.mat_rotationZYX(3, 0, 0, M_PI_2))
        self.m_bodies[BODYPART_LEFT_LOWER_ARM] = igeBullet.rigidBody(m_shapes[BODYPART_LEFT_LOWER_ARM], 1, pos, rot)
        world.add(self.m_bodies[BODYPART_LEFT_LOWER_ARM])

        pos = vmath.vec3(0.35, 1.45, 0) * scale + offset
        rot = vmath.quat(vmath.mat_rotationZYX(3, 0, 0, -M_PI_2))
        self.m_bodies[BODYPART_RIGHT_UPPER_ARM] = igeBullet.rigidBody(m_shapes[BODYPART_RIGHT_UPPER_ARM], 1, pos, rot)
        world.add(self.m_bodies[BODYPART_RIGHT_UPPER_ARM])

        pos = vmath.vec3(0.7, 1.45, 0) * scale + offset
        rot = vmath.quat(vmath.mat_rotationZYX(3, 0, 0, -M_PI_2))
        self.m_bodies[BODYPART_RIGHT_LOWER_ARM] = igeBullet.rigidBody(m_shapes[BODYPART_RIGHT_LOWER_ARM], 1, pos, rot)
        world.add(self.m_bodies[BODYPART_RIGHT_LOWER_ARM])

        for i in range(self.BODYPART_COUNT):
            self.m_bodies[i].linearDamping = 0.05
            self.m_bodies[i].angularDamping = 0.85
            self.m_bodies[i].deactivationTime = 0.8
            self.m_bodies[i].linearSleepingThreshold = 1.6
            self.m_bodies[i].angularSleepingThreshold = 2.5

        m_joints = [0] * JOINT_COUNT
        rotA = vmath.quat(vmath.mat_rotationZYX(3, 0, M_PI_2, 0))
        posA = vmath.vec3(0, 0.15, 0) * scale
        rotB = vmath.quat(vmath.mat_rotationZYX(3, 0, M_PI_2, 0))
        posB = vmath.vec3(0, -0.15, 0) * scale
        m_joints[JOINT_PELVIS_SPINE] = igeBullet.constraint(igeBullet.HINGE_CONSTRAINT_TYPE, self.m_bodies[BODYPART_PELVIS],
                                                            self.m_bodies[BODYPART_SPINE], frameA=(posA, rotA),
                                                            frameB=(posB, rotB))
        m_joints[JOINT_PELVIS_SPINE].setLimit(-M_PI_4, M_PI_2)
        world.add(m_joints[JOINT_PELVIS_SPINE], True)

        rotA = vmath.quat(vmath.mat_rotationZYX(3, 0, 0, M_PI_2))
        posA = vmath.vec3(0, 0.3, 0) * scale
        rotB = vmath.quat(vmath.mat_rotationZYX(3, 0, 0, M_PI_2))
        posB = vmath.vec3(0, -0.14, 0) * scale
        m_joints[JOINT_SPINE_HEAD] = igeBullet.constraint(igeBullet.CONETWIST_CONSTRAINT_TYPE, self.m_bodies[BODYPART_SPINE],
                                                          self.m_bodies[BODYPART_HEAD], frameA=(posA, rotA), frameB=(posB, rotB))
        m_joints[JOINT_SPINE_HEAD].setLimit(M_PI_4, M_PI_4, M_PI_2)
        world.add(m_joints[JOINT_SPINE_HEAD], True)

        rotA = vmath.quat(vmath.mat_rotationZYX(3, 0, 0, -M_PI_4 * 5))
        posA = vmath.vec3(-0.18, -0.10, 0) * scale
        rotB = vmath.quat(vmath.mat_rotationZYX(3, 0, 0, -M_PI_4 * 5))
        posB = vmath.vec3(0, 0.225, 0) * scale
        m_joints[JOINT_LEFT_HIP] = igeBullet.constraint(igeBullet.CONETWIST_CONSTRAINT_TYPE, self.m_bodies[BODYPART_PELVIS],
                                                        self.m_bodies[BODYPART_LEFT_UPPER_LEG], frameA=(posA, rotA),
                                                        frameB=(posB, rotB))
        m_joints[JOINT_LEFT_HIP].setLimit(M_PI_4, M_PI_4, 0)
        world.add(m_joints[JOINT_LEFT_HIP], True)

        rotA = vmath.quat(vmath.mat_rotationZYX(3, 0, M_PI_2, 0))
        posA = vmath.vec3(0, -0.225, 0) * scale
        rotB = vmath.quat(vmath.mat_rotationZYX(3, 0, M_PI_2, 0))
        posB = vmath.vec3(0, 0.185, 0) * scale
        m_joints[JOINT_LEFT_KNEE] = igeBullet.constraint(igeBullet.HINGE_CONSTRAINT_TYPE, self.m_bodies[BODYPART_LEFT_UPPER_LEG],
                                                         self.m_bodies[BODYPART_LEFT_LOWER_LEG], frameA=(posA, rotA),
                                                         frameB=(posB, rotB))
        m_joints[JOINT_LEFT_KNEE].setLimit(0, M_PI_2)
        world.add(m_joints[JOINT_LEFT_KNEE], True)

        rotA = vmath.quat(vmath.mat_rotationZYX(3, 0, 0, M_PI_4))
        posA = vmath.vec3(0.18, -0.10, 0) * scale
        rotB = vmath.quat(vmath.mat_rotationZYX(3, 0, 0, M_PI_4))
        posB = vmath.vec3(0, 0.225, 0) * scale
        m_joints[JOINT_RIGHT_HIP] = igeBullet.constraint(igeBullet.CONETWIST_CONSTRAINT_TYPE, self.m_bodies[BODYPART_PELVIS],
                                                         self.m_bodies[BODYPART_RIGHT_UPPER_LEG], frameA=(posA, rotA),
                                                         frameB=(posB, rotB))
        m_joints[JOINT_RIGHT_HIP].setLimit(M_PI_4, M_PI_4, 0)
        world.add(m_joints[JOINT_RIGHT_HIP], True)

        rotA = vmath.quat(vmath.mat_rotationZYX(3, 0, M_PI_2, 0))
        posA = vmath.vec3(0, -0.225, 0) * scale
        rotB = vmath.quat(vmath.mat_rotationZYX(3, 0, M_PI_2, 0))
        posB = vmath.vec3(0., 0.185, 0) * scale
        m_joints[JOINT_RIGHT_KNEE] = igeBullet.constraint(igeBullet.HINGE_CONSTRAINT_TYPE,
                                                          self.m_bodies[BODYPART_RIGHT_UPPER_LEG],
                                                          self.m_bodies[BODYPART_RIGHT_LOWER_LEG], frameA=(posA, rotA),
                                                          frameB=(posB, rotB))
        m_joints[JOINT_RIGHT_KNEE].setLimit(0, M_PI_2)
        world.add(m_joints[JOINT_RIGHT_KNEE], True)

        rotA = vmath.quat(vmath.mat_rotationZYX(3, 0, 0, M_PI))
        posA = vmath.vec3(-0.2, 0.15, 0) * scale
        rotB = vmath.quat(vmath.mat_rotationZYX(3, 0, 0, M_PI))
        posB = vmath.vec3(0, -0.18, 0) * scale
        m_joints[JOINT_LEFT_SHOULDER] = igeBullet.constraint(igeBullet.CONETWIST_CONSTRAINT_TYPE, self.m_bodies[BODYPART_SPINE],
                                                             self.m_bodies[BODYPART_LEFT_UPPER_ARM], frameA=(posA, rotA),
                                                             frameB=(posB, rotB))
        m_joints[JOINT_LEFT_SHOULDER].setLimit(M_PI_2, M_PI_2, 0)
        world.add(m_joints[JOINT_LEFT_SHOULDER], True)

        rotA = vmath.quat(vmath.mat_rotationZYX(3, 0, M_PI_2, 0))
        posA = vmath.vec3(0, 0.18, 0) * scale
        rotB = vmath.quat(vmath.mat_rotationZYX(3, 0, M_PI_2, 0))
        posB = vmath.vec3(0, -0.14, 0) * scale
        m_joints[JOINT_LEFT_ELBOW] = igeBullet.constraint(igeBullet.HINGE_CONSTRAINT_TYPE,
                                                          self.m_bodies[BODYPART_LEFT_UPPER_ARM],
                                                          self.m_bodies[BODYPART_LEFT_LOWER_ARM], frameA=(posA, rotA),
                                                          frameB=(posB, rotB))
        m_joints[JOINT_LEFT_ELBOW].setLimit(-M_PI_2, 0)
        world.add(m_joints[JOINT_LEFT_ELBOW], True)

        rotA = vmath.quat(vmath.mat_rotationZYX(3, 0, 0, 0))
        posA = vmath.vec3(0.2, 0.15, 0) * scale
        rotB = vmath.quat(vmath.mat_rotationZYX(3, 0, 0, M_PI_2))
        posB = vmath.vec3(0, -0.18, 0) * scale
        m_joints[JOINT_RIGHT_SHOULDER] = igeBullet.constraint(igeBullet.CONETWIST_CONSTRAINT_TYPE, self.m_bodies[BODYPART_SPINE],
                                                              self.m_bodies[BODYPART_RIGHT_UPPER_ARM], frameA=(posA, rotA),
                                                              frameB=(posB, rotB))
        m_joints[JOINT_RIGHT_SHOULDER].setLimit(M_PI_2, M_PI_2, 0)
        world.add(m_joints[JOINT_RIGHT_SHOULDER], True)

        rotA = vmath.quat(vmath.mat_rotationZYX(3, 0, M_PI_2, 0))
        posA = vmath.vec3(0, 0.18, 0) * scale
        rotB = vmath.quat(vmath.mat_rotationZYX(3, 0, M_PI_2, 0))
        posB = vmath.vec3(0, -0.14, 0) * scale
        m_joints[JOINT_RIGHT_ELBOW] = igeBullet.constraint(igeBullet.HINGE_CONSTRAINT_TYPE,
                                                           self.m_bodies[BODYPART_RIGHT_UPPER_ARM],
                                                           self.m_bodies[BODYPART_RIGHT_LOWER_ARM], frameA=(posA, rotA),
                                                           frameB=(posB, rotB))
        m_joints[JOINT_RIGHT_ELBOW].setLimit(-M_PI_2, 0)
        world.add(m_joints[JOINT_RIGHT_ELBOW], True)

        efig.mergeSameMaterialMesh()
Ejemplo n.º 11
0
showcase3D.add(char.figure)
showcase3D.add(efig)

showcase2D.add(controller.frame)
showcase2D.add(controller.button)

cam2D = core.camera('2dcam')
cam2D.orthographicProjection = True
cam2D.position = (0, 0, 100)

loop = True
while loop:
    core.update()
    world.step()

    moveVector = vmath.vec3(0.0, 0.0, 0.0)

    touch = core.singleTouch()
    if touch is not None:
        moveVector = vmath.vec3(touch['cur_x'] - touch['org_x'], 0,
                                -(touch['cur_y'] - touch['org_y']))
        d = vmath.length(moveVector)

    viewMat = cam.getWalkThroughMatrix()
    moveVector = vmath.vec3(viewMat * moveVector)
    char.step(moveVector)
    cam.step(char.figure)
    controller.step()

    efig = utl.GetFigure()
    efig.setJoint(0, position=body2.position, rotation=body2.rotation)
Ejemplo n.º 12
0
import igeCore as core
from igeCore.apputil import graphicsHelper
import igeVmath as vmath
import cv2

core.window(True, 480, 640)

showcase = core.showcase("case01")

cam = core.camera('maincam')
cam.position = vmath.vec3(0, 0, 1.5)

capture = cv2.VideoCapture(0)
width = capture.get(3)  # width
height = capture.get(4)  # height

tex = core.texture("photo", int(width), int(height), core.GL_RGB)   #RGB format
efig = graphicsHelper.createSprite(width*0.001, height*0.001, tex)
efig.position = vmath.vec3(-0.15, 0.3, 0)
showcase.add(efig)

while(True):
    core.update()
    ret, frame = capture.read()
    frame = cv2.flip(frame,-1)
    frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
    tex.setImage(frame)

    core.update()
    cam.shoot(showcase)