Android Open Source - droidengine2d Texture Hsv Material






From Project

Back to project page droidengine2d.

License

The source code is released under:

Apache License

If you think the Android project droidengine2d 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

/*   Copyright 2013-2014 Miguel Vicente Linares
 *//  w w  w . j  a v a  2s  .  c o  m
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */
package com.miviclin.droidengine2d.graphics.material;

import com.miviclin.droidengine2d.graphics.texture.TextureRegion;

/**
 * This material has texture and HSV color.<br>
 * The hue of the texture can be changed. Saturation and brightness can be reduced. And opacity can also be adjusted.
 * 
 * @author Miguel Vicente Linares
 * 
 */
public class TextureHsvMaterial extends TransparentTextureMaterial {

  private float hOffset;
  private float sMulti;
  private float vMulti;

  /**
   * Creates a TextureHsvMaterial.
   * 
   * @param textureRegion TextureRegion.
   */
  public TextureHsvMaterial(TextureRegion textureRegion) {
    this(textureRegion, 1.0f, 0.0f, 1.0f, 1.0f);
  }

  /**
   * Creates a TextureHsvMaterial.
   * 
   * @param textureRegion TextureRegion.
   * @param hOffset Hue offset (value between 0.0f and 360.0f).
   * @param sMulti Saturation multiplier (value between 0.0f and 1.0f).
   * @param vMulti Brightness multiplier (value between 0.0f and 1.0f).
   */
  public TextureHsvMaterial(TextureRegion textureRegion, float hOffset, float sMulti, float vMulti) {
    this(textureRegion, 1.0f, hOffset, sMulti, vMulti);
  }

  /**
   * Creates a TextureHsvMaterial.
   * 
   * @param textureRegion TextureRegion.
   * @param opacity (value between 0.0f and 1.0f).
   * @param hOffset Hue offset (value between 0.0f and 360.0f).
   * @param sMulti Saturation multiplier (value between 0.0f and 1.0f).
   * @param vMulti Brightness multiplier (value between 0.0f and 1.0f).
   */
  public TextureHsvMaterial(TextureRegion textureRegion, float opacity, float hOffset, float sMulti, float vMulti) {
    super(textureRegion, opacity);
    checkH(hOffset);
    checkS(sMulti);
    checkV(vMulti);
    this.hOffset = hOffset;
    this.sMulti = sMulti;
    this.vMulti = vMulti;
  }

  /**
   * Returns the hue offset.
   * 
   * @return value between 0.0f and 360.0f
   */
  public float getHOffset() {
    return hOffset;
  }

  /**
   * Sets the hue offset.
   * 
   * @param hOffset Value between 0.0f and 360.0f.
   */
  public void setHOffset(float hOffset) {
    checkH(hOffset);
    this.hOffset = hOffset;
  }

  /**
   * Returns the saturation multiplier.
   * 
   * @return value between 0.0f and 1.0f
   */
  public float getSMulti() {
    return sMulti;
  }

  /**
   * Sets the saturation multiplier.
   * 
   * @param sMulti Value between 0.0f and 1.0f.
   */
  public void setSMulti(float sMulti) {
    checkS(sMulti);
    this.sMulti = sMulti;
  }

  /**
   * Returns the brightness multiplier.
   * 
   * @return value between 0.0f and 1.0f
   */
  public float getVMulti() {
    return vMulti;
  }

  /**
   * Sets the brightness multiplier.
   * 
   * @param vMulti Value between 0.0f and 1.0f.
   */
  public void setVMulti(float vMulti) {
    checkV(vMulti);
    this.vMulti = vMulti;
  }

  /**
   * Checks that hOffset is a value between 0.0f and 360.0f and throws an exception in case it isn't.
   * 
   * @param hOffset
   */
  private void checkH(float hOffset) {
    if (hOffset < 0 || hOffset > 360) {
      throw new IllegalArgumentException("The H component must be a value between 0.0 and 360.0");
    }
  }

  /**
   * Checks that sMulti is a value between 0.0f and 1.0f and throws an exception in case it isn't.
   * 
   * @param sMulti
   */
  private void checkS(float sMulti) {
    if (sMulti < 0 || sMulti > 1) {
      throw new IllegalArgumentException("The S component must be a value between 0.0 and 1.0");
    }
  }

  /**
   * Checks that vMulti is a value between 0.0f and 1.0f and throws an exception in case it isn't.
   * 
   * @param vMulti
   */
  private void checkV(float vMulti) {
    if (vMulti < 0 || vMulti > 1) {
      throw new IllegalArgumentException("The V component must be a value between 0.0 and 1.0");
    }
  }
}




Java Source Code List

