I have two blender objects in .g3dj
format. Below is the code :
private void createBaseArm1(){
// Now load the model by name from asset folder
baseArm1 = modelLoader.loadModel(Gdx.files.getFileHandle("arm1.g3dj", Files.FileType.Internal));
//getting boundingBox for model to retrieve its co-ordinates
baseArm1.calculateBoundingBox(baseBoundingBox);
baseArm1PositionX = 0f;
baseArm1PositionY = -3.0f;
baseArm1PositionZ = 1.0f;
baseArm1PositionVector = new Vector3(baseArm1PositionX, baseArm1PositionY, baseArm1PositionZ);
baseArm1Instance = new ModelInstance(baseArm1, baseArm1PositionVector);
baseArm1Instance.transform.set(baseArm1PositionVector, baseArm1Rotation);
}
private void createArm2(){
Matrix4 arm2Matrix4 = new Matrix4();
arm2Matrix4.translate(baseArm1PositionX, baseArm1PositionY + baseBoundingBox.getHeight(), baseArm1PositionZ);
armModel2 = modelLoader.loadModel(Gdx.files.getFileHandle("arm2.g3dj", Files.FileType.Internal));
arm2Instance = new ModelInstance(armModel2, arm2Matrix4);
}
public void rotateBaseArm1(){
baseArm1Instance .transform.translate(0, 0, 0)
.rotate(0, 0, 1, 10)
.translate(0, 0, 0);
}
public void rotateArm2(){
arm2Instance.transform.translate(0, 0, 0)
.rotate(0, 0, 1, 10)
.translate(0, 0, 0);
}
baseArm1Instance
is the base for arm2Instance
. I can rotate both baseArm1Instance
and arm2Instance
independently. My requirement is if baseArm1Instance
is moved/rotated then arm2Instance
should also move/rotate w.r.t its base.
I am new to gaming. I have tried several links but not able to get any success. Any help will be great. Thanks.