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();
}