com.miviclin.droidengine2d.AbstractGame.java
com.miviclin.droidengine2d.EngineActivity.java
com.miviclin.droidengine2d.EngineLock.java
com.miviclin.droidengine2d.Engine.java
com.miviclin.droidengine2d.GameThread.java
com.miviclin.droidengine2d.Game.java
com.miviclin.droidengine2d.audio.MusicPlayer.java
com.miviclin.droidengine2d.audio.SoundManager.java
com.miviclin.droidengine2d.gamestate.GameStateAdapter.java
com.miviclin.droidengine2d.gamestate.GameStateManager.java
com.miviclin.droidengine2d.gamestate.GameStateNotRegisteredException.java
com.miviclin.droidengine2d.gamestate.GameState.java
com.miviclin.droidengine2d.gamestate.OnGameStateChangeListener.java
com.miviclin.droidengine2d.graphics.Color.java
com.miviclin.droidengine2d.graphics.DefaultRenderer.java
com.miviclin.droidengine2d.graphics.EngineRenderer.java
com.miviclin.droidengine2d.graphics.GLDebugger.java
com.miviclin.droidengine2d.graphics.GLRenderer.java
com.miviclin.droidengine2d.graphics.GLView.java
com.miviclin.droidengine2d.graphics.Graphics.java
com.miviclin.droidengine2d.graphics.animation.AnimationFrame.java
com.miviclin.droidengine2d.graphics.animation.AnimationStateAdapter.java
com.miviclin.droidengine2d.graphics.animation.AnimationStateListener.java
com.miviclin.droidengine2d.graphics.animation.Animation.java
com.miviclin.droidengine2d.graphics.cameras.Camera.java
com.miviclin.droidengine2d.graphics.cameras.OrthographicCamera.java
com.miviclin.droidengine2d.graphics.material.BlendingOptions.java
com.miviclin.droidengine2d.graphics.material.ColorMaterial.java
com.miviclin.droidengine2d.graphics.material.Material.java
com.miviclin.droidengine2d.graphics.material.TextureColorMaterial.java
com.miviclin.droidengine2d.graphics.material.TextureHsvMaterial.java
com.miviclin.droidengine2d.graphics.material.TextureMaterial.java
com.miviclin.droidengine2d.graphics.material.TransparentTextureMaterial.java
com.miviclin.droidengine2d.graphics.material.UnsupportedMaterialException.java
com.miviclin.droidengine2d.graphics.mesh.ColorMaterialBatchRenderer.java
com.miviclin.droidengine2d.graphics.mesh.Geometry.java
com.miviclin.droidengine2d.graphics.mesh.GraphicsBatchRenderer.java
com.miviclin.droidengine2d.graphics.mesh.RectangleBatchGeometry.java
com.miviclin.droidengine2d.graphics.mesh.RectangleBatchRenderer.java
com.miviclin.droidengine2d.graphics.mesh.TextureColorMaterialBatchRenderer.java
com.miviclin.droidengine2d.graphics.mesh.TextureHsvMaterialBatchRenderer.java
com.miviclin.droidengine2d.graphics.mesh.TextureMaterialBatchRendererBase.java
com.miviclin.droidengine2d.graphics.mesh.TextureMaterialBatchRenderer.java
com.miviclin.droidengine2d.graphics.mesh.TransparentTextureMaterialBatchRenderer.java
com.miviclin.droidengine2d.graphics.shader.ShaderProgramException.java
com.miviclin.droidengine2d.graphics.shader.ShaderProgram.java
com.miviclin.droidengine2d.graphics.shader.ShaderVars.java
com.miviclin.droidengine2d.graphics.text.BitmapFont.java
com.miviclin.droidengine2d.graphics.text.FontChar.java
com.miviclin.droidengine2d.graphics.text.Font.java
com.miviclin.droidengine2d.graphics.text.UndefinedCharacterException.java
com.miviclin.droidengine2d.graphics.texture.TextureAtlas.java
com.miviclin.droidengine2d.graphics.texture.TextureManager.java
com.miviclin.droidengine2d.graphics.texture.TexturePackerAtlas.java
com.miviclin.droidengine2d.graphics.texture.TextureRegion.java
com.miviclin.droidengine2d.graphics.texture.Texture.java
com.miviclin.droidengine2d.input.DefaultKeyEventProcessor.java
com.miviclin.droidengine2d.input.GameInputManager.java
com.miviclin.droidengine2d.input.GameStateInputManager.java
com.miviclin.droidengine2d.input.KeyEventInfo.java
com.miviclin.droidengine2d.input.KeyEventProcessor.java
com.miviclin.droidengine2d.input.KeyProcessor.java
com.miviclin.droidengine2d.input.MotionEventProcessor.java
com.miviclin.droidengine2d.input.TouchProcessor.java
com.miviclin.droidengine2d.input.sensor.AccelerometerValuesListener.java
com.miviclin.droidengine2d.input.sensor.Accelerometer.java
com.miviclin.droidengine2d.input.sensor.SensorUtilities.java
com.miviclin.droidengine2d.resources.AssetsLoader.java
com.miviclin.droidengine2d.util.ActivityUtilities.java
com.miviclin.droidengine2d.util.MutexLock.java
com.miviclin.droidengine2d.util.PrimitiveTypeSize.java
com.miviclin.droidengine2d.util.TransformUtilities.java
com.miviclin.droidengine2d.util.Transform.java
com.miviclin.droidengine2d.util.math.Matrix4.java
com.miviclin.droidengine2d.util.math.MatrixFix.java
com.miviclin.droidengine2d.util.math.Vector2.java
com.miviclin.droidengine2d.util.math.Vector3.java
com.miviclin.droidengine2d.util.time.TimeConstants.java
com.miviclin.droidengine2d.util.time.TimeCounter.java