Java源码示例:com.google.ar.sceneform.rendering.ModelRenderable

示例1
public void add(Vector3 pointInWorld) {
  Vector3 pointInLocal = anchorNode.worldToLocalPoint(pointInWorld);
  List<Vector3> points = lineSimplifier.getPoints();
  if (getNumOfPoints() < 1) {
    lineSimplifier.add(pointInLocal);
    return;
  }

  Vector3 prev = points.get(points.size() - 1);
  Vector3 diff = Vector3.subtract(prev, pointInLocal);
  if (diff.length() < MINIMUM_DISTANCE_BETWEEN_POINTS) {
    return;
  }

  lineSimplifier.add(pointInLocal);

  RenderableDefinition renderableDefinition =
      ExtrudedCylinder.makeExtrudedCylinder(CYLINDER_RADIUS, points, material);
  if (shape == null) {
    shape = ModelRenderable.builder().setSource(renderableDefinition).build().join();
    node.setRenderable(shape);
  } else {
    shape.updateFromDefinition(renderableDefinition);
  }
}
 
示例2
private Node createShapeNode(
    AnchorNode anchorNode, ModelRenderable renderable, Vector3 localPosition) {
  Node shape = new Node();
  shape.setParent(anchorNode);
  shape.setRenderable(renderable);
  shape.setLocalPosition(localPosition);
  return shape;
}
 
示例3
private void addNode(ArFragment fragment, Anchor createAnchor, ModelRenderable renderable) {

        AnchorNode anchorNode = new AnchorNode(createAnchor);
        TransformableNode transformableNode = new TransformableNode(fragment.getTransformationSystem());
        transformableNode.setRenderable(renderable);
        transformableNode.setParent(anchorNode);
        fragment.getArSceneView().getScene().addChild(anchorNode);
        transformableNode.select();
    }