Unit CastleColors
Description
Color utilities, including HSV <-> RGB conversion.
Uses
- Math
- Classes
- CastleVectors
- CastleClassUtils
Overview
Classes, Interfaces, Objects and Records
Name | Description |
---|---|
Record TCastleColorHelper |
|
Record TCastleColorRGBHelper |
|
Class TCastleColorRGBPersistent |
TCastleColorRGB record represented as a TPersistent descendant, to be able to visually edit it (in Lazarus and Delphi visual designer, and Castle Game Engine visual designer) and to serialize it. |
Class TCastleColorPersistent |
TCastleColor record represented as a TPersistent descendant, to be able to visually edit it (in Lazarus and Delphi visual designer, and Castle Game Engine visual designer) and to serialize it. |
Class TSerializationProcessColorsHelper |
Helper methods you can use from TCastleComponent.CustomSerialization to manage reading/writing of colors. |
Functions and Procedures
function GrayscaleValue(const v: TCastleColorRGB): Single; inline; overload; |
function GrayscaleValue(const v: TCastleColor): Single; inline; overload; |
function GrayscaleValue(const v: TVector3Byte): Byte; inline; overload; |
function GrayscaleValue(const v: TVector4Byte): Byte; inline; overload; |
function Grayscale(const v: TCastleColorRGB): TCastleColorRGB; inline; overload; |
function Grayscale(const v: TVector3Byte): TVector3Byte; inline; overload; |
function Grayscale(const v: TCastleColor): TCastleColor; inline; overload; |
function ColorGrayscaleByte(const Color: TVector3Byte): TVector3Byte; |
function ColorRedConvertByte(const Color: TVector3Byte): TVector3Byte; |
function ColorGreenConvertByte(const Color: TVector3Byte): TVector3Byte; |
function ColorBlueConvertByte(const Color: TVector3Byte): TVector3Byte; |
function ColorRedStripByte(const Color: TVector3Byte): TVector3Byte; |
function ColorGreenStripByte(const Color: TVector3Byte): TVector3Byte; |
function ColorBlueStripByte(const Color: TVector3Byte): TVector3Byte; |
function HsvToRgb(const Value: TVector3): TVector3; |
function RgbToHsv(const Value: TVector3): TVector3; overload; |
function RgbToHsv(const Value: TVector3Byte): TVector3; overload; |
function HsvToRgbByte(const Value: TVector3): TVector3Byte; |
function LerpRgbInHsv(const A: Single; const V1, V2: TVector3): TVector3; |
function ColorToHex(const V: TCastleColor): string; |
function ColorRGBToHex(const V: TCastleColorRGB): string; |
function HexToColor(const S: string): TCastleColor; |
function HexToColorRGB(const S: string): TCastleColorRGB; |
function ColorOpacity(const Color: TCastleColor; const Opacity: Single): TCastleColor; |
function FadeDarkColor(const Color: TCastleColor; const FadeIntensity: Single): TCastleColor; |
function FadeColor(const Color: TCastleColor; const FadeIntensity: Single): TCastleColor; |
Types
TCastleColor = TVector4; |
PCastleColor = PVector4; |
TCastleColorRGB = TVector3; |
PCastleColorRGB = PVector3; |
TColorModulatorByteFunc = function (const Color: TVector3Byte): TVector3Byte; |
Constants
Maroon : TCastleColor = (X: 0.5; Y: 0.0; Z: 0.0; W: 1.0); |
Red : TCastleColor = (X: 1.0; Y: 0.0; Z: 0.0; W: 1.0); |
Orange : TCastleColor = (X: 1.0; Y: 0.65; Z: 0.0; W: 1.0); |
Yellow : TCastleColor = (X: 1.0; Y: 1.0; Z: 0.0; W: 1.0); |
Olive : TCastleColor = (X: 0.5; Y: 0.5; Z: 0.0; W: 1.0); |
Purple : TCastleColor = (X: 0.5; Y: 0.0; Z: 0.5; W: 1.0); |
Fuchsia: TCastleColor = (X: 1.0; Y: 0.0; Z: 1.0; W: 1.0); |
White : TCastleColor = (X: 1.0; Y: 1.0; Z: 1.0; W: 1.0); |
Lime : TCastleColor = (X: 0.0; Y: 1.0; Z: 0.0; W: 1.0); |
Green : TCastleColor = (X: 0.0; Y: 1.0; Z: 0.0; W: 1.0); |
Navy : TCastleColor = (X: 0.0; Y: 0.0; Z: 0.5; W: 1.0); |
Blue : TCastleColor = (X: 0.0; Y: 0.0; Z: 1.0; W: 1.0); |
Aqua : TCastleColor = (X: 0.0; Y: 1.0; Z: 1.0; W: 1.0); |
Teal : TCastleColor = (X: 0.0; Y: 0.5; Z: 0.5; W: 1.0); |
Black : TCastleColor = (X: 0.0; Y: 0.0; Z: 0.0; W: 1.0); |
Silver : TCastleColor = (X: 0.75; Y: 0.75; Z: 0.75; W: 1.0); |
Gray : TCastleColor = (X: 0.5; Y: 0.5; Z: 0.5; W: 1.0); |
LightRed : TCastleColor = (X: 1.0; Y: 0.33; Z: 0.33; W: 1.0); |
LightGreen: TCastleColor = (X: 0.33; Y: 1.0; Z: 0.33; W: 1.0); |
LightBlue : TCastleColor = (X: 0.33; Y: 0.33; Z: 1.0; W: 1.0); |
WhiteRGB : TCastleColorRGB = (X: 1.0; Y: 1.0; Z: 1.0); |
BlackRGB : TCastleColorRGB = (X: 0.0; Y: 0.0; Z: 0.0); |
RedRGB : TCastleColorRGB = (X: 1.0; Y: 0.0; Z: 0.0); |
YellowRGB : TCastleColorRGB = (X: 1.0; Y: 1.0; Z: 0.0); |
GreenRGB : TCastleColorRGB = (X: 0.0; Y: 1.0; Z: 0.0); |
BlueRGB : TCastleColorRGB = (X: 0.0; Y: 0.0; Z: 1.0); |
GrayRGB : TCastleColorRGB = (X: 0.5; Y: 0.5; Z: 0.5); |
White3Single : TCastleColorRGB = (X: 1.0; Y: 1.0; Z: 1.0) deprecated; |
Black3Single : TCastleColorRGB = (X: 0.0; Y: 0.0; Z: 0.0) deprecated; |
Red3Single : TCastleColorRGB = (X: 1.0; Y: 0.0; Z: 0.0) deprecated; |
Green3Single : TCastleColorRGB = (X: 0.0; Y: 1.0; Z: 0.0) deprecated; |
Blue3Single : TCastleColorRGB = (X: 0.0; Y: 0.0; Z: 1.0) deprecated; |
Description
Functions and Procedures
function GrayscaleValue(const v: TCastleColorRGB): Single; inline; overload; |
Calculate color intensity, for converting color to grayscale. |
function GrayscaleValue(const v: TCastleColor): Single; inline; overload; |
function GrayscaleValue(const v: TVector3Byte): Byte; inline; overload; |
function GrayscaleValue(const v: TVector4Byte): Byte; inline; overload; |
function Grayscale(const v: TCastleColorRGB): TCastleColorRGB; inline; overload; |
function Grayscale(const v: TVector3Byte): TVector3Byte; inline; overload; |
function Grayscale(const v: TCastleColor): TCastleColor; inline; overload; |
function ColorGrayscaleByte(const Color: TVector3Byte): TVector3Byte; |
Convert color to grayscale. |
function ColorRedConvertByte(const Color: TVector3Byte): TVector3Byte; |
Place color intensity (calculated like for grayscale) into the given color component. Set the other components zero. |
function ColorGreenConvertByte(const Color: TVector3Byte): TVector3Byte; |
function ColorBlueConvertByte(const Color: TVector3Byte): TVector3Byte; |
function ColorRedStripByte(const Color: TVector3Byte): TVector3Byte; |
Set color values for two other channels to 0. Note that it's something entirely different than ImageConvertToChannelVar: here we preserve original channel values, and remove values on two other channels. |
function ColorGreenStripByte(const Color: TVector3Byte): TVector3Byte; |
function ColorBlueStripByte(const Color: TVector3Byte): TVector3Byte; |
function HsvToRgb(const Value: TVector3): TVector3; |
Converting between RGB and HSV. For HSV, we keep components as floating-point values, with hue in 0..6 range, saturation and value in 0..1. For RGB, one version keeps components as bytes (0..255 range), and the other as floating-point values (0..1 range). |
function RgbToHsv(const Value: TVector3): TVector3; overload; |
function RgbToHsv(const Value: TVector3Byte): TVector3; overload; |
function HsvToRgbByte(const Value: TVector3): TVector3Byte; |
function LerpRgbInHsv(const A: Single; const V1, V2: TVector3): TVector3; |
Given two colors in RGB, interpolate them in HSV space. |
function ColorToHex(const V: TCastleColor): string; |
Change color into a hexadecimal notation of it (like in HTML). This color includes an alpha channel (as 4th component), and so the output contains the alpha value at the end (so it's 8 hex digits), unless alpha is opaque in which case it's not written (and result is 6 hex digits). |
function ColorRGBToHex(const V: TCastleColorRGB): string; |
Change color into a hexadecimal notation of it (like in HTML). This color has no alpha channel, so it's always 6 hex digits. |
function HexToColor(const S: string): TCastleColor; |
Convert hexadecimal color notation (like in HTML) into an RGBA color. Handles 8 or 6 digit color (RGB or RGBA with 2 letters per component; for 6 digits, alpha is assumed to be 1.0 (opaque)). Exceptions raised
|
function HexToColorRGB(const S: string): TCastleColorRGB; |
Convert hexadecimal color notation (like in HTML) into an RGB color. Handles 8 or 6 digit color (RGB or RGBA with 2 letters per component; for 8 digits, alpha is ignored). Exceptions raised
|
function ColorOpacity(const Color: TCastleColor; const Opacity: Single): TCastleColor; |
Change color opacity (alpha). |
function FadeDarkColor(const Color: TCastleColor; const FadeIntensity: Single): TCastleColor; |
function FadeColor(const Color: TCastleColor; const FadeIntensity: Single): TCastleColor; |
Types
TCastleColor = TVector4; |
PCastleColor = PVector4; |
TCastleColorRGB = TVector3; |
PCastleColorRGB = PVector3; |
TColorModulatorByteFunc = function (const Color: TVector3Byte): TVector3Byte; |
Function that processes RGB colors, used by TCastleImage.ModulateRGB. |
Constants
Maroon : TCastleColor = (X: 0.5; Y: 0.0; Z: 0.0; W: 1.0); |
Common color constants, for comfort. They follow the CSS colors constants [http://www.w3.org/TR/CSS21/syndata.html#color-units]. |
Red : TCastleColor = (X: 1.0; Y: 0.0; Z: 0.0; W: 1.0); |
Orange : TCastleColor = (X: 1.0; Y: 0.65; Z: 0.0; W: 1.0); |
Yellow : TCastleColor = (X: 1.0; Y: 1.0; Z: 0.0; W: 1.0); |
Olive : TCastleColor = (X: 0.5; Y: 0.5; Z: 0.0; W: 1.0); |
Purple : TCastleColor = (X: 0.5; Y: 0.0; Z: 0.5; W: 1.0); |
Fuchsia: TCastleColor = (X: 1.0; Y: 0.0; Z: 1.0; W: 1.0); |
White : TCastleColor = (X: 1.0; Y: 1.0; Z: 1.0; W: 1.0); |
Lime : TCastleColor = (X: 0.0; Y: 1.0; Z: 0.0; W: 1.0); |
Green : TCastleColor = (X: 0.0; Y: 1.0; Z: 0.0; W: 1.0); |
Navy : TCastleColor = (X: 0.0; Y: 0.0; Z: 0.5; W: 1.0); |
Blue : TCastleColor = (X: 0.0; Y: 0.0; Z: 1.0; W: 1.0); |
Aqua : TCastleColor = (X: 0.0; Y: 1.0; Z: 1.0; W: 1.0); |
Teal : TCastleColor = (X: 0.0; Y: 0.5; Z: 0.5; W: 1.0); |
Black : TCastleColor = (X: 0.0; Y: 0.0; Z: 0.0; W: 1.0); |
Silver : TCastleColor = (X: 0.75; Y: 0.75; Z: 0.75; W: 1.0); |
Gray : TCastleColor = (X: 0.5; Y: 0.5; Z: 0.5; W: 1.0); |
LightRed : TCastleColor = (X: 1.0; Y: 0.33; Z: 0.33; W: 1.0); |
LightGreen: TCastleColor = (X: 0.33; Y: 1.0; Z: 0.33; W: 1.0); |
LightBlue : TCastleColor = (X: 0.33; Y: 0.33; Z: 1.0; W: 1.0); |
WhiteRGB : TCastleColorRGB = (X: 1.0; Y: 1.0; Z: 1.0); |
BlackRGB : TCastleColorRGB = (X: 0.0; Y: 0.0; Z: 0.0); |
RedRGB : TCastleColorRGB = (X: 1.0; Y: 0.0; Z: 0.0); |
YellowRGB : TCastleColorRGB = (X: 1.0; Y: 1.0; Z: 0.0); |
GreenRGB : TCastleColorRGB = (X: 0.0; Y: 1.0; Z: 0.0); |
BlueRGB : TCastleColorRGB = (X: 0.0; Y: 0.0; Z: 1.0); |
GrayRGB : TCastleColorRGB = (X: 0.5; Y: 0.5; Z: 0.5); |
White3Single : TCastleColorRGB = (X: 1.0; Y: 1.0; Z: 1.0) deprecated; |
Warning: this symbol is deprecated. Deprecated, use WhiteRGB. |
Black3Single : TCastleColorRGB = (X: 0.0; Y: 0.0; Z: 0.0) deprecated; |
Warning: this symbol is deprecated. Deprecated, use BlackRGB. |
Red3Single : TCastleColorRGB = (X: 1.0; Y: 0.0; Z: 0.0) deprecated; |
Warning: this symbol is deprecated. Deprecated, use RedRGB. |
Green3Single : TCastleColorRGB = (X: 0.0; Y: 1.0; Z: 0.0) deprecated; |
Warning: this symbol is deprecated. Deprecated, use GreenRGB. |
Blue3Single : TCastleColorRGB = (X: 0.0; Y: 0.0; Z: 1.0) deprecated; |
Warning: this symbol is deprecated. Deprecated, use BlueRGB. |
Generated by PasDoc 0.16.0.