Enum Class ProjectedImageryTarget
- All Implemented Interfaces:
Serializable,Comparable<ProjectedImageryTarget>,Constable
The two options are ProjectedImageryTarget#AllSurfaces and ProjectedImageryTarget#ClosestSurface.
The difference between these is most apparent when the camera is not at a projection position, when transitioning between 2 panoramas or when freely moving the camera for example. In these cases, the camera typically can see things that are not visible in the projection position and thus the imagery does not cover these areas.
When projecting on all surfaces, the resulting view may be somewhat confusing because walls and objects do not block the projection.
When projecting on the closest surface, the geometries in the vicinity of the projection are taken into account. This means that the projection only covers what is actually visible for that projection. For example, if there is a wall in the imagery and that wall is also in the loaded geometry data, the projection will cover the wall but nothing behind the wall. The images below illustrate the difference.
Using ProjectedImageryTarget#ClosestSurface, the projections are painted in 2 distinct steps. This has a consequence for the opacity styling.
- First, a base layer is painted. In this layer, when certain areas are in the line of sight of multiple projections, the images of the closest projection are used. So, a single projection is used for every projected pixel but different pixels may be projected from different projections. The base layer is typically used when showing overviews of multiple panoramas or when transitioning between 2 panoramas.
You can adjust the opacity of the base layer with the baseOpacity property of the style. By default this is set to 0 so only the layer explained next, in item 2, is visible. This makes the default behavior ofProjectedImageryTarget#ClosestSurfacemore consistent with the behavior ofProjectedImageryTarget#AllSurfaces. - On top of the base layer, a layer is painted in which all the projections in the line of sight are used. If, for a certain pixel, multiple projections are in the line of sight, they are painted on top of each other. You can use the opacity property of the style to blend these projections however you like.
Note that:
- Using
ProjectedImageryTarget#ClosestSurfacemay have a performance impact. ProjectedImageryTarget#ClosestSurfacehas a fixed, finite accuracy.- Using
ProjectedImageryTarget#ClosestSurfacemay introduce some visual artifacts in some scenarios.
- Since:
- 2026.1
-
Nested Class Summary
Nested classes/interfaces inherited from class java.lang.Enum
Enum.EnumDesc<E extends Enum<E>> -
Enum Constant Summary
Enum ConstantsEnum ConstantDescriptionProject the image onto every surface intersected by the projection frustum.Project the image only onto the surface closest to the camera along each projected ray. -
Method Summary
Modifier and TypeMethodDescriptionstatic ProjectedImageryTargetReturns the enum constant of this class with the specified name.static ProjectedImageryTarget[]values()Returns an array containing the constants of this enum class, in the order they are declared.
-
Enum Constant Details
-
AllSurfaces
Project the image onto every surface intersected by the projection frustum.Surfaces that are further away from the projector are also projected, even when other surfaces are between them and the projector.
-
ClosestSurface
Project the image only onto the surface closest to the camera along each projected ray.Images are not projected on surfaces that are occluded by other surfaces (from the camera's point of view).
-
-
Method Details
-
values
Returns an array containing the constants of this enum class, in the order they are declared.- Returns:
- an array containing the constants of this enum class, in the order they are declared
-
valueOf
Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)- Parameters:
name- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
IllegalArgumentException- if this enum class has no constant with the specified nameNullPointerException- if the argument is null
-