SkeletonHelper constructor

SkeletonHelper(
  1. Object3D object
)

object -- Usually an instance of SkinnedMesh. However, any instance of Object3D can be used if it represents a hierarchy of Bones (via Object3D.children).

Implementation

factory SkeletonHelper(Object3D object) {
  final bones = getBoneList(object);
  final geometry = BufferGeometry();

  List<double> vertices = [];
  List<double> colors = [];

  final color1 = Color(0, 0, 1);
  final color2 = Color(0, 1, 0);

  for (int i = 0; i < bones.length; i++) {
    final bone = bones[i];

    if (bone.parent is Bone) {
      vertices.addAll([0, 0, 0]);
      vertices.addAll([0, 0, 0]);
      colors.addAll([color1.red, color1.green, color1.blue]);
      colors.addAll([color2.red, color2.green, color2.blue]);
    }
  }

  geometry.setAttributeFromString('position',Float32BufferAttribute.fromList(vertices, 3, false));
  geometry.setAttributeFromString('color',Float32BufferAttribute.fromList(colors, 3, false));

  final material = LineBasicMaterial.fromMap({
    "vertexColors": true,
    "depthTest": false,
    "depthWrite": false,
    "toneMapped": false,
    "transparent": true
  });

  final keletonHelper = SkeletonHelper.create(geometry, material);

  keletonHelper.root = object;
  keletonHelper.bones = bones;

  keletonHelper.matrix = object.matrixWorld;

  return keletonHelper;
}