Android Open Source - lifx-sdk-android L F X H S B K Color From Project Back to project page lifx-sdk-android .
License The source code is released under:
MIT License
If you think the Android project lifx-sdk-android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code //
// LFXHSBKColor.java
// LIFX/ / f r o m w w w . j a v a 2 s . c o m
//
// Created by Jarrod Boyes on 24/03/14.
// Copyright (c) 2014 LIFX Labs. All rights reserved.
//
package lifx.java.android.entities;
public class LFXHSBKColor implements Cloneable
{
private static final float MINIMUM_SATURATION = 0.0001f;
private float hue; // 0.0 - 360.0
private float saturation; // 0.0 - 1.0
private float brightness; // 0.0 - 1.0
private int kelvin; // 0 - 10,000
private LFXHSBKColor()
{
this.hue = 0.0f;
this.saturation = 0.0f;
this.brightness = 1.0f;
this.kelvin = 3500;
}
public float getHue()
{
return hue;
}
public float getSaturation()
{
return saturation;
}
public float getBrightness()
{
return brightness;
}
public int getKelvin()
{
return kelvin;
}
public static LFXHSBKColor getColor( float hue, float saturation, float brightness, int kelvin)
{
LFXHSBKColor color = new LFXHSBKColor();
color.hue = hue;
color.saturation = saturation;
color.brightness = brightness;
color.kelvin = kelvin;
return color;
}
public boolean isWhite() // Returns YES if saturation = 0.0;
{
if ( saturation <= MINIMUM_SATURATION)
{
return true;
}
return false;
}
public String toString() // "HSBK: (0.1, 0.4, 0.2, 5000)"
{
return "HSBK: (" + hue + ", " + saturation + ", " + brightness + ", " + kelvin + ")" ;
}
public static LFXHSBKColor averageOfColors( LFXHSBKColor[] colors)
{
if ( colors.length == 0)
{
return null;
}
float hueXTotal = 0;
float hueYTotal = 0;
float saturationTotal = 0;
float brightnessTotal = 0;
long kelvinTotal = 0;
for ( LFXHSBKColor aColor : colors)
{
hueXTotal += Math.sin( aColor.hue * Math.PI / 180.0);
hueYTotal += Math.cos( aColor.hue * Math.PI / 180.0);
saturationTotal += aColor.saturation;
brightnessTotal += aColor.brightness;
if ( aColor.kelvin == 0)
{
kelvinTotal += 3500;
}
else
{
kelvinTotal += aColor.kelvin;
}
}
float M_1_PI = (float ) (1.0f / Math.PI);
float hue = (float ) (Math.atan2( hueXTotal, hueYTotal) * 0.5 * M_1_PI);
if (hue < 0.0) hue += 1.0;
float saturation = saturationTotal / (float ) colors.length;
float brightness = brightnessTotal / (float ) colors.length;
int kelvin = (int ) (kelvinTotal / colors.length);
return LFXHSBKColor.getColor( hue, saturation, brightness, kelvin);
}
@Override
protected Object clone() throws CloneNotSupportedException
{
LFXHSBKColor newColor = new LFXHSBKColor();
newColor.hue = this.hue;
newColor.saturation = this.saturation;
newColor.brightness = this.brightness;
newColor.kelvin = this.kelvin;
return newColor;
}
public boolean equals( LFXHSBKColor aColor)
{
if ( aColor == null)
{
return false;
}
if ( aColor.hue != this.hue ||
aColor.saturation != this.saturation ||
aColor.brightness != this.brightness ||
aColor.kelvin != this.kelvin)
{
return false;
}
return true;
}
}
Java Source Code List com.example.lifx_sdk_samples.LFXSDKLightEditLabelActivity.java com.example.lifx_sdk_samples.LFXSDKLightListAdapter.java com.example.lifx_sdk_samples.LFXSDKLightPowerActivity.java com.example.lifx_sdk_samples.LFXSDKLightRandomColorActivity.java com.example.lifx_sdk_samples.LFXSDKSamplesActivity.java com.example.lifx_sdk_samples.LFXSDKTaggedLightCollectionListAdapter.java lifx.java.android.client.LFXClient.java lifx.java.android.constant.LFXSDKConstants.java lifx.java.android.entities.LFXHSBKColor.java lifx.java.android.entities.LFXLightTarget.java lifx.java.android.entities.LFXTypes.java lifx.java.android.entities.internal.LFXBinaryPath.java lifx.java.android.entities.internal.LFXBinaryTargetID.java lifx.java.android.entities.internal.LFXBinaryTypes.java lifx.java.android.entities.internal.LFXDeviceMapping.java lifx.java.android.entities.internal.LFXGatewayDescriptor.java lifx.java.android.entities.internal.LFXMessageObservationDescriptor.java lifx.java.android.entities.internal.LFXMessage.java lifx.java.android.entities.internal.LFXSiteID.java lifx.java.android.entities.internal.LFXTagMapping.java lifx.java.android.entities.internal.LFXTarget.java lifx.java.android.entities.internal.structle.LxProtocolDevice.java lifx.java.android.entities.internal.structle.LxProtocolLight.java lifx.java.android.entities.internal.structle.LxProtocolSensor.java lifx.java.android.entities.internal.structle.LxProtocolWan.java lifx.java.android.entities.internal.structle.LxProtocolWifi.java lifx.java.android.entities.internal.structle.LxProtocol.java lifx.java.android.entities.internal.structle.Lx.java lifx.java.android.entities.internal.structle.StructleTypes.java lifx.java.android.internal.LFXWiFiObserver.java lifx.java.android.light.LFXLightCollection.java lifx.java.android.light.LFXLight.java lifx.java.android.light.LFXTaggedLightCollection.java lifx.java.android.light.internal.LFXAllLightsCollection.java lifx.java.android.network_context.LFXNetworkContext.java lifx.java.android.network_context.internal.routing_table.LFXRoutingTable.java lifx.java.android.network_context.internal.transport_manager.LFXTransportManager.java lifx.java.android.network_context.internal.transport_manager.gateway_connection.LFXGatewayConnection.java lifx.java.android.network_context.internal.transport_manager.gateway_connection.LFXSocketGeneric.java lifx.java.android.network_context.internal.transport_manager.gateway_connection.LFXSocketTCP.java lifx.java.android.network_context.internal.transport_manager.gateway_connection.LFXSocketUDP.java lifx.java.android.network_context.internal.transport_manager.gateway_connection.LFXTCPGatewayConnection.java lifx.java.android.network_context.internal.transport_manager.gateway_connection.LFXUDPGatewayConnection.java lifx.java.android.network_context.internal.transport_manager.lan.LFXLANTransportManager.java lifx.java.android.network_context.internal.transport_manager.lan.gateway_discovery.LFXGatewayDiscoveryController.java lifx.java.android.network_context.internal.transport_manager.lan.gateway_discovery.LFXGatewayDiscoveryTableEntry.java lifx.java.android.util.LFXByteUtils.java lifx.java.android.util.LFXLog.java lifx.java.android.util.LFXNetworkUtils.java lifx.java.android.util.LFXTimerUtils.java