/* --------------------------------------------------------------------------- Open Asset Import Library (ASSIMP) --------------------------------------------------------------------------- Copyright (c) 2006-2008, ASSIMP Development Team All rights reserved. See the disclaimer in JNIEnvironment.h for licensing and distribution conditions. --------------------------------------------------------------------------- */ /** @file Implementation of the JNI API for jAssimp */ #include "JNIEnvironment.h" #include "JNILogger.h" using namespace Assimp; namespace Assimp { namespace JNIBridge { // ------------------------------------------------------------------------------------------------ void JNIEnvironment::_assimp::_Bone::Initialize() { JNIEnv* pc = JNIEnvironment::Get()->GetThread()->m_pcEnv; // load a handle to the class if(!(Class = pc->FindClass("assimp.Bone"))) JNIEnvironment::Get()->ThrowNativeError("Unable to load class assimp.Bone"); DefaultCtor = pc->GetMethodID(Class,"",""); // load all fields of the class name = pc->GetFieldID(Class,"name", "Ljava.lang.String;"); weights = pc->GetFieldID(Class,"weights", "[Lassimp.Bone.Weight;"); // check whether all fields have been loaded properly if (!name || !weights) JNIEnvironment::Get()->ThrowNativeError("Unable to load all fields of class assimp.Bone"); Weight.Initialize(); } // ------------------------------------------------------------------------------------------------ void JNIEnvironment::_assimp::_Bone::Fill(jobject obj,const aiBone* pcSrc) { JNIEnv* pc = JNIEnvironment::Get()->GetThread()->m_pcEnv; } // ------------------------------------------------------------------------------------------------ void JNIEnvironment::_assimp::_Bone::_Weight::Initialize() { JNIEnv* pc = JNIEnvironment::Get()->GetThread()->m_pcEnv; // load a handle to the class if(!(Class = pc->FindClass("assimp.Bone.Weight"))) JNIEnvironment::Get()->ThrowNativeError("Unable to load class assimp.Bone.Weights"); DefaultCtor = pc->GetMethodID(Class,"",""); // load all fields of the class index = pc->GetFieldID(Class,"index", "I"); weight = pc->GetFieldID(Class,"weight", "F"); // check whether all fields have been loaded properly if (!index || !weight) JNIEnvironment::Get()->ThrowNativeError("Unable to load all fields of class assimp.Bone.Weight"); } // ------------------------------------------------------------------------------------------------ void JNIEnvironment::_assimp::_Bone::_Weight::Fill(jobject obj,const aiVertexWeight* pcSrc) { JNIEnv* pc = JNIEnvironment::Get()->GetThread()->m_pcEnv; pc->SetIntField(obj,index,(jint)pcSrc->mVertexId); pc->SetFloatField(obj,index,(jfloat)pcSrc->mWeight); } }}