Пример #1
0
// get pointer to a lamp
static KX_LightObject *getLamp(PyObject *obj)
{
	// if object is available
	if (obj == NULL) return NULL;

	// returns NULL if obj is not a KX_LightObject
	return lightObjectType.checkType(obj);
}
Пример #2
0
// object initialization
static int ImageRender_init(PyObject *pySelf, PyObject *args, PyObject *kwds)
{
    // parameters - scene object
    PyObject *scene;
    // camera object
    PyObject *camera;
    // parameter keywords
    static const char *kwlist[] = {"sceneObj", "cameraObj", NULL};
    // get parameters
    if (!PyArg_ParseTupleAndKeywords(args, kwds, "OO",
                                     const_cast<char**>(kwlist), &scene, &camera))
        return -1;
    try
    {
        // get scene pointer
        KX_Scene * scenePtr (NULL);
        if (scene != NULL) scenePtr = sceneType.checkType(scene);
        // throw exception if scene is not available
        if (scenePtr == NULL) THRWEXCP(SceneInvalid, S_OK);

        // get camera pointer
        KX_Camera * cameraPtr (NULL);
        if (camera != NULL) cameraPtr = cameraType.checkType(camera);
        // throw exception if camera is not available
        if (cameraPtr == NULL) THRWEXCP(CameraInvalid, S_OK);

        // get pointer to image structure
        PyImage *self = reinterpret_cast<PyImage*>(pySelf);
        // create source object
        if (self->m_image != NULL) delete self->m_image;
        self->m_image = new ImageRender(scenePtr, cameraPtr);
    }
    catch (Exception & exp)
    {
        exp.report();
        return -1;
    }
    // initialization succeded
    return 0;
}
Пример #3
0
// get pointer to material
RAS_IPolyMaterial * getMaterial (PyObject *obj, short matID)
{
	// if object is available
	if (obj != NULL)
	{
		// get pointer to texture image
		KX_GameObject * gameObj = gameObjectType.checkType(obj);
		if (gameObj != NULL && gameObj->GetMeshCount() > 0)
		{
			// get material from mesh
			RAS_MeshObject * mesh = gameObj->GetMesh(0);
			RAS_MeshMaterial *meshMat = mesh->GetMeshMaterial(matID);
			if (meshMat != NULL && meshMat->m_bucket != NULL)
				// return pointer to polygon or blender material
				return meshMat->m_bucket->GetPolyMaterial();
		}
	}
	// otherwise material was not found
	return NULL;
}