Ejemplo n.º 1
0
std::string java_to_string(JNIEnv *env, jobject object) {
    if (!object) {
        return std::string("null");
    }
    LocalFrame(env, 4);
#ifndef M3BP_NO_THREAD_LOCAL
    if (!_object_to_string) {
        jclass clazz = env->FindClass("java/lang/Object");
        check_java_exception(env);
        _object_to_string = env->GetMethodID(clazz, "toString", "()Ljava/lang/String;");
        check_java_exception(env);
    }
#else
    jclass clazz = env->FindClass("java/lang/Object");
    check_java_exception(env);
    jmethodID _object_to_string = env->GetMethodID(clazz, "toString", "()Ljava/lang/String;");
    check_java_exception(env);
#endif
    jstring string = (jstring) env->CallObjectMethod(object, _object_to_string);
    check_java_exception(env);
    if (!string) {
        return std::string("null");
    }
    const char *contents = env->GetStringUTFChars(string, 0);
    std::string results(contents);
    env->ReleaseStringUTFChars(string, contents);
    return results;
}
Ejemplo n.º 2
0
vec3f SceneVPMObject::getBSDF(const Ray& inRay, const Ray& outRay) const
{
	if(outRay.contactObject == NULL)
		return ds * bsdf->evaluate(LocalFrame(), inRay.direction, outRay.direction);
	if(outRay.contactObject && outRay.contactObject != this)
		return outRay.contactObject->getBSDF(inRay, outRay);
	return vec3f(0, 0, 0);
}