public class
Anchor
Describes a fixed location and orientation in the real world. To stay at a fixed location in physical space, the numerical description of this position will update as ARCore's understanding of the space improves.
Use getPose()
to get the current numerical location of this anchor. This location may
change any time Session.update()
is called, but will never spontaneously change.
mathematically:
point_world = anchor.getPose().transformPoint(point_local);
point_world = anchor.getPose().toMatrix() * point_local;
anchor.getPose().toMatrix(...)
provides a matrix appropriate for composing with the
view and projection matrices when rendering an object at this anchor's location.
Anchor
s are hashable and may for example be used as keys in HashMap
s.
Anchors incur ongoing processing overhead within ARCore. To release unneeded anchors use
detach()
.
Nested Classes
enum
|
Anchor.CloudAnchorState |
Result of a Cloud Anchor hosting or resolving operation. | |
enum
|
Anchor.RooftopAnchorState |
Describes the Rooftop anchor state of asynchronous operation launched by Earth.resolveAnchorOnRooftopAsync(double, double, double, float, float, float, float, BiConsumer) . |
|
enum
|
Anchor.TerrainAnchorState |
Describes the result of a Terrain anchor operation. |
Public Methods
void
|
detach()
Detaches this Anchor from its Trackable removes it from the Session.
|
boolean
|
|
String
|
getCloudAnchorId()
This method is deprecated.
For cloud anchors hosted by the async method
Session.hostCloudAnchorAsync(Anchor, int, BiConsumer) , the result Cloud Anchor ID can be
obtained from the corresponding callback or Future object. This method will always return
the empty string for anchors created through async methods.
|
Anchor.CloudAnchorState
|
getCloudAnchorState()
This method is deprecated.
For Cloud Anchor operations created by the async Cloud Anchor methods, the result
state can be obtained from the corresponding callback or
Future object. This method
will always return Anchor.CloudAnchorState.NONE for anchors created through async methods.
|
Pose
|
getPose()
Returns the pose of the anchor in the world coordinate space.
|
Anchor.TerrainAnchorState
|
getTerrainAnchorState()
This method is deprecated.
For resolve operations created by the async method
Earth.resolveAnchorOnTerrainAsync(double, double, double, float, float, float, float, BiConsumer) , the result state can be obtained for the callback or future object.
|
TrackingState
|
getTrackingState()
Returns the current state of the pose of this anchor.
|
int
|
hashCode()
Returns a hash code value for the object.
|
Inherited Methods
Public Methods
public void detach ()
detach
public void detach()
Detaches this Anchor from its Trackable removes it from the Session. After calling,
getTrackingState() will return TrackingState.STOPPED
and ARCore will
no longer update this Anchor's pose or return it from Session.getAllAnchors()
.
public boolean equals (Object obj)
equals
public boolean equals( Object obj )
Indicates whether some other object is an Anchor
referencing the same logical anchor as
this one.
Details | |||
---|---|---|---|
Parameters |
|
||
Returns | true if this object is the same as the obj argument; false otherwise. |
||
See Also |
public String getCloudAnchorId ()
getCloudAnchorId
public String getCloudAnchorId()
This method was deprecated.
For cloud anchors hosted by the async method Session.hostCloudAnchorAsync(Anchor, int, BiConsumer)
, the result Cloud Anchor ID can be
obtained from the corresponding callback or Future object. This method will always return
the empty string for anchors created through async methods.
Gets the current cloud anchor ID for this anchor. Returns an empty string if getCloudAnchorState()
returns Anchor.CloudAnchorState.TASK_IN_PROGRESS
or
Anchor.CloudAnchorState.NONE
.
public Anchor.CloudAnchorState getCloudAnchorState ()
getCloudAnchorState
public Anchor.CloudAnchorState getCloudAnchorState()
This method was deprecated.
For Cloud Anchor operations created by the async Cloud Anchor methods, the result
state can be obtained from the corresponding callback or Future
object. This method
will always return Anchor.CloudAnchorState.NONE
for anchors created through async methods.
Gets the current Cloud Anchor state of this anchor.
public Pose getPose ()
getPose
public Pose getPose()
Returns the pose of the anchor in the world coordinate space. This pose may change each time
Session.update()
is called. This pose should only be used for rendering if getTrackingState()
returns TrackingState.TRACKING
.
public Anchor.TerrainAnchorState getTerrainAnchorState ()
getTerrainAnchorState
public Anchor.TerrainAnchorState getTerrainAnchorState()
This method was deprecated.
For resolve operations created by the async method Earth.resolveAnchorOnTerrainAsync(double, double, double, float, float, float, float, BiConsumer)
, the result state can be obtained for the callback or future object.
Gets the current Terrain anchor state of this anchor. This state is guaranteed not to change
until Session.update()
is called. For Anchors that are not Terrain anchors, this function
returns Anchor.TerrainAnchorState.NONE
. See Anchor.TerrainAnchorState
for the possible
Terrain anchor states.
public TrackingState getTrackingState ()
getTrackingState
public TrackingState getTrackingState()
Returns the current state of the pose of this anchor. If this state is anything other than
TrackingState.TRACKING
the pose should not be considered useful.
Note: Starting in ARCore 1.12, changing the active camera config using Session.setCameraConfig(CameraConfig)
may cause the tracking state on certain devices to
become permanently PAUSED. For consistent behavior across all supported devices, release any
previously created anchors when setting a new camera config.
public int hashCode ()
hashCode
public int hashCode()
Returns a hash code value for the object. This method is supported for the benefit of hash
tables such as those provided by HashMap
.
Details | |
---|---|
Returns | a hash code value for this object. |
See Also |