package application_fx; import java.util.ArrayList; import java.util.List; import javafx.scene.shape.TriangleMesh; import javafx.scene.transform.Affine; import javafx.scene.transform.NonInvertibleTransformException; /** * ボーンアニメーション用のメッシュクラス * @author tomo * */ public class SkinTriangleMesh extends TriangleMesh { // 基本的な行列 private final Affine zeroMatrix = new Affine( 0,0,0,0,0,0,0,0,0,0,0,0 ); // バインディングポーズ情報 private float[] bindingPoints = null; private Affine[] bindingPointMatrixes = null; private Affine[] bindingJointMatrixes = null; // 基本情報 private float[] points = null; private int[] influenceCounts = null; private float[] weights = null; private int[] influences = null; // 関節情報 private Affine[] jointMatrixes = null; /** * 頂点を設定 * @param points */ public void setPoints( float[] points ) { // バインディング・ポーズを保存 this.bindingPoints = points; // 行列に変換 List poses = new ArrayList(); for( int i=0 ; i