This repository has been archived by the owner on Aug 8, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[android] - add binding support for Light
- Loading branch information
Showing
30 changed files
with
1,557 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
181 changes: 181 additions & 0 deletions
181
...form/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/light/Light.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,181 @@ | ||
// This file is generated. Edit android/platform/scripts/generate-style-code.js, then run `make android-style-code`. | ||
|
||
package com.mapbox.mapboxsdk.style.light; | ||
|
||
import android.support.annotation.ColorInt; | ||
import android.support.annotation.NonNull; | ||
import android.support.annotation.UiThread; | ||
|
||
import com.mapbox.mapboxsdk.style.layers.Property; | ||
import com.mapbox.mapboxsdk.style.layers.PropertyFactory; | ||
import com.mapbox.mapboxsdk.style.layers.TransitionOptions; | ||
|
||
/** | ||
* The global light source. | ||
* | ||
* @see <a href="https://www.mapbox.com/mapbox-gl-style-spec/#light>">The online documentation</a> | ||
*/ | ||
@UiThread | ||
public class Light { | ||
|
||
private long nativePtr; | ||
|
||
/** | ||
* Creates a Light. | ||
* | ||
* @param nativePtr pointer used by core | ||
*/ | ||
public Light(long nativePtr) { | ||
this.nativePtr = nativePtr; | ||
} | ||
|
||
/** | ||
* Set the Anchor property. Whether extruded geometries are lit relative to the map or viewport. | ||
* | ||
* @param anchor as String | ||
*/ | ||
public void setAnchor(@Property.ANCHOR String anchor) { | ||
nativeSetAnchor(anchor); | ||
} | ||
|
||
/** | ||
* Get the Anchor property. Whether extruded geometries are lit relative to the map or viewport. | ||
* | ||
* @return anchor as String | ||
*/ | ||
@Property.ANCHOR public String getAnchor() { | ||
return nativeGetAnchor(); | ||
} | ||
|
||
/** | ||
* Set the Position property. Position of the light source relative to lit (extruded) geometries, in [r radial coordinate, a azimuthal angle, p polar angle] where r indicates the distance from the center of the base of an object to its light, a indicates the position of the light relative to 0° (0° when `light.anchor` is set to `viewport` corresponds to the top of the viewport, or 0° when `light.anchor` is set to `map` corresponds to due north, and degrees proceed clockwise), and p indicates the height of the light (from 0°, directly above, to 180°, directly below). | ||
* | ||
* @param position of the light | ||
*/ | ||
public void setPosition(@NonNull Position position) { | ||
nativeSetPosition(position); | ||
} | ||
|
||
/** | ||
* Get the Position property. Position of the light source relative to lit (extruded) geometries, in [r radial coordinate, a azimuthal angle, p polar angle] where r indicates the distance from the center of the base of an object to its light, a indicates the position of the light relative to 0° (0° when `light.anchor` is set to `viewport` corresponds to the top of the viewport, or 0° when `light.anchor` is set to `map` corresponds to due north, and degrees proceed clockwise), and p indicates the height of the light (from 0°, directly above, to 180°, directly below). | ||
* | ||
* @return position as Position | ||
*/ | ||
public Position getPosition() { | ||
return nativeGetPosition(); | ||
} | ||
|
||
/** | ||
* Get the Position property transition options. | ||
* | ||
* @return transition options for position | ||
*/ | ||
public TransitionOptions getPositionTransition() { | ||
return nativeGetPositionTransition(); | ||
} | ||
|
||
/** | ||
* Set the Position property transition options. | ||
* | ||
* @param options transition options for position | ||
*/ | ||
public void setPositionTransition(TransitionOptions options) { | ||
nativeSetPositionTransition(options.getDuration(), options.getDelay()); | ||
} | ||
|
||
/** | ||
* Set the Color property. Color tint for lighting extruded geometries. | ||
* | ||
* @param color as int | ||
*/ | ||
public void setColor(@ColorInt int color) { | ||
nativeSetColor(PropertyFactory.colorToRgbaString(color)); | ||
} | ||
|
||
/** | ||
* Set the Color property. Color tint for lighting extruded geometries. | ||
* | ||
* @param color as String | ||
*/ | ||
public void setColor(String color) { | ||
nativeSetColor(color); | ||
} | ||
|
||
/** | ||
* Get the Color property. Color tint for lighting extruded geometries. | ||
* | ||
* @return color as String | ||
*/ | ||
public String getColor() { | ||
return nativeGetColor(); | ||
} | ||
|
||
/** | ||
* Get the Color property transition options. | ||
* | ||
* @return transition options for color | ||
*/ | ||
public TransitionOptions getColorTransition() { | ||
return nativeGetColorTransition(); | ||
} | ||
|
||
/** | ||
* Set the Color property transition options. | ||
* | ||
* @param options transition options for color | ||
*/ | ||
public void setColorTransition(TransitionOptions options) { | ||
nativeSetColorTransition(options.getDuration(), options.getDelay()); | ||
} | ||
|
||
/** | ||
* Set the Intensity property. Intensity of lighting (on a scale from 0 to 1). Higher numbers will present as more extreme contrast. | ||
* | ||
* @param intensity as Float | ||
*/ | ||
public void setIntensity(float intensity) { | ||
nativeSetIntensity(intensity); | ||
} | ||
|
||
/** | ||
* Get the Intensity property. Intensity of lighting (on a scale from 0 to 1). Higher numbers will present as more extreme contrast. | ||
* | ||
* @return intensity as Float | ||
*/ | ||
public float getIntensity() { | ||
return nativeGetIntensity(); | ||
} | ||
|
||
/** | ||
* Get the Intensity property transition options. | ||
* | ||
* @return transition options for intensity | ||
*/ | ||
public TransitionOptions getIntensityTransition() { | ||
return nativeGetIntensityTransition(); | ||
} | ||
|
||
/** | ||
* Set the Intensity property transition options. | ||
* | ||
* @param options transition options for intensity | ||
*/ | ||
public void setIntensityTransition(TransitionOptions options) { | ||
nativeSetIntensityTransition(options.getDuration(), options.getDelay()); | ||
} | ||
|
||
private native void nativeSetAnchor(String anchor); | ||
private native String nativeGetAnchor(); | ||
private native void nativeSetPosition(Position position); | ||
private native Position nativeGetPosition(); | ||
private native TransitionOptions nativeGetPositionTransition(); | ||
private native void nativeSetPositionTransition(long duration, long delay); | ||
private native void nativeSetColor(String color); | ||
private native String nativeGetColor(); | ||
private native TransitionOptions nativeGetColorTransition(); | ||
private native void nativeSetColorTransition(long duration, long delay); | ||
private native void nativeSetIntensity(float intensity); | ||
private native float nativeGetIntensity(); | ||
private native TransitionOptions nativeGetIntensityTransition(); | ||
private native void nativeSetIntensityTransition(long duration, long delay); | ||
} |
81 changes: 81 additions & 0 deletions
81
...m/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/style/light/Position.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
package com.mapbox.mapboxsdk.style.light; | ||
|
||
/** | ||
* Position of the light source relative to lit (extruded) geometries. | ||
* <p> | ||
* The position is constructed out of a radial coordinate, an azimuthal angle and a polar angle. | ||
* where the radial coordinate indicates the distance from the center of the base of an object to its light, the | ||
* azimuthal angle indicates the position of the light relative to 0° (0° when | ||
* {@link com.mapbox.mapboxsdk.style.layers.Property.ANCHOR} is set to viewport corresponds to the top of the | ||
* viewport, or 0° when {@link com.mapbox.mapboxsdk.style.layers.Property.ANCHOR} is set to map corresponds to due | ||
* north, and degrees proceed clockwise), and polar indicates the height of the light | ||
* (from 0°, directly above, to 180°, directly below). | ||
*/ | ||
public class Position { | ||
|
||
private float radialCoordinate; | ||
private float azimuthalAngle; | ||
private float polarAngle; | ||
|
||
/** | ||
* Creates a Position from a radial coordinate, an azimuthal angle & a polar angle. | ||
* | ||
* @param radialCoordinate the distance from the center of the base of an object to its light | ||
* @param azimuthalAngle the position of the light relative to 0° | ||
* @param polarAngle the height of the light | ||
*/ | ||
public Position(float radialCoordinate, float azimuthalAngle, float polarAngle) { | ||
this.radialCoordinate = radialCoordinate; | ||
this.azimuthalAngle = azimuthalAngle; | ||
this.polarAngle = polarAngle; | ||
} | ||
|
||
/** | ||
* Returns a Position from a radial coordinate, an azimuthal angle & a polar angle | ||
* | ||
* @param radialCoordinate the radial coordinate | ||
* @param azimuthalAngle the azimuthal angle | ||
* @param polarAngle the polar angle | ||
* @return the created Position object | ||
*/ | ||
public static Position fromPosition(float radialCoordinate, float azimuthalAngle, float polarAngle) { | ||
return new Position(radialCoordinate, azimuthalAngle, polarAngle); | ||
} | ||
|
||
@Override | ||
public boolean equals(Object o) { | ||
if (this == o) { | ||
return true; | ||
} | ||
if (o == null || getClass() != o.getClass()) { | ||
return false; | ||
} | ||
|
||
Position position = (Position) o; | ||
|
||
if (Float.compare(position.radialCoordinate, radialCoordinate) != 0) { | ||
return false; | ||
} | ||
if (Float.compare(position.azimuthalAngle, azimuthalAngle) != 0) { | ||
return false; | ||
} | ||
return Float.compare(position.polarAngle, polarAngle) == 0; | ||
} | ||
|
||
@Override | ||
public int hashCode() { | ||
int result = (radialCoordinate != +0.0f ? Float.floatToIntBits(radialCoordinate) : 0); | ||
result = 31 * result + (azimuthalAngle != +0.0f ? Float.floatToIntBits(azimuthalAngle) : 0); | ||
result = 31 * result + (polarAngle != +0.0f ? Float.floatToIntBits(polarAngle) : 0); | ||
return result; | ||
} | ||
|
||
@Override | ||
public String toString() { | ||
return "Position{" | ||
+ "radialCoordinate=" + radialCoordinate | ||
+ ", azimuthalAngle=" + azimuthalAngle | ||
+ ", polarAngle=" + polarAngle | ||
+ '}'; | ||
} | ||
} |
Oops, something went wrong.