FME Augmented Reality (FME AR) Feature Representation
In addition to the generic FME feature attributes that FME Workbench adds to all features (see About Feature Type Attributes), this format also adds format-specific attributes (Format Attributes).
FME AR assets (features) consist of geometry and geometry attributes. All FME AR assets have one predefined attribute, obj_type, which identifies the type of the geometry. Geometry types are 3D (x,y,z) and obj_face can contain texture and normal coordinates.
The format-specific data obj_group, obj_material_ref, obj_object, and obj_smooth_group are treated as traits.
All obj geometry attributes are optional.
Attribute Name |
Value |
---|---|
obj_type |
The type of geometry read from the table. This attribute will contain one of:
Default: No default |
Anchor
An FME AR file can optionally specify an anchor (the position in the world, specified in LL84) where the model should be placed when viewing as geolocated. An FME AR file may only have one anchor provided – anchors beyond the first will be ignored and logged.
A feature must have both the fmear_anchor_latitude and fmear_anchor_longitude attributes with numeric values in order to be considered an anchor. Any feature, regardless of geometry, can be used to create an Anchor for an FME AR file by setting the attribute fmear_location_feature to a value of anchor.
An Anchor may optionally have a Point geometry to specify scene coordinates to which the latitude and longitude map. If the Anchor feature has no geometry, model center (0, 0) is assumed to be the anchor point. Anchors may not have other types of geometry set.
Attribute Name |
Function |
---|---|
fmear_anchor_latitude |
The latitude the model’s origin maps to in LL84. |
fmear_anchor_longitude |
The longitude the model’s origin maps to in LL84. |
fmear_location_feature |
When set to anchor, specifies that the feature is an Anchor. |
Viewpoints
In order to be able to easily jump between different points within a large model, an FME AR file may contain a number of Viewpoints, which, when viewed with a supported app, allow users to recenter the view on them. This allows multiple points of interest on a model to be reached quickly.
A feature with the attribute fmear_location_feature set to viewpoint and containing a Point geometry will be recorded in the output file as a viewpoint. Features that have the attribute but are not points will cause a warning to be logged. Viewpoints may be specified with either 3D or 2D points. In the case of 2D, surface level (Z = 0) will be assumed. If the writer has a coordinate system set, viewpoints must also have a coordinate system set.
A Default Viewpoint indicates the point in the model that should be centered on the detected surface when loaded by an app. A default of (0, 0, 0), the model origin, will be assumed when none is provided in the translation. To specify the default viewpoint, combine a Point geometry and the desired location with an anchor feature. The fmear_location_feature must be set to anchor.
Model Expiration Date
In FME versions 2020.0+, the FME AR writer will check each incoming feature to see if it has the attribute fmear_model_expiry. If it does, and if it is set to an FME-format date, FME will write a model expiration date to the .fmear file.
Note: The writer will use the first valid value it finds as features are written. Once a correctly formatted date value is found, subsequent features will not be checked for this attribute. Invalid values will cause a warning to be logged and subsequent features will still be checked.
User Metadata
In FME versions 2021.0+, the FME AR writer will check the first incoming feature to see if it has the attribute fmear_user_json (subsequent features with the attribute are ignored).
If the first feature has the attribute, and the snippet is valid, FME will write user-specified metadata to the settings.json file. Note that only one value per model is stored as an escaped string.
Note: The FME AR writer checks only for the fmear_user_json attribute – it does not check whether JSON is valid.