From 6297ef9193ce30f3e8cb879ff33b0da230ae23b7 Mon Sep 17 00:00:00 2001 From: Philip Rideout Date: Wed, 17 Feb 2021 09:22:01 -0800 Subject: [PATCH] Remove some Windows line endings. These line endings cause annoying diffs when comparing Filament's GitHub source with its twin sister within Google. --- .../src/main/cpp/nativewindow/Win32.cpp | 134 +- .../android/filament/RenderableManager.java | 1360 ++++----- filament/backend/src/opengl/PlatformWGL.cpp | 544 ++-- filament/backend/src/opengl/PlatformWGL.h | 140 +- .../android/filament/FilamentTarget.java | 48 +- libs/bluegl/src/BlueGLDarwin.cpp | 76 +- libs/bluegl/src/BlueGLLinux.cpp | 102 +- libs/bluegl/src/BlueGLWindows.cpp | 80 +- libs/utils/include/utils/unwindows.h | 102 +- .../tests/Footballfield/Footballfield.txt | 26 +- tools/specular-color/data/aluminium.txt | 806 +++--- tools/specular-color/data/brass.txt | 2450 ++++++++--------- tools/specular-color/data/chromium.txt | 202 +- tools/specular-color/data/copper.txt | 806 +++--- tools/specular-color/data/gold.txt | 806 +++--- tools/specular-color/data/iron.txt | 202 +- tools/specular-color/data/platinum.txt | 806 +++--- tools/specular-color/data/silver.txt | 806 +++--- tools/specular-color/data/titanium.txt | 202 +- 19 files changed, 4849 insertions(+), 4849 deletions(-) diff --git a/android/filament-android/src/main/cpp/nativewindow/Win32.cpp b/android/filament-android/src/main/cpp/nativewindow/Win32.cpp index 65a16174e8..7e177a8038 100644 --- a/android/filament-android/src/main/cpp/nativewindow/Win32.cpp +++ b/android/filament-android/src/main/cpp/nativewindow/Win32.cpp @@ -1,67 +1,67 @@ -/* - * Copyright (C) 2018 The Android Open Source Project - * - * 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. - */ - -#include - -#include -#include -#include - -#include - -#include "JAWTUtils.h" -#include - -extern "C" { - -void* getNativeWindow(JNIEnv* env, jclass, jobject surface) { - JAWT_DrawingSurface* ds = nullptr; - JAWT_DrawingSurfaceInfo* dsi = nullptr; - - if (!acquireDrawingSurface(env, surface, &ds, &dsi)) { - return nullptr; - } - - JAWT_Win32DrawingSurfaceInfo* dsi_win32 = (JAWT_Win32DrawingSurfaceInfo*) dsi->platformInfo; - HWND hWnd = dsi_win32->hwnd; - - releaseDrawingSurface(ds, dsi); - - return (void*) hWnd; -} - - -jlong createNativeSurface(jint width, jint height) { - // We need to adjust the window size so the "client area" matches width and height requested. - // Otherwise, the window itself will be of dimension width-height but the "client area" and the - // resulting surface will be smaller than requested. - RECT dimension = {0, 0, width, height}; - AdjustWindowRect(&dimension, WS_OVERLAPPEDWINDOW, FALSE); - width = dimension.right - dimension.left; - height = dimension.bottom - dimension.top; - - HWND window = CreateWindowA("STATIC", "dummy", 0, 0, 0, width, height, NULL, NULL, NULL, NULL); - SetWindowLong(window, GWL_STYLE, 0); //remove all window styles - - return (jlong) window; -} - -void destroyNativeSurface(jlong surface) { - HWND window = (HWND) surface; - DestroyWindow(window); -} - -} +/* + * Copyright (C) 2018 The Android Open Source Project + * + * 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. + */ + +#include + +#include +#include +#include + +#include + +#include "JAWTUtils.h" +#include + +extern "C" { + +void* getNativeWindow(JNIEnv* env, jclass, jobject surface) { + JAWT_DrawingSurface* ds = nullptr; + JAWT_DrawingSurfaceInfo* dsi = nullptr; + + if (!acquireDrawingSurface(env, surface, &ds, &dsi)) { + return nullptr; + } + + JAWT_Win32DrawingSurfaceInfo* dsi_win32 = (JAWT_Win32DrawingSurfaceInfo*) dsi->platformInfo; + HWND hWnd = dsi_win32->hwnd; + + releaseDrawingSurface(ds, dsi); + + return (void*) hWnd; +} + + +jlong createNativeSurface(jint width, jint height) { + // We need to adjust the window size so the "client area" matches width and height requested. + // Otherwise, the window itself will be of dimension width-height but the "client area" and the + // resulting surface will be smaller than requested. + RECT dimension = {0, 0, width, height}; + AdjustWindowRect(&dimension, WS_OVERLAPPEDWINDOW, FALSE); + width = dimension.right - dimension.left; + height = dimension.bottom - dimension.top; + + HWND window = CreateWindowA("STATIC", "dummy", 0, 0, 0, width, height, NULL, NULL, NULL, NULL); + SetWindowLong(window, GWL_STYLE, 0); //remove all window styles + + return (jlong) window; +} + +void destroyNativeSurface(jlong surface) { + HWND window = (HWND) surface; + DestroyWindow(window); +} + +} diff --git a/android/filament-android/src/main/java/com/google/android/filament/RenderableManager.java b/android/filament-android/src/main/java/com/google/android/filament/RenderableManager.java index 605cbdbd7b..847d641c6a 100644 --- a/android/filament-android/src/main/java/com/google/android/filament/RenderableManager.java +++ b/android/filament-android/src/main/java/com/google/android/filament/RenderableManager.java @@ -1,680 +1,680 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * 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.google.android.filament; - -import androidx.annotation.IntRange; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.annotation.Size; - -import java.nio.Buffer; -import java.nio.BufferOverflowException; -import java.util.Collections; -import java.util.EnumSet; -import java.util.Set; - -/** - * Factory and manager for renderables, which are entities that can be drawn. - * - *

Renderables are bundles of primitives, each of which has its own geometry and material. All - * primitives in a particular renderable share a set of rendering attributes, such as whether they - * cast shadows or use vertex skinning. Kotlin usage example:

- * - *
- * val entity = EntityManager.get().create()
- *
- * RenderableManager.Builder(1)
- *         .boundingBox(Box(0.0f, 0.0f, 0.0f, 9000.0f, 9000.0f, 9000.0f))
- *         .geometry(0, RenderableManager.PrimitiveType.TRIANGLES, vb, ib)
- *         .material(0, material)
- *         .build(engine, entity)
- *
- * scene.addEntity(renderable)
- * 
- * - *

To modify the state of an existing renderable, clients should first use RenderableManager - * to get a temporary handle called an instance. The instance can then be used to get or set - * the renderable's state. Please note that instances are ephemeral; clients should store entities, - * not instances.

- * - *
    - *
  • For details about constructing renderables, see {@link RenderableManager.Builder}.
  • - *
  • To associate a 4x4 transform with an entity, see {@link TransformManager}.
  • - *
- */ -public class RenderableManager { - private static final String LOG_TAG = "Filament"; - private long mNativeObject; - - RenderableManager(long nativeRenderableManager) { - mNativeObject = nativeRenderableManager; - } - - /** - * Checks if the given entity already has a renderable component. - */ - public boolean hasComponent(@Entity int entity) { - return nHasComponent(mNativeObject, entity); - } - - /** - * Gets a temporary handle that can be used to access the renderable state. - */ - @EntityInstance - public int getInstance(@Entity int entity) { - return nGetInstance(mNativeObject, entity); - } - - /** - * Destroys the renderable component in the given entity. - */ - public void destroy(@Entity int entity) { - nDestroy(mNativeObject, entity); - } - - /** - * Primitive types used in {@link RenderableManager.Builder#geometry}. - */ - public enum PrimitiveType { - POINTS(0), - LINES(1), - TRIANGLES(4); - - private final int mType; - PrimitiveType(int value) { mType = value; } - int getValue() { return mType; } - } - - /** - * Adds renderable components to entities using a builder pattern. - */ - public static class Builder { - @SuppressWarnings({"FieldCanBeLocal", "UnusedDeclaration"}) // Keep to finalize native resources - private final BuilderFinalizer mFinalizer; - private final long mNativeBuilder; - - /** - * Creates a builder for renderable components. - * - * @param count the number of primitives that will be supplied to the builder - * - * Note that builders typically do not have a long lifetime since clients should discard - * them after calling build(). For a usage example, see {@link RenderableManager}. - */ - public Builder(@IntRange(from = 1) int count) { - mNativeBuilder = nCreateBuilder(count); - mFinalizer = new BuilderFinalizer(mNativeBuilder); - } - - /** - * Specifies the geometry data for a primitive. - * - * Filament primitives must have an associated {@link VertexBuffer} and {@link IndexBuffer}. - * Typically, each primitive is specified with a pair of daisy-chained calls: - * geometry() and material(). - * - * @param index zero-based index of the primitive, must be less than the count passed to Builder constructor - * @param type specifies the topology of the primitive (e.g., PrimitiveType.TRIANGLES) - * @param vertices specifies the vertex buffer, which in turn specifies a set of attributes - * @param indices specifies the index buffer (either u16 or u32) - * @param offset specifies where in the index buffer to start reading (expressed as a number of indices) - * @param minIndex specifies the minimum index contained in the index buffer - * @param maxIndex specifies the maximum index contained in the index buffer - * @param count number of indices to read (for triangles, this should be a multiple of 3) - */ - @NonNull - public Builder geometry(@IntRange(from = 0) int index, @NonNull PrimitiveType type, - @NonNull VertexBuffer vertices, @NonNull IndexBuffer indices, - @IntRange(from = 0) int offset, @IntRange(from = 0) int minIndex, - @IntRange(from = 0) int maxIndex, @IntRange(from = 0) int count) { - nBuilderGeometry(mNativeBuilder, index, type.getValue(), vertices.getNativeObject(), - indices.getNativeObject(), offset, minIndex, maxIndex, count); - return this; - } - - /** - * For details, see the {@link RenderableManager.Builder#geometry primary overload}. - */ - @NonNull - public Builder geometry(@IntRange(from = 0) int index, @NonNull PrimitiveType type, - @NonNull VertexBuffer vertices, @NonNull IndexBuffer indices, - @IntRange(from = 0) int offset, @IntRange(from = 0) int count) { - nBuilderGeometry(mNativeBuilder, index, type.getValue(), vertices.getNativeObject(), - indices.getNativeObject(), offset, count); - return this; - } - - /** - * For details, see the {@link RenderableManager.Builder#geometry primary overload}. - */ - @NonNull - public Builder geometry(@IntRange(from = 0) int index, @NonNull PrimitiveType type, - @NonNull VertexBuffer vertices, @NonNull IndexBuffer indices) { - nBuilderGeometry(mNativeBuilder, index, type.getValue(), - vertices.getNativeObject(), indices.getNativeObject()); - return this; - } - - /** - * Binds a material instance to the specified primitive. - * - *

If no material is specified for a given primitive, Filament will fall back to a basic - * default material.

- * - * @param index zero-based index of the primitive, must be less than the count passed to Builder constructor - * @param material the material to bind - */ - @NonNull - public Builder material(@IntRange(from = 0) int index, @NonNull MaterialInstance material) { - nBuilderMaterial(mNativeBuilder, index, material.getNativeObject()); - return this; - } - - /** - * Sets an ordering index for blended primitives that all live at the same Z value. - * - * @param index the primitive of interest - * @param blendOrder draw order number (0 by default). Only the lowest 15 bits are used. - */ - @NonNull - public Builder blendOrder(@IntRange(from = 0) int index, - @IntRange(from = 0, to = 32767) int blendOrder) { - nBuilderBlendOrder(mNativeBuilder, index, blendOrder); - return this; - } - - /** - * The axis-aligned bounding box of the renderable. - * - *

This is an object-space AABB used for frustum culling. For skinning and morphing, this - * should encompass all possible vertex positions. It is mandatory unless culling is - * disabled for the renderable.

- */ - @NonNull - public Builder boundingBox(@NonNull Box aabb) { - nBuilderBoundingBox(mNativeBuilder, - aabb.getCenter()[0], aabb.getCenter()[1], aabb.getCenter()[2], - aabb.getHalfExtent()[0], aabb.getHalfExtent()[1], aabb.getHalfExtent()[2]); - return this; - } - - /** - * Sets bits in a visibility mask. By default, this is 0x1. - * - *

This feature provides a simple mechanism for hiding and showing groups of renderables - * in a Scene. See {@link View#setVisibleLayers}.

- * - *

For example, to set bit 1 and reset bits 0 and 2 while leaving all other bits - * unaffected, do: builder.layerMask(7, 2).

- * - * @see RenderableManager#setLayerMask - * - * @param select the set of bits to affect - * @param value the replacement values for the affected bits - */ - @NonNull - public Builder layerMask(@IntRange(from = 0, to = 255) int select, - @IntRange(from = 0, to = 255) int value) { - nBuilderLayerMask(mNativeBuilder, select & 0xFF, value & 0xFF); - return this; - } - - /** - * Provides coarse-grained control over draw order. - * - *

In general Filament reserves the right to re-order renderables to allow for efficient - * rendering. However clients can control ordering at a coarse level using priority.

- * - *

For example, this could be used to draw a semitransparent HUD, if a client wishes to - * avoid using a separate View for the HUD. Note that priority is completely orthogonal to - * {@link Builder#layerMask}, which merely controls visibility.

- * - *

The priority is clamped to the range [0..7], defaults to 4; 7 is lowest priority - * (rendered last).

- * - * @see Builder#blendOrder - */ - @NonNull - public Builder priority(@IntRange(from = 0, to = 7) int priority) { - nBuilderPriority(mNativeBuilder, priority); - return this; - } - - /** - * Controls frustum culling, true by default. - * - *

Do not confuse frustum culling with backface culling. The latter is controlled via - * the material.

- */ - @NonNull - public Builder culling(boolean enabled) { - nBuilderCulling(mNativeBuilder, enabled); - return this; - } - - /** - * Controls if this renderable casts shadows, false by default. - * - * If the View's shadow type is set to {@link View.ShadowType#VSM}, castShadows should only - * be disabled if either is true: - *
    - *
  • {@link RenderableManager#setReceiveShadows} is also disabled
  • - *
  • the object is guaranteed to not cast shadows on itself or other objects (for - * example, a ground plane)
  • - *
- */ - @NonNull - public Builder castShadows(boolean enabled) { - nBuilderCastShadows(mNativeBuilder, enabled); - return this; - } - - /** - * Controls if this renderable receives shadows, true by default. - */ - @NonNull - public Builder receiveShadows(boolean enabled) { - nBuilderReceiveShadows(mNativeBuilder, enabled); - return this; - } - - /** - * Controls if this renderable uses screen-space contact shadows. This is more - * expensive but can improve the quality of shadows, especially in large scenes. - * (off by default). - */ - @NonNull - public Builder screenSpaceContactShadows(boolean enabled) { - nBuilderScreenSpaceContactShadows(mNativeBuilder, enabled); - return this; - } - - @NonNull - public Builder skinning(@IntRange(from = 0, to = 255) int boneCount) { - nBuilderSkinning(mNativeBuilder, boneCount); - return this; - } - - /** - * Enables GPU vertex skinning for up to 255 bones, 0 by default. - * - *

Each vertex can be affected by up to 4 bones simultaneously. The attached - * VertexBuffer must provide data in the BONE_INDICES slot (uvec4) and the - * BONE_WEIGHTS slot (float4).

- * - *

See also {@link RenderableManager#setBonesAsMatrices}, which can be called on a per-frame basis - * to advance the animation.

- * - * @param boneCount Number of bones associated with this component - * @param bones A FloatBuffer containing boneCount transforms. Each transform consists of 8 float. - * float 0 to 3 encode a unit quaternion w+ix+jy+kz stored as x,y,z,w. - * float 4 to 7 encode a translation stored as x,y,z,1 - */ - @NonNull - public Builder skinning(@IntRange(from = 0, to = 255) int boneCount, @NonNull Buffer bones) { - int result = nBuilderSkinningBones(mNativeBuilder, boneCount, bones, bones.remaining()); - if (result < 0) { - throw new BufferOverflowException(); - } - return this; - } - - /** - * Controls if the renderable has vertex morphing targets, false by default. - * - *

This is required to enable GPU morphing for up to 4 attributes. The attached VertexBuffer - * must provide data in the appropriate VertexAttribute slots (MORPH_POSITION_0 etc).

- * - *

See also {@link RenderableManager#setMorphWeights}, which can be called on a per-frame basis - * to advance the animation.

- */ - @NonNull - public Builder morphing(boolean enabled) { - nBuilderMorphing(mNativeBuilder, enabled); - return this; - } - - /** - * Adds the Renderable component to an entity. - * - *

If this component already exists on the given entity and the construction is successful, - * it is first destroyed as if {@link RenderableManager#destroy} was called.

- * - * @param engine reference to the Engine to associate this renderable with - * @param entity entity to add the renderable component to - */ - public void build(@NonNull Engine engine, @Entity int entity) { - if (!nBuilderBuild(mNativeBuilder, engine.getNativeObject(), entity)) { - throw new IllegalStateException( - "Couldn't create Renderable component for entity " + entity + ", see log."); - } - } - - private static class BuilderFinalizer { - private final long mNativeObject; - BuilderFinalizer(long nativeObject) { mNativeObject = nativeObject; } - @Override - public void finalize() { - try { - super.finalize(); - } catch (Throwable t) { // Ignore - } finally { - nDestroyBuilder(mNativeObject); - } - } - } - } - - /** - * Sets the transforms associated with each bone of a Renderable. - * - * @param i Instance of the Renderable - * @param matrices A FloatBuffer containing boneCount 4x4 packed matrices (i.e. 16 floats each matrix and no gap between matrices) - * @param boneCount Number of bones to set - * @param offset Index of the first bone to set - */ - public void setBonesAsMatrices(@EntityInstance int i, - @NonNull Buffer matrices, @IntRange(from = 0, to = 255) int boneCount, - @IntRange(from = 0) int offset) { - int result = nSetBonesAsMatrices(mNativeObject, i, matrices, matrices.remaining(), boneCount, offset); - if (result < 0) { - throw new BufferOverflowException(); - } - } - - /** - * Sets the transforms associated with each bone of a Renderable. - * - * @param i Instance of the Renderable - * @param quaternions A FloatBuffer containing boneCount transforms. Each transform consists of 8 float. - * float 0 to 3 encode a unit quaternion w+ix+jy+kz stored as x,y,z,w. - * float 4 to 7 encode a translation stored as x,y,z,1 - * @param boneCount Number of bones to set - * @param offset Index of the first bone to set - */ - public void setBonesAsQuaternions(@EntityInstance int i, - @NonNull Buffer quaternions, @IntRange(from = 0, to = 255) int boneCount, - @IntRange(from = 0) int offset) { - int result = nSetBonesAsQuaternions(mNativeObject, i, quaternions, quaternions.remaining(), boneCount, offset); - if (result < 0) { - throw new BufferOverflowException(); - } - } - - /** - * Updates the vertex morphing weights on a renderable, all zeroes by default. - * - *

This is specified using a 4-tuple, one float per morph target. If the renderable has fewer - * than 4 morph targets, then clients should fill the unused components with zeroes.

- * - *

The renderable must be built with morphing enabled.

- * - * @see Builder#morphing - */ - public void setMorphWeights(@EntityInstance int i, @NonNull @Size(min = 4) float[] weights) { - nSetMorphWeights(mNativeObject, i, weights); - } - - /** - * Changes the bounding box used for frustum culling. - * - * @see Builder#boundingBox - * @see RenderableManager#getAxisAlignedBoundingBox - */ - public void setAxisAlignedBoundingBox(@EntityInstance int i, @NonNull Box aabb) { - nSetAxisAlignedBoundingBox(mNativeObject, i, - aabb.getCenter()[0], aabb.getCenter()[1], aabb.getCenter()[2], - aabb.getHalfExtent()[0], aabb.getHalfExtent()[1], aabb.getHalfExtent()[2]); - } - - /** - * Changes the visibility bits. - * - * @see Builder#layerMask - * @see View#setVisibleLayers - */ - public void setLayerMask(@EntityInstance int i, @IntRange(from = 0, to = 255) int select, - @IntRange(from = 0, to = 255) int value) { - nSetLayerMask(mNativeObject, i, select, value); - } - - /** - * Changes the coarse-level draw ordering. - * - * @see Builder#priority - */ - public void setPriority(@EntityInstance int i, @IntRange(from = 0, to = 7) int priority) { - nSetPriority(mNativeObject, i, priority); - } - - /** - * Changes whether or not frustum culling is on. - * - * @see Builder#culling - */ - public void setCulling(@EntityInstance int i, boolean enabled) { - nSetCulling(mNativeObject, i, enabled); - } - - /** - * Changes whether or not the renderable casts shadows. - * - * @see Builder#castShadows - */ - public void setCastShadows(@EntityInstance int i, boolean enabled) { - nSetCastShadows(mNativeObject, i, enabled); - } - - /** - * Changes whether or not the renderable can receive shadows. - * - * @see Builder#receiveShadows - */ - public void setReceiveShadows(@EntityInstance int i, boolean enabled) { - nSetReceiveShadows(mNativeObject, i, enabled); - } - - /** - * Changes whether or not the renderable can use screen-space contact shadows. - - * - * @see Builder#screenSpaceContactShadows - */ - public void setScreenSpaceContactShadows(@EntityInstance int i, boolean enabled) { - nSetScreenSpaceContactShadows(mNativeObject, i, enabled); - } - - /** - * Checks if the renderable can cast shadows. - * - * @see Builder#castShadows - */ - public boolean isShadowCaster(@EntityInstance int i) { - return nIsShadowCaster(mNativeObject, i); - } - - /** - * Checks if the renderable can receive shadows. - * - * @see Builder#receiveShadows - */ - public boolean isShadowReceiver(@EntityInstance int i) { - return nIsShadowReceiver(mNativeObject, i); - } - - /** - * Gets the bounding box used for frustum culling. - * - * @see Builder#boundingBox - * @see RenderableManager#setAxisAlignedBoundingBox - */ - @NonNull - public Box getAxisAlignedBoundingBox(@EntityInstance int i, @Nullable Box out) { - if (out == null) out = new Box(); - nGetAxisAlignedBoundingBox(mNativeObject, i, out.getCenter(), out.getHalfExtent()); - return out; - } - - /** - * Gets the immutable number of primitives in the given renderable. - */ - @IntRange(from = 0) - public int getPrimitiveCount(@EntityInstance int i) { - return nGetPrimitiveCount(mNativeObject, i); - } - - /** - * Changes the material instance binding for the given primitive. - * - * @see Builder#material - */ - public void setMaterialInstanceAt(@EntityInstance int i, @IntRange(from = 0) int primitiveIndex, - @NonNull MaterialInstance materialInstance) { - int required = materialInstance.getMaterial().getRequiredAttributesAsInt(); - int declared = nGetEnabledAttributesAt(mNativeObject, i, primitiveIndex); - if ((declared & required) != required) { - Platform.get().warn("setMaterialInstanceAt() on primitive " - + primitiveIndex + " of Renderable at " + i - + ": declared attributes " + getEnabledAttributesAt(i, primitiveIndex) - + " do no satisfy required attributes " + materialInstance.getMaterial().getRequiredAttributes()); - } - nSetMaterialInstanceAt(mNativeObject, i, primitiveIndex, materialInstance.getNativeObject()); - } - - /** - * Creates a MaterialInstance Java wrapper object for a particular material instance. - */ - public @NonNull MaterialInstance getMaterialInstanceAt(@EntityInstance int i, - @IntRange(from = 0) int primitiveIndex) { - long nativeMatInstance = nGetMaterialInstanceAt(mNativeObject, i, primitiveIndex); - return new MaterialInstance(nativeMatInstance); - } - - /** - * Changes the geometry for the given primitive. - * - * @see Builder#geometry Builder.geometry - */ - public void setGeometryAt(@EntityInstance int i, @IntRange(from = 0) int primitiveIndex, - @NonNull PrimitiveType type, @NonNull VertexBuffer vertices, - @NonNull IndexBuffer indices, @IntRange(from = 0) int offset, - @IntRange(from = 0) int count) { - nSetGeometryAt(mNativeObject, i, primitiveIndex, type.getValue(), vertices.getNativeObject(), indices.getNativeObject(), offset, count); - } - - /** - * Changes the geometry for the given primitive. - * - * @see Builder#geometry Builder.geometry - */ - public void setGeometryAt(@EntityInstance int i, @IntRange(from = 0) int primitiveIndex, - @NonNull PrimitiveType type, @NonNull VertexBuffer vertices, - @NonNull IndexBuffer indices) { - nSetGeometryAt(mNativeObject, i, primitiveIndex, type.getValue(), vertices.getNativeObject(), indices.getNativeObject(), - 0, indices.getIndexCount()); - } - - /** - * Changes the geometry for the given primitive. - * - * @see Builder#geometry Builder.geometry - */ - public void setGeometryAt(@EntityInstance int i, @IntRange(from = 0) int primitiveIndex, - @NonNull PrimitiveType type, @IntRange(from = 0) int offset, @IntRange(from = 0) int count) { - nSetGeometryAt(mNativeObject, i, primitiveIndex, type.getValue(), offset, count); - } - - /** - * Changes the ordering index for blended primitives that all live at the same Z value. - * - * @see Builder#blendOrder - * - * @param instance the renderable of interest - * @param primitiveIndex the primitive of interest - * @param blendOrder draw order number (0 by default). Only the lowest 15 bits are used. - */ - public void setBlendOrderAt(@EntityInstance int instance, @IntRange(from = 0) int primitiveIndex, - @IntRange(from = 0, to = 65535) int blendOrder) { - nSetBlendOrderAt(mNativeObject, instance, primitiveIndex, blendOrder); - } - - /** - * Retrieves the set of enabled attribute slots in the given primitive's VertexBuffer. - */ - public Set getEnabledAttributesAt(@EntityInstance int i, @IntRange(from = 0) int primitiveIndex) { - int bitSet = nGetEnabledAttributesAt(mNativeObject, i, primitiveIndex); - Set requiredAttributes = EnumSet.noneOf(VertexBuffer.VertexAttribute.class); - VertexBuffer.VertexAttribute[] values = VertexBuffer.VertexAttribute.values(); - for (int j = 0; j < values.length; j++) { - if ((bitSet & (1 << j)) != 0) { - requiredAttributes.add(values[j]); - } - } - requiredAttributes = Collections.unmodifiableSet(requiredAttributes); - return requiredAttributes; - } - - public long getNativeObject() { - return mNativeObject; - } - - private static native boolean nHasComponent(long nativeRenderableManager, int entity); - private static native int nGetInstance(long nativeRenderableManager, int entity); - private static native void nDestroy(long nativeRenderableManager, int entity); - - private static native long nCreateBuilder(int count); - private static native void nDestroyBuilder(long nativeBuilder); - private static native boolean nBuilderBuild(long nativeBuilder, long nativeEngine, int entity); - - private static native void nBuilderGeometry(long nativeBuilder, int index, int value, long nativeVertexBuffer, long nativeIndexBuffer); - private static native void nBuilderGeometry(long nativeBuilder, int index, int value, long nativeVertexBuffer, long nativeIndexBuffer, int offset, int count); - private static native void nBuilderGeometry(long nativeBuilder, int index, int value, long nativeVertexBuffer, long nativeIndexBuffer, int offset, int minIndex, int maxIndex, int count); - private static native void nBuilderMaterial(long nativeBuilder, int index, long nativeMaterialInstance); - private static native void nBuilderBlendOrder(long nativeBuilder, int index, int blendOrder); - private static native void nBuilderBoundingBox(long nativeBuilder, float cx, float cy, float cz, float ex, float ey, float ez); - private static native void nBuilderLayerMask(long nativeBuilder, int select, int value); - private static native void nBuilderPriority(long nativeBuilder, int priority); - private static native void nBuilderCulling(long nativeBuilder, boolean enabled); - private static native void nBuilderCastShadows(long nativeBuilder, boolean enabled); - private static native void nBuilderReceiveShadows(long nativeBuilder, boolean enabled); - private static native void nBuilderScreenSpaceContactShadows(long nativeBuilder, boolean enabled); - private static native void nBuilderSkinning(long nativeBuilder, int boneCount); - private static native int nBuilderSkinningBones(long nativeBuilder, int boneCount, Buffer bones, int remaining); - private static native void nBuilderMorphing(long nativeBuilder, boolean enabled); - - private static native int nSetBonesAsMatrices(long nativeObject, int i, Buffer matrices, int remaining, int boneCount, int offset); - private static native int nSetBonesAsQuaternions(long nativeObject, int i, Buffer quaternions, int remaining, int boneCount, int offset); - private static native void nSetMorphWeights(long nativeObject, int instance, float[] weights); - private static native void nSetAxisAlignedBoundingBox(long nativeRenderableManager, int i, float cx, float cy, float cz, float ex, float ey, float ez); - private static native void nSetLayerMask(long nativeRenderableManager, int i, int select, int value); - private static native void nSetPriority(long nativeRenderableManager, int i, int priority); - private static native void nSetCulling(long nativeRenderableManager, int i, boolean enabled); - private static native void nSetCastShadows(long nativeRenderableManager, int i, boolean enabled); - private static native void nSetReceiveShadows(long nativeRenderableManager, int i, boolean enabled); - private static native void nSetScreenSpaceContactShadows(long nativeRenderableManager, int i, boolean enabled); - private static native boolean nIsShadowCaster(long nativeRenderableManager, int i); - private static native boolean nIsShadowReceiver(long nativeRenderableManager, int i); - private static native void nGetAxisAlignedBoundingBox(long nativeRenderableManager, int i, float[] center, float[] halfExtent); - private static native int nGetPrimitiveCount(long nativeRenderableManager, int i); - private static native void nSetMaterialInstanceAt(long nativeRenderableManager, int i, int primitiveIndex, long nativeMaterialInstance); - private static native long nGetMaterialInstanceAt(long nativeRenderableManager, int i, int primitiveIndex); - private static native long nGetMaterialAt(long nativeRenderableManager, int i, int primitiveIndex); - private static native void nSetGeometryAt(long nativeRenderableManager, int i, int primitiveIndex, int primitiveType, long nativeVertexBuffer, long nativeIndexBuffer, int offset, int count); - private static native void nSetGeometryAt(long nativeRenderableManager, int i, int primitiveIndex, int primitiveType, int offset, int count); - private static native void nSetBlendOrderAt(long nativeRenderableManager, int i, int primitiveIndex, int blendOrder); - private static native int nGetEnabledAttributesAt(long nativeRenderableManager, int i, int primitiveIndex); -} +/* + * Copyright (C) 2017 The Android Open Source Project + * + * 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.google.android.filament; + +import androidx.annotation.IntRange; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.Size; + +import java.nio.Buffer; +import java.nio.BufferOverflowException; +import java.util.Collections; +import java.util.EnumSet; +import java.util.Set; + +/** + * Factory and manager for renderables, which are entities that can be drawn. + * + *

Renderables are bundles of primitives, each of which has its own geometry and material. All + * primitives in a particular renderable share a set of rendering attributes, such as whether they + * cast shadows or use vertex skinning. Kotlin usage example:

+ * + *
+ * val entity = EntityManager.get().create()
+ *
+ * RenderableManager.Builder(1)
+ *         .boundingBox(Box(0.0f, 0.0f, 0.0f, 9000.0f, 9000.0f, 9000.0f))
+ *         .geometry(0, RenderableManager.PrimitiveType.TRIANGLES, vb, ib)
+ *         .material(0, material)
+ *         .build(engine, entity)
+ *
+ * scene.addEntity(renderable)
+ * 
+ * + *

To modify the state of an existing renderable, clients should first use RenderableManager + * to get a temporary handle called an instance. The instance can then be used to get or set + * the renderable's state. Please note that instances are ephemeral; clients should store entities, + * not instances.

+ * + *
    + *
  • For details about constructing renderables, see {@link RenderableManager.Builder}.
  • + *
  • To associate a 4x4 transform with an entity, see {@link TransformManager}.
  • + *
+ */ +public class RenderableManager { + private static final String LOG_TAG = "Filament"; + private long mNativeObject; + + RenderableManager(long nativeRenderableManager) { + mNativeObject = nativeRenderableManager; + } + + /** + * Checks if the given entity already has a renderable component. + */ + public boolean hasComponent(@Entity int entity) { + return nHasComponent(mNativeObject, entity); + } + + /** + * Gets a temporary handle that can be used to access the renderable state. + */ + @EntityInstance + public int getInstance(@Entity int entity) { + return nGetInstance(mNativeObject, entity); + } + + /** + * Destroys the renderable component in the given entity. + */ + public void destroy(@Entity int entity) { + nDestroy(mNativeObject, entity); + } + + /** + * Primitive types used in {@link RenderableManager.Builder#geometry}. + */ + public enum PrimitiveType { + POINTS(0), + LINES(1), + TRIANGLES(4); + + private final int mType; + PrimitiveType(int value) { mType = value; } + int getValue() { return mType; } + } + + /** + * Adds renderable components to entities using a builder pattern. + */ + public static class Builder { + @SuppressWarnings({"FieldCanBeLocal", "UnusedDeclaration"}) // Keep to finalize native resources + private final BuilderFinalizer mFinalizer; + private final long mNativeBuilder; + + /** + * Creates a builder for renderable components. + * + * @param count the number of primitives that will be supplied to the builder + * + * Note that builders typically do not have a long lifetime since clients should discard + * them after calling build(). For a usage example, see {@link RenderableManager}. + */ + public Builder(@IntRange(from = 1) int count) { + mNativeBuilder = nCreateBuilder(count); + mFinalizer = new BuilderFinalizer(mNativeBuilder); + } + + /** + * Specifies the geometry data for a primitive. + * + * Filament primitives must have an associated {@link VertexBuffer} and {@link IndexBuffer}. + * Typically, each primitive is specified with a pair of daisy-chained calls: + * geometry() and material(). + * + * @param index zero-based index of the primitive, must be less than the count passed to Builder constructor + * @param type specifies the topology of the primitive (e.g., PrimitiveType.TRIANGLES) + * @param vertices specifies the vertex buffer, which in turn specifies a set of attributes + * @param indices specifies the index buffer (either u16 or u32) + * @param offset specifies where in the index buffer to start reading (expressed as a number of indices) + * @param minIndex specifies the minimum index contained in the index buffer + * @param maxIndex specifies the maximum index contained in the index buffer + * @param count number of indices to read (for triangles, this should be a multiple of 3) + */ + @NonNull + public Builder geometry(@IntRange(from = 0) int index, @NonNull PrimitiveType type, + @NonNull VertexBuffer vertices, @NonNull IndexBuffer indices, + @IntRange(from = 0) int offset, @IntRange(from = 0) int minIndex, + @IntRange(from = 0) int maxIndex, @IntRange(from = 0) int count) { + nBuilderGeometry(mNativeBuilder, index, type.getValue(), vertices.getNativeObject(), + indices.getNativeObject(), offset, minIndex, maxIndex, count); + return this; + } + + /** + * For details, see the {@link RenderableManager.Builder#geometry primary overload}. + */ + @NonNull + public Builder geometry(@IntRange(from = 0) int index, @NonNull PrimitiveType type, + @NonNull VertexBuffer vertices, @NonNull IndexBuffer indices, + @IntRange(from = 0) int offset, @IntRange(from = 0) int count) { + nBuilderGeometry(mNativeBuilder, index, type.getValue(), vertices.getNativeObject(), + indices.getNativeObject(), offset, count); + return this; + } + + /** + * For details, see the {@link RenderableManager.Builder#geometry primary overload}. + */ + @NonNull + public Builder geometry(@IntRange(from = 0) int index, @NonNull PrimitiveType type, + @NonNull VertexBuffer vertices, @NonNull IndexBuffer indices) { + nBuilderGeometry(mNativeBuilder, index, type.getValue(), + vertices.getNativeObject(), indices.getNativeObject()); + return this; + } + + /** + * Binds a material instance to the specified primitive. + * + *

If no material is specified for a given primitive, Filament will fall back to a basic + * default material.

+ * + * @param index zero-based index of the primitive, must be less than the count passed to Builder constructor + * @param material the material to bind + */ + @NonNull + public Builder material(@IntRange(from = 0) int index, @NonNull MaterialInstance material) { + nBuilderMaterial(mNativeBuilder, index, material.getNativeObject()); + return this; + } + + /** + * Sets an ordering index for blended primitives that all live at the same Z value. + * + * @param index the primitive of interest + * @param blendOrder draw order number (0 by default). Only the lowest 15 bits are used. + */ + @NonNull + public Builder blendOrder(@IntRange(from = 0) int index, + @IntRange(from = 0, to = 32767) int blendOrder) { + nBuilderBlendOrder(mNativeBuilder, index, blendOrder); + return this; + } + + /** + * The axis-aligned bounding box of the renderable. + * + *

This is an object-space AABB used for frustum culling. For skinning and morphing, this + * should encompass all possible vertex positions. It is mandatory unless culling is + * disabled for the renderable.

+ */ + @NonNull + public Builder boundingBox(@NonNull Box aabb) { + nBuilderBoundingBox(mNativeBuilder, + aabb.getCenter()[0], aabb.getCenter()[1], aabb.getCenter()[2], + aabb.getHalfExtent()[0], aabb.getHalfExtent()[1], aabb.getHalfExtent()[2]); + return this; + } + + /** + * Sets bits in a visibility mask. By default, this is 0x1. + * + *

This feature provides a simple mechanism for hiding and showing groups of renderables + * in a Scene. See {@link View#setVisibleLayers}.

+ * + *

For example, to set bit 1 and reset bits 0 and 2 while leaving all other bits + * unaffected, do: builder.layerMask(7, 2).

+ * + * @see RenderableManager#setLayerMask + * + * @param select the set of bits to affect + * @param value the replacement values for the affected bits + */ + @NonNull + public Builder layerMask(@IntRange(from = 0, to = 255) int select, + @IntRange(from = 0, to = 255) int value) { + nBuilderLayerMask(mNativeBuilder, select & 0xFF, value & 0xFF); + return this; + } + + /** + * Provides coarse-grained control over draw order. + * + *

In general Filament reserves the right to re-order renderables to allow for efficient + * rendering. However clients can control ordering at a coarse level using priority.

+ * + *

For example, this could be used to draw a semitransparent HUD, if a client wishes to + * avoid using a separate View for the HUD. Note that priority is completely orthogonal to + * {@link Builder#layerMask}, which merely controls visibility.

+ * + *

The priority is clamped to the range [0..7], defaults to 4; 7 is lowest priority + * (rendered last).

+ * + * @see Builder#blendOrder + */ + @NonNull + public Builder priority(@IntRange(from = 0, to = 7) int priority) { + nBuilderPriority(mNativeBuilder, priority); + return this; + } + + /** + * Controls frustum culling, true by default. + * + *

Do not confuse frustum culling with backface culling. The latter is controlled via + * the material.

+ */ + @NonNull + public Builder culling(boolean enabled) { + nBuilderCulling(mNativeBuilder, enabled); + return this; + } + + /** + * Controls if this renderable casts shadows, false by default. + * + * If the View's shadow type is set to {@link View.ShadowType#VSM}, castShadows should only + * be disabled if either is true: + *
    + *
  • {@link RenderableManager#setReceiveShadows} is also disabled
  • + *
  • the object is guaranteed to not cast shadows on itself or other objects (for + * example, a ground plane)
  • + *
+ */ + @NonNull + public Builder castShadows(boolean enabled) { + nBuilderCastShadows(mNativeBuilder, enabled); + return this; + } + + /** + * Controls if this renderable receives shadows, true by default. + */ + @NonNull + public Builder receiveShadows(boolean enabled) { + nBuilderReceiveShadows(mNativeBuilder, enabled); + return this; + } + + /** + * Controls if this renderable uses screen-space contact shadows. This is more + * expensive but can improve the quality of shadows, especially in large scenes. + * (off by default). + */ + @NonNull + public Builder screenSpaceContactShadows(boolean enabled) { + nBuilderScreenSpaceContactShadows(mNativeBuilder, enabled); + return this; + } + + @NonNull + public Builder skinning(@IntRange(from = 0, to = 255) int boneCount) { + nBuilderSkinning(mNativeBuilder, boneCount); + return this; + } + + /** + * Enables GPU vertex skinning for up to 255 bones, 0 by default. + * + *

Each vertex can be affected by up to 4 bones simultaneously. The attached + * VertexBuffer must provide data in the BONE_INDICES slot (uvec4) and the + * BONE_WEIGHTS slot (float4).

+ * + *

See also {@link RenderableManager#setBonesAsMatrices}, which can be called on a per-frame basis + * to advance the animation.

+ * + * @param boneCount Number of bones associated with this component + * @param bones A FloatBuffer containing boneCount transforms. Each transform consists of 8 float. + * float 0 to 3 encode a unit quaternion w+ix+jy+kz stored as x,y,z,w. + * float 4 to 7 encode a translation stored as x,y,z,1 + */ + @NonNull + public Builder skinning(@IntRange(from = 0, to = 255) int boneCount, @NonNull Buffer bones) { + int result = nBuilderSkinningBones(mNativeBuilder, boneCount, bones, bones.remaining()); + if (result < 0) { + throw new BufferOverflowException(); + } + return this; + } + + /** + * Controls if the renderable has vertex morphing targets, false by default. + * + *

This is required to enable GPU morphing for up to 4 attributes. The attached VertexBuffer + * must provide data in the appropriate VertexAttribute slots (MORPH_POSITION_0 etc).

+ * + *

See also {@link RenderableManager#setMorphWeights}, which can be called on a per-frame basis + * to advance the animation.

+ */ + @NonNull + public Builder morphing(boolean enabled) { + nBuilderMorphing(mNativeBuilder, enabled); + return this; + } + + /** + * Adds the Renderable component to an entity. + * + *

If this component already exists on the given entity and the construction is successful, + * it is first destroyed as if {@link RenderableManager#destroy} was called.

+ * + * @param engine reference to the Engine to associate this renderable with + * @param entity entity to add the renderable component to + */ + public void build(@NonNull Engine engine, @Entity int entity) { + if (!nBuilderBuild(mNativeBuilder, engine.getNativeObject(), entity)) { + throw new IllegalStateException( + "Couldn't create Renderable component for entity " + entity + ", see log."); + } + } + + private static class BuilderFinalizer { + private final long mNativeObject; + BuilderFinalizer(long nativeObject) { mNativeObject = nativeObject; } + @Override + public void finalize() { + try { + super.finalize(); + } catch (Throwable t) { // Ignore + } finally { + nDestroyBuilder(mNativeObject); + } + } + } + } + + /** + * Sets the transforms associated with each bone of a Renderable. + * + * @param i Instance of the Renderable + * @param matrices A FloatBuffer containing boneCount 4x4 packed matrices (i.e. 16 floats each matrix and no gap between matrices) + * @param boneCount Number of bones to set + * @param offset Index of the first bone to set + */ + public void setBonesAsMatrices(@EntityInstance int i, + @NonNull Buffer matrices, @IntRange(from = 0, to = 255) int boneCount, + @IntRange(from = 0) int offset) { + int result = nSetBonesAsMatrices(mNativeObject, i, matrices, matrices.remaining(), boneCount, offset); + if (result < 0) { + throw new BufferOverflowException(); + } + } + + /** + * Sets the transforms associated with each bone of a Renderable. + * + * @param i Instance of the Renderable + * @param quaternions A FloatBuffer containing boneCount transforms. Each transform consists of 8 float. + * float 0 to 3 encode a unit quaternion w+ix+jy+kz stored as x,y,z,w. + * float 4 to 7 encode a translation stored as x,y,z,1 + * @param boneCount Number of bones to set + * @param offset Index of the first bone to set + */ + public void setBonesAsQuaternions(@EntityInstance int i, + @NonNull Buffer quaternions, @IntRange(from = 0, to = 255) int boneCount, + @IntRange(from = 0) int offset) { + int result = nSetBonesAsQuaternions(mNativeObject, i, quaternions, quaternions.remaining(), boneCount, offset); + if (result < 0) { + throw new BufferOverflowException(); + } + } + + /** + * Updates the vertex morphing weights on a renderable, all zeroes by default. + * + *

This is specified using a 4-tuple, one float per morph target. If the renderable has fewer + * than 4 morph targets, then clients should fill the unused components with zeroes.

+ * + *

The renderable must be built with morphing enabled.

+ * + * @see Builder#morphing + */ + public void setMorphWeights(@EntityInstance int i, @NonNull @Size(min = 4) float[] weights) { + nSetMorphWeights(mNativeObject, i, weights); + } + + /** + * Changes the bounding box used for frustum culling. + * + * @see Builder#boundingBox + * @see RenderableManager#getAxisAlignedBoundingBox + */ + public void setAxisAlignedBoundingBox(@EntityInstance int i, @NonNull Box aabb) { + nSetAxisAlignedBoundingBox(mNativeObject, i, + aabb.getCenter()[0], aabb.getCenter()[1], aabb.getCenter()[2], + aabb.getHalfExtent()[0], aabb.getHalfExtent()[1], aabb.getHalfExtent()[2]); + } + + /** + * Changes the visibility bits. + * + * @see Builder#layerMask + * @see View#setVisibleLayers + */ + public void setLayerMask(@EntityInstance int i, @IntRange(from = 0, to = 255) int select, + @IntRange(from = 0, to = 255) int value) { + nSetLayerMask(mNativeObject, i, select, value); + } + + /** + * Changes the coarse-level draw ordering. + * + * @see Builder#priority + */ + public void setPriority(@EntityInstance int i, @IntRange(from = 0, to = 7) int priority) { + nSetPriority(mNativeObject, i, priority); + } + + /** + * Changes whether or not frustum culling is on. + * + * @see Builder#culling + */ + public void setCulling(@EntityInstance int i, boolean enabled) { + nSetCulling(mNativeObject, i, enabled); + } + + /** + * Changes whether or not the renderable casts shadows. + * + * @see Builder#castShadows + */ + public void setCastShadows(@EntityInstance int i, boolean enabled) { + nSetCastShadows(mNativeObject, i, enabled); + } + + /** + * Changes whether or not the renderable can receive shadows. + * + * @see Builder#receiveShadows + */ + public void setReceiveShadows(@EntityInstance int i, boolean enabled) { + nSetReceiveShadows(mNativeObject, i, enabled); + } + + /** + * Changes whether or not the renderable can use screen-space contact shadows. + + * + * @see Builder#screenSpaceContactShadows + */ + public void setScreenSpaceContactShadows(@EntityInstance int i, boolean enabled) { + nSetScreenSpaceContactShadows(mNativeObject, i, enabled); + } + + /** + * Checks if the renderable can cast shadows. + * + * @see Builder#castShadows + */ + public boolean isShadowCaster(@EntityInstance int i) { + return nIsShadowCaster(mNativeObject, i); + } + + /** + * Checks if the renderable can receive shadows. + * + * @see Builder#receiveShadows + */ + public boolean isShadowReceiver(@EntityInstance int i) { + return nIsShadowReceiver(mNativeObject, i); + } + + /** + * Gets the bounding box used for frustum culling. + * + * @see Builder#boundingBox + * @see RenderableManager#setAxisAlignedBoundingBox + */ + @NonNull + public Box getAxisAlignedBoundingBox(@EntityInstance int i, @Nullable Box out) { + if (out == null) out = new Box(); + nGetAxisAlignedBoundingBox(mNativeObject, i, out.getCenter(), out.getHalfExtent()); + return out; + } + + /** + * Gets the immutable number of primitives in the given renderable. + */ + @IntRange(from = 0) + public int getPrimitiveCount(@EntityInstance int i) { + return nGetPrimitiveCount(mNativeObject, i); + } + + /** + * Changes the material instance binding for the given primitive. + * + * @see Builder#material + */ + public void setMaterialInstanceAt(@EntityInstance int i, @IntRange(from = 0) int primitiveIndex, + @NonNull MaterialInstance materialInstance) { + int required = materialInstance.getMaterial().getRequiredAttributesAsInt(); + int declared = nGetEnabledAttributesAt(mNativeObject, i, primitiveIndex); + if ((declared & required) != required) { + Platform.get().warn("setMaterialInstanceAt() on primitive " + + primitiveIndex + " of Renderable at " + i + + ": declared attributes " + getEnabledAttributesAt(i, primitiveIndex) + + " do no satisfy required attributes " + materialInstance.getMaterial().getRequiredAttributes()); + } + nSetMaterialInstanceAt(mNativeObject, i, primitiveIndex, materialInstance.getNativeObject()); + } + + /** + * Creates a MaterialInstance Java wrapper object for a particular material instance. + */ + public @NonNull MaterialInstance getMaterialInstanceAt(@EntityInstance int i, + @IntRange(from = 0) int primitiveIndex) { + long nativeMatInstance = nGetMaterialInstanceAt(mNativeObject, i, primitiveIndex); + return new MaterialInstance(nativeMatInstance); + } + + /** + * Changes the geometry for the given primitive. + * + * @see Builder#geometry Builder.geometry + */ + public void setGeometryAt(@EntityInstance int i, @IntRange(from = 0) int primitiveIndex, + @NonNull PrimitiveType type, @NonNull VertexBuffer vertices, + @NonNull IndexBuffer indices, @IntRange(from = 0) int offset, + @IntRange(from = 0) int count) { + nSetGeometryAt(mNativeObject, i, primitiveIndex, type.getValue(), vertices.getNativeObject(), indices.getNativeObject(), offset, count); + } + + /** + * Changes the geometry for the given primitive. + * + * @see Builder#geometry Builder.geometry + */ + public void setGeometryAt(@EntityInstance int i, @IntRange(from = 0) int primitiveIndex, + @NonNull PrimitiveType type, @NonNull VertexBuffer vertices, + @NonNull IndexBuffer indices) { + nSetGeometryAt(mNativeObject, i, primitiveIndex, type.getValue(), vertices.getNativeObject(), indices.getNativeObject(), + 0, indices.getIndexCount()); + } + + /** + * Changes the geometry for the given primitive. + * + * @see Builder#geometry Builder.geometry + */ + public void setGeometryAt(@EntityInstance int i, @IntRange(from = 0) int primitiveIndex, + @NonNull PrimitiveType type, @IntRange(from = 0) int offset, @IntRange(from = 0) int count) { + nSetGeometryAt(mNativeObject, i, primitiveIndex, type.getValue(), offset, count); + } + + /** + * Changes the ordering index for blended primitives that all live at the same Z value. + * + * @see Builder#blendOrder + * + * @param instance the renderable of interest + * @param primitiveIndex the primitive of interest + * @param blendOrder draw order number (0 by default). Only the lowest 15 bits are used. + */ + public void setBlendOrderAt(@EntityInstance int instance, @IntRange(from = 0) int primitiveIndex, + @IntRange(from = 0, to = 65535) int blendOrder) { + nSetBlendOrderAt(mNativeObject, instance, primitiveIndex, blendOrder); + } + + /** + * Retrieves the set of enabled attribute slots in the given primitive's VertexBuffer. + */ + public Set getEnabledAttributesAt(@EntityInstance int i, @IntRange(from = 0) int primitiveIndex) { + int bitSet = nGetEnabledAttributesAt(mNativeObject, i, primitiveIndex); + Set requiredAttributes = EnumSet.noneOf(VertexBuffer.VertexAttribute.class); + VertexBuffer.VertexAttribute[] values = VertexBuffer.VertexAttribute.values(); + for (int j = 0; j < values.length; j++) { + if ((bitSet & (1 << j)) != 0) { + requiredAttributes.add(values[j]); + } + } + requiredAttributes = Collections.unmodifiableSet(requiredAttributes); + return requiredAttributes; + } + + public long getNativeObject() { + return mNativeObject; + } + + private static native boolean nHasComponent(long nativeRenderableManager, int entity); + private static native int nGetInstance(long nativeRenderableManager, int entity); + private static native void nDestroy(long nativeRenderableManager, int entity); + + private static native long nCreateBuilder(int count); + private static native void nDestroyBuilder(long nativeBuilder); + private static native boolean nBuilderBuild(long nativeBuilder, long nativeEngine, int entity); + + private static native void nBuilderGeometry(long nativeBuilder, int index, int value, long nativeVertexBuffer, long nativeIndexBuffer); + private static native void nBuilderGeometry(long nativeBuilder, int index, int value, long nativeVertexBuffer, long nativeIndexBuffer, int offset, int count); + private static native void nBuilderGeometry(long nativeBuilder, int index, int value, long nativeVertexBuffer, long nativeIndexBuffer, int offset, int minIndex, int maxIndex, int count); + private static native void nBuilderMaterial(long nativeBuilder, int index, long nativeMaterialInstance); + private static native void nBuilderBlendOrder(long nativeBuilder, int index, int blendOrder); + private static native void nBuilderBoundingBox(long nativeBuilder, float cx, float cy, float cz, float ex, float ey, float ez); + private static native void nBuilderLayerMask(long nativeBuilder, int select, int value); + private static native void nBuilderPriority(long nativeBuilder, int priority); + private static native void nBuilderCulling(long nativeBuilder, boolean enabled); + private static native void nBuilderCastShadows(long nativeBuilder, boolean enabled); + private static native void nBuilderReceiveShadows(long nativeBuilder, boolean enabled); + private static native void nBuilderScreenSpaceContactShadows(long nativeBuilder, boolean enabled); + private static native void nBuilderSkinning(long nativeBuilder, int boneCount); + private static native int nBuilderSkinningBones(long nativeBuilder, int boneCount, Buffer bones, int remaining); + private static native void nBuilderMorphing(long nativeBuilder, boolean enabled); + + private static native int nSetBonesAsMatrices(long nativeObject, int i, Buffer matrices, int remaining, int boneCount, int offset); + private static native int nSetBonesAsQuaternions(long nativeObject, int i, Buffer quaternions, int remaining, int boneCount, int offset); + private static native void nSetMorphWeights(long nativeObject, int instance, float[] weights); + private static native void nSetAxisAlignedBoundingBox(long nativeRenderableManager, int i, float cx, float cy, float cz, float ex, float ey, float ez); + private static native void nSetLayerMask(long nativeRenderableManager, int i, int select, int value); + private static native void nSetPriority(long nativeRenderableManager, int i, int priority); + private static native void nSetCulling(long nativeRenderableManager, int i, boolean enabled); + private static native void nSetCastShadows(long nativeRenderableManager, int i, boolean enabled); + private static native void nSetReceiveShadows(long nativeRenderableManager, int i, boolean enabled); + private static native void nSetScreenSpaceContactShadows(long nativeRenderableManager, int i, boolean enabled); + private static native boolean nIsShadowCaster(long nativeRenderableManager, int i); + private static native boolean nIsShadowReceiver(long nativeRenderableManager, int i); + private static native void nGetAxisAlignedBoundingBox(long nativeRenderableManager, int i, float[] center, float[] halfExtent); + private static native int nGetPrimitiveCount(long nativeRenderableManager, int i); + private static native void nSetMaterialInstanceAt(long nativeRenderableManager, int i, int primitiveIndex, long nativeMaterialInstance); + private static native long nGetMaterialInstanceAt(long nativeRenderableManager, int i, int primitiveIndex); + private static native long nGetMaterialAt(long nativeRenderableManager, int i, int primitiveIndex); + private static native void nSetGeometryAt(long nativeRenderableManager, int i, int primitiveIndex, int primitiveType, long nativeVertexBuffer, long nativeIndexBuffer, int offset, int count); + private static native void nSetGeometryAt(long nativeRenderableManager, int i, int primitiveIndex, int primitiveType, int offset, int count); + private static native void nSetBlendOrderAt(long nativeRenderableManager, int i, int primitiveIndex, int blendOrder); + private static native int nGetEnabledAttributesAt(long nativeRenderableManager, int i, int primitiveIndex); +} diff --git a/filament/backend/src/opengl/PlatformWGL.cpp b/filament/backend/src/opengl/PlatformWGL.cpp index d21db23791..8a908b71d7 100644 --- a/filament/backend/src/opengl/PlatformWGL.cpp +++ b/filament/backend/src/opengl/PlatformWGL.cpp @@ -1,272 +1,272 @@ -/* - * Copyright (C) 2018 The Android Open Source Project - * - * 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. - */ - -#include "PlatformWGL.h" - -#include - -#include "OpenGLDriverFactory.h" - -#ifdef _MSC_VER - // this variable is checked in BlueGL.h (included from "gl_headers.h" right after this), - // and prevents duplicate definition of OpenGL apis when building this file. - // However, GL_GLEXT_PROTOTYPES need to be defined in BlueGL.h when included from other files. - #define FILAMENT_PLATFORM_WGL -#endif - -#include "gl_headers.h" - -#include "Windows.h" -#include -#include "GL/glext.h" -#include "GL/wglext.h" - -#include -#include - -namespace { - -void reportLastWindowsError() { - LPSTR lpMessageBuffer = nullptr; - DWORD dwError = GetLastError(); - - if (dwError == 0) { - return; - } - - FormatMessage( - FORMAT_MESSAGE_ALLOCATE_BUFFER | - FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, - nullptr, - dwError, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - lpMessageBuffer, - 0, nullptr - ); - - utils::slog.e << "Windows error code: " << dwError << ". " << lpMessageBuffer - << utils::io::endl; - - LocalFree(lpMessageBuffer); -} - -} // namespace - -namespace filament { - -using namespace backend; - -struct WGLSwapChain { - HDC hDc = NULL; - HWND hWnd = NULL; - bool isHeadless = false; -}; - -Driver* PlatformWGL::createDriver(void* const sharedGLContext) noexcept { - int result = 0; - PFNWGLCREATECONTEXTATTRIBSARBPROC wglCreateContextAttribs = nullptr; - int pixelFormat = 0; - - mPfd = { - sizeof(PIXELFORMATDESCRIPTOR), - 1, - PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER, // Flags - PFD_TYPE_RGBA, // The kind of framebuffer. RGBA or palette. - 32, // Colordepth of the framebuffer. - 0, 0, 0, 0, 0, 0, - 0, - 0, - 0, - 0, 0, 0, 0, - 24, // Number of bits for the depthbuffer - 0, // Number of bits for the stencilbuffer - 0, // Number of Aux buffers in the framebuffer. - PFD_MAIN_PLANE, - 0, - 0, 0, 0 - }; - - int attribs[] = { - WGL_CONTEXT_MAJOR_VERSION_ARB, 4, - WGL_CONTEXT_MINOR_VERSION_ARB, 1, - WGL_CONTEXT_FLAGS_ARB, WGL_CONTEXT_PROFILE_MASK_ARB, - 0 - }; - - HGLRC tempContext = NULL; - - mHWnd = CreateWindowA("STATIC", "dummy", 0, 0, 0, 1, 1, NULL, NULL, NULL, NULL); - HDC whdc = mWhdc = GetDC(mHWnd); - if (whdc == NULL) { - utils::slog.e << "CreateWindowA() failed" << utils::io::endl; - goto error; - } - - pixelFormat = ChoosePixelFormat(whdc, &mPfd); - SetPixelFormat(whdc, pixelFormat, &mPfd); - - // We need a tmp context to retrieve and call wglCreateContextAttribsARB. - tempContext = wglCreateContext(whdc); - if (!wglMakeCurrent(whdc, tempContext)) { - utils::slog.e << "wglMakeCurrent() failed, whdc=" << whdc << ", tempContext=" << - tempContext << utils::io::endl; - goto error; - } - - wglCreateContextAttribs = - (PFNWGLCREATECONTEXTATTRIBSARBPROC) wglGetProcAddress("wglCreateContextAttribsARB"); - mContext = wglCreateContextAttribs(whdc, (HGLRC) sharedGLContext, attribs); - if (!mContext) { - utils::slog.e << "wglCreateContextAttribs() failed, whdc=" << whdc << utils::io::endl; - goto error; - } - - wglMakeCurrent(NULL, NULL); - wglDeleteContext(tempContext); - tempContext = NULL; - - if (!wglMakeCurrent(whdc, mContext)) { - utils::slog.e << "wglMakeCurrent() failed, whdc=" << whdc << ", mContext=" << - mContext << utils::io::endl; - goto error; - } - - result = bluegl::bind(); - ASSERT_POSTCONDITION(!result, "Unable to load OpenGL entry points."); - return OpenGLDriverFactory::create(this, sharedGLContext); - -error: - if (tempContext) { - wglDeleteContext(tempContext); - } - reportLastWindowsError(); - terminate(); - return NULL; -} - -void PlatformWGL::terminate() noexcept { - wglMakeCurrent(NULL, NULL); - if (mContext) { - wglDeleteContext(mContext); - mContext = NULL; - } - if (mHWnd && mWhdc) { - ReleaseDC(mHWnd, mWhdc); - DestroyWindow(mHWnd); - mHWnd = NULL; - mWhdc = NULL; - } else if (mHWnd) { - DestroyWindow(mHWnd); - mHWnd = NULL; - } - bluegl::unbind(); -} - -Platform::SwapChain* PlatformWGL::createSwapChain(void* nativeWindow, uint64_t& flags) noexcept { - auto* swapChain = new WGLSwapChain(); - swapChain->isHeadless = false; - - // on Windows, the nativeWindow maps to a HWND - swapChain->hWnd = (HWND) nativeWindow; - swapChain->hDc = GetDC(swapChain->hWnd); - if (!ASSERT_POSTCONDITION_NON_FATAL(swapChain->hDc, - "Unable to create the SwapChain (nativeWindow = %p)", nativeWindow)) { - reportLastWindowsError(); - } - - // We have to match pixel formats across the HDC and HGLRC (mContext) - int pixelFormat = ChoosePixelFormat(swapChain->hDc, &mPfd); - SetPixelFormat(swapChain->hDc, pixelFormat, &mPfd); - - return (Platform::SwapChain*) swapChain; -} - -Platform::SwapChain* PlatformWGL::createSwapChain(uint32_t width, uint32_t height, uint64_t& flags) noexcept { - auto* swapChain = new WGLSwapChain(); - swapChain->isHeadless = true; - - // WS_POPUP was chosen for the window style here after some experimentation. - // For some reason, using other window styles resulted in corrupted pixel buffers when using - // readPixels. - RECT rect = {0, 0, width, height}; - AdjustWindowRect(&rect, WS_POPUP, FALSE); - width = rect.right - rect.left; - height = rect.bottom - rect.top; - - swapChain->hWnd = CreateWindowA("STATIC", "headless", WS_POPUP, 0, 0, - width, height, NULL, NULL, NULL, NULL); - swapChain->hDc = GetDC(swapChain->hWnd); - int pixelFormat = ChoosePixelFormat(swapChain->hDc, &mPfd); - SetPixelFormat(swapChain->hDc, pixelFormat, &mPfd); - - return (Platform::SwapChain*) swapChain; -} - -void PlatformWGL::destroySwapChain(Platform::SwapChain* swapChain) noexcept { - auto* wglSwapChain = (WGLSwapChain*) swapChain; - - HDC dc = wglSwapChain->hDc; - HWND window = wglSwapChain->hWnd; - ReleaseDC(window, dc); - - if (wglSwapChain->isHeadless) { - DestroyWindow(window); - } - - delete wglSwapChain; - - // make this swapChain not current (by making a dummy one current) - wglMakeCurrent(mWhdc, mContext); -} - -void PlatformWGL::makeCurrent(Platform::SwapChain* drawSwapChain, - Platform::SwapChain* readSwapChain) noexcept { - ASSERT_PRECONDITION_NON_FATAL(drawSwapChain == readSwapChain, - "PlatformWGL does not support distinct draw/read swap chains."); - - auto* wglSwapChain = (WGLSwapChain*) drawSwapChain; - HDC hdc = wglSwapChain->hDc; - if (hdc != NULL) { - BOOL success = wglMakeCurrent(hdc, mContext); - if (!ASSERT_POSTCONDITION_NON_FATAL(success, "wglMakeCurrent() failed. hdc = %p", hdc)) { - reportLastWindowsError(); - wglMakeCurrent(0, NULL); - } - } -} - -void PlatformWGL::commit(Platform::SwapChain* swapChain) noexcept { - auto* wglSwapChain = (WGLSwapChain*) swapChain; - HDC hdc = wglSwapChain->hDc; - if (hdc != NULL) { - SwapBuffers(hdc); - } -} - -//TODO Implement WGL fences -Platform::Fence* PlatformWGL::createFence() noexcept { - return nullptr; -} - -void PlatformWGL::destroyFence(Fence* fence) noexcept { -} - -backend::FenceStatus PlatformWGL::waitFence(Fence* fence, uint64_t timeout) noexcept { - return backend::FenceStatus::ERROR; -} - -} // namespace filament +/* + * Copyright (C) 2018 The Android Open Source Project + * + * 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. + */ + +#include "PlatformWGL.h" + +#include + +#include "OpenGLDriverFactory.h" + +#ifdef _MSC_VER + // this variable is checked in BlueGL.h (included from "gl_headers.h" right after this), + // and prevents duplicate definition of OpenGL apis when building this file. + // However, GL_GLEXT_PROTOTYPES need to be defined in BlueGL.h when included from other files. + #define FILAMENT_PLATFORM_WGL +#endif + +#include "gl_headers.h" + +#include "Windows.h" +#include +#include "GL/glext.h" +#include "GL/wglext.h" + +#include +#include + +namespace { + +void reportLastWindowsError() { + LPSTR lpMessageBuffer = nullptr; + DWORD dwError = GetLastError(); + + if (dwError == 0) { + return; + } + + FormatMessage( + FORMAT_MESSAGE_ALLOCATE_BUFFER | + FORMAT_MESSAGE_FROM_SYSTEM | + FORMAT_MESSAGE_IGNORE_INSERTS, + nullptr, + dwError, + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + lpMessageBuffer, + 0, nullptr + ); + + utils::slog.e << "Windows error code: " << dwError << ". " << lpMessageBuffer + << utils::io::endl; + + LocalFree(lpMessageBuffer); +} + +} // namespace + +namespace filament { + +using namespace backend; + +struct WGLSwapChain { + HDC hDc = NULL; + HWND hWnd = NULL; + bool isHeadless = false; +}; + +Driver* PlatformWGL::createDriver(void* const sharedGLContext) noexcept { + int result = 0; + PFNWGLCREATECONTEXTATTRIBSARBPROC wglCreateContextAttribs = nullptr; + int pixelFormat = 0; + + mPfd = { + sizeof(PIXELFORMATDESCRIPTOR), + 1, + PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER, // Flags + PFD_TYPE_RGBA, // The kind of framebuffer. RGBA or palette. + 32, // Colordepth of the framebuffer. + 0, 0, 0, 0, 0, 0, + 0, + 0, + 0, + 0, 0, 0, 0, + 24, // Number of bits for the depthbuffer + 0, // Number of bits for the stencilbuffer + 0, // Number of Aux buffers in the framebuffer. + PFD_MAIN_PLANE, + 0, + 0, 0, 0 + }; + + int attribs[] = { + WGL_CONTEXT_MAJOR_VERSION_ARB, 4, + WGL_CONTEXT_MINOR_VERSION_ARB, 1, + WGL_CONTEXT_FLAGS_ARB, WGL_CONTEXT_PROFILE_MASK_ARB, + 0 + }; + + HGLRC tempContext = NULL; + + mHWnd = CreateWindowA("STATIC", "dummy", 0, 0, 0, 1, 1, NULL, NULL, NULL, NULL); + HDC whdc = mWhdc = GetDC(mHWnd); + if (whdc == NULL) { + utils::slog.e << "CreateWindowA() failed" << utils::io::endl; + goto error; + } + + pixelFormat = ChoosePixelFormat(whdc, &mPfd); + SetPixelFormat(whdc, pixelFormat, &mPfd); + + // We need a tmp context to retrieve and call wglCreateContextAttribsARB. + tempContext = wglCreateContext(whdc); + if (!wglMakeCurrent(whdc, tempContext)) { + utils::slog.e << "wglMakeCurrent() failed, whdc=" << whdc << ", tempContext=" << + tempContext << utils::io::endl; + goto error; + } + + wglCreateContextAttribs = + (PFNWGLCREATECONTEXTATTRIBSARBPROC) wglGetProcAddress("wglCreateContextAttribsARB"); + mContext = wglCreateContextAttribs(whdc, (HGLRC) sharedGLContext, attribs); + if (!mContext) { + utils::slog.e << "wglCreateContextAttribs() failed, whdc=" << whdc << utils::io::endl; + goto error; + } + + wglMakeCurrent(NULL, NULL); + wglDeleteContext(tempContext); + tempContext = NULL; + + if (!wglMakeCurrent(whdc, mContext)) { + utils::slog.e << "wglMakeCurrent() failed, whdc=" << whdc << ", mContext=" << + mContext << utils::io::endl; + goto error; + } + + result = bluegl::bind(); + ASSERT_POSTCONDITION(!result, "Unable to load OpenGL entry points."); + return OpenGLDriverFactory::create(this, sharedGLContext); + +error: + if (tempContext) { + wglDeleteContext(tempContext); + } + reportLastWindowsError(); + terminate(); + return NULL; +} + +void PlatformWGL::terminate() noexcept { + wglMakeCurrent(NULL, NULL); + if (mContext) { + wglDeleteContext(mContext); + mContext = NULL; + } + if (mHWnd && mWhdc) { + ReleaseDC(mHWnd, mWhdc); + DestroyWindow(mHWnd); + mHWnd = NULL; + mWhdc = NULL; + } else if (mHWnd) { + DestroyWindow(mHWnd); + mHWnd = NULL; + } + bluegl::unbind(); +} + +Platform::SwapChain* PlatformWGL::createSwapChain(void* nativeWindow, uint64_t& flags) noexcept { + auto* swapChain = new WGLSwapChain(); + swapChain->isHeadless = false; + + // on Windows, the nativeWindow maps to a HWND + swapChain->hWnd = (HWND) nativeWindow; + swapChain->hDc = GetDC(swapChain->hWnd); + if (!ASSERT_POSTCONDITION_NON_FATAL(swapChain->hDc, + "Unable to create the SwapChain (nativeWindow = %p)", nativeWindow)) { + reportLastWindowsError(); + } + + // We have to match pixel formats across the HDC and HGLRC (mContext) + int pixelFormat = ChoosePixelFormat(swapChain->hDc, &mPfd); + SetPixelFormat(swapChain->hDc, pixelFormat, &mPfd); + + return (Platform::SwapChain*) swapChain; +} + +Platform::SwapChain* PlatformWGL::createSwapChain(uint32_t width, uint32_t height, uint64_t& flags) noexcept { + auto* swapChain = new WGLSwapChain(); + swapChain->isHeadless = true; + + // WS_POPUP was chosen for the window style here after some experimentation. + // For some reason, using other window styles resulted in corrupted pixel buffers when using + // readPixels. + RECT rect = {0, 0, width, height}; + AdjustWindowRect(&rect, WS_POPUP, FALSE); + width = rect.right - rect.left; + height = rect.bottom - rect.top; + + swapChain->hWnd = CreateWindowA("STATIC", "headless", WS_POPUP, 0, 0, + width, height, NULL, NULL, NULL, NULL); + swapChain->hDc = GetDC(swapChain->hWnd); + int pixelFormat = ChoosePixelFormat(swapChain->hDc, &mPfd); + SetPixelFormat(swapChain->hDc, pixelFormat, &mPfd); + + return (Platform::SwapChain*) swapChain; +} + +void PlatformWGL::destroySwapChain(Platform::SwapChain* swapChain) noexcept { + auto* wglSwapChain = (WGLSwapChain*) swapChain; + + HDC dc = wglSwapChain->hDc; + HWND window = wglSwapChain->hWnd; + ReleaseDC(window, dc); + + if (wglSwapChain->isHeadless) { + DestroyWindow(window); + } + + delete wglSwapChain; + + // make this swapChain not current (by making a dummy one current) + wglMakeCurrent(mWhdc, mContext); +} + +void PlatformWGL::makeCurrent(Platform::SwapChain* drawSwapChain, + Platform::SwapChain* readSwapChain) noexcept { + ASSERT_PRECONDITION_NON_FATAL(drawSwapChain == readSwapChain, + "PlatformWGL does not support distinct draw/read swap chains."); + + auto* wglSwapChain = (WGLSwapChain*) drawSwapChain; + HDC hdc = wglSwapChain->hDc; + if (hdc != NULL) { + BOOL success = wglMakeCurrent(hdc, mContext); + if (!ASSERT_POSTCONDITION_NON_FATAL(success, "wglMakeCurrent() failed. hdc = %p", hdc)) { + reportLastWindowsError(); + wglMakeCurrent(0, NULL); + } + } +} + +void PlatformWGL::commit(Platform::SwapChain* swapChain) noexcept { + auto* wglSwapChain = (WGLSwapChain*) swapChain; + HDC hdc = wglSwapChain->hDc; + if (hdc != NULL) { + SwapBuffers(hdc); + } +} + +//TODO Implement WGL fences +Platform::Fence* PlatformWGL::createFence() noexcept { + return nullptr; +} + +void PlatformWGL::destroyFence(Fence* fence) noexcept { +} + +backend::FenceStatus PlatformWGL::waitFence(Fence* fence, uint64_t timeout) noexcept { + return backend::FenceStatus::ERROR; +} + +} // namespace filament diff --git a/filament/backend/src/opengl/PlatformWGL.h b/filament/backend/src/opengl/PlatformWGL.h index 467352ea5a..0c15388ba7 100644 --- a/filament/backend/src/opengl/PlatformWGL.h +++ b/filament/backend/src/opengl/PlatformWGL.h @@ -1,70 +1,70 @@ -/* - * Copyright (C) 2018 The Android Open Source Project - * - * 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. - */ - -#ifndef TNT_FILAMENT_DRIVER_OPENGL_PLATFORM_WGL_H -#define TNT_FILAMENT_DRIVER_OPENGL_PLATFORM_WGL_H - -#include - -#include -#include - -#include - -#include "private/backend/OpenGLPlatform.h" - -namespace filament { - -class PlatformWGL final : public backend::OpenGLPlatform { -public: - backend::Driver* createDriver(void* const sharedGLContext) noexcept override; - void terminate() noexcept override; - - SwapChain* createSwapChain(void* nativewindow, uint64_t& flags) noexcept override; - SwapChain* createSwapChain(uint32_t width, uint32_t height, uint64_t& flags) noexcept override; - void destroySwapChain(SwapChain* swapChain) noexcept override; - void makeCurrent(SwapChain* drawSwapChain, SwapChain* readSwapChain) noexcept override; - void commit(SwapChain* swapChain) noexcept override; - - Fence* createFence() noexcept override; - void destroyFence(Fence* fence) noexcept override; - backend::FenceStatus waitFence(Fence* fence, uint64_t timeout) noexcept override; - - void setPresentationTime(int64_t time) noexcept final override {} - - Stream* createStream(void* nativeStream) noexcept final override { return nullptr; } - void destroyStream(Stream* stream) noexcept final override {} - void attach(Stream* stream, intptr_t tname) noexcept final override {} - void detach(Stream* stream) noexcept final override {} - void updateTexImage(Stream* stream, int64_t* timestamp) noexcept final override {} - - ExternalTexture* createExternalTextureStorage() noexcept final override { return nullptr; } - void reallocateExternalStorage(ExternalTexture* ets, - uint32_t w, uint32_t h, backend::TextureFormat format) noexcept final override { } - void destroyExternalTextureStorage(ExternalTexture* ets) noexcept final override { } - - int getOSVersion() const noexcept final override { return 0; } - -private: - HGLRC mContext = NULL; - HWND mHWnd = NULL; - HDC mWhdc = NULL; - PIXELFORMATDESCRIPTOR mPfd = {}; -}; - -} // namespace filament - -#endif // TNT_FILAMENT_DRIVER_OPENGL_PLATFORM_GLX_H +/* + * Copyright (C) 2018 The Android Open Source Project + * + * 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. + */ + +#ifndef TNT_FILAMENT_DRIVER_OPENGL_PLATFORM_WGL_H +#define TNT_FILAMENT_DRIVER_OPENGL_PLATFORM_WGL_H + +#include + +#include +#include + +#include + +#include "private/backend/OpenGLPlatform.h" + +namespace filament { + +class PlatformWGL final : public backend::OpenGLPlatform { +public: + backend::Driver* createDriver(void* const sharedGLContext) noexcept override; + void terminate() noexcept override; + + SwapChain* createSwapChain(void* nativewindow, uint64_t& flags) noexcept override; + SwapChain* createSwapChain(uint32_t width, uint32_t height, uint64_t& flags) noexcept override; + void destroySwapChain(SwapChain* swapChain) noexcept override; + void makeCurrent(SwapChain* drawSwapChain, SwapChain* readSwapChain) noexcept override; + void commit(SwapChain* swapChain) noexcept override; + + Fence* createFence() noexcept override; + void destroyFence(Fence* fence) noexcept override; + backend::FenceStatus waitFence(Fence* fence, uint64_t timeout) noexcept override; + + void setPresentationTime(int64_t time) noexcept final override {} + + Stream* createStream(void* nativeStream) noexcept final override { return nullptr; } + void destroyStream(Stream* stream) noexcept final override {} + void attach(Stream* stream, intptr_t tname) noexcept final override {} + void detach(Stream* stream) noexcept final override {} + void updateTexImage(Stream* stream, int64_t* timestamp) noexcept final override {} + + ExternalTexture* createExternalTextureStorage() noexcept final override { return nullptr; } + void reallocateExternalStorage(ExternalTexture* ets, + uint32_t w, uint32_t h, backend::TextureFormat format) noexcept final override { } + void destroyExternalTextureStorage(ExternalTexture* ets) noexcept final override { } + + int getOSVersion() const noexcept final override { return 0; } + +private: + HGLRC mContext = NULL; + HWND mHWnd = NULL; + HDC mWhdc = NULL; + PIXELFORMATDESCRIPTOR mPfd = {}; +}; + +} // namespace filament + +#endif // TNT_FILAMENT_DRIVER_OPENGL_PLATFORM_GLX_H diff --git a/java/filament/src/java/com/google/android/filament/FilamentTarget.java b/java/filament/src/java/com/google/android/filament/FilamentTarget.java index 0fdf8ea34e..405de3482a 100644 --- a/java/filament/src/java/com/google/android/filament/FilamentTarget.java +++ b/java/filament/src/java/com/google/android/filament/FilamentTarget.java @@ -1,25 +1,25 @@ -/* - * Copyright (C) 2018 The Android Open Source Project - * - * 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.google.android.filament; - -import androidx.annotation.NonNull; - -public interface FilamentTarget { - boolean beginFrame(Engine engine, Renderer renderer); - void endFrame(@NonNull Renderer renderer); - void destroy(@NonNull Engine engine); +/* + * Copyright (C) 2018 The Android Open Source Project + * + * 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.google.android.filament; + +import androidx.annotation.NonNull; + +public interface FilamentTarget { + boolean beginFrame(Engine engine, Renderer renderer); + void endFrame(@NonNull Renderer renderer); + void destroy(@NonNull Engine engine); } \ No newline at end of file diff --git a/libs/bluegl/src/BlueGLDarwin.cpp b/libs/bluegl/src/BlueGLDarwin.cpp index 632014a892..5114033d0e 100644 --- a/libs/bluegl/src/BlueGLDarwin.cpp +++ b/libs/bluegl/src/BlueGLDarwin.cpp @@ -1,38 +1,38 @@ -/* - * Copyright (C) 2018 The Android Open Source Project - * - * 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. - */ - -#include - -namespace bluegl { - -static void* library = nullptr; - -bool initBinder() { - const char* library_name = "/System/Library/Frameworks/OpenGL.framework/OpenGL"; - library = dlopen(library_name, RTLD_GLOBAL | RTLD_NOW); - return library != nullptr; -} - -void* loadFunction(const char* name) { - return dlsym(library, name); -} - -void shutdownBinder() { - dlclose(library); - library = nullptr; -} - -} // namespace bluegl +/* + * Copyright (C) 2018 The Android Open Source Project + * + * 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. + */ + +#include + +namespace bluegl { + +static void* library = nullptr; + +bool initBinder() { + const char* library_name = "/System/Library/Frameworks/OpenGL.framework/OpenGL"; + library = dlopen(library_name, RTLD_GLOBAL | RTLD_NOW); + return library != nullptr; +} + +void* loadFunction(const char* name) { + return dlsym(library, name); +} + +void shutdownBinder() { + dlclose(library); + library = nullptr; +} + +} // namespace bluegl diff --git a/libs/bluegl/src/BlueGLLinux.cpp b/libs/bluegl/src/BlueGLLinux.cpp index d432d49098..77884bfabe 100644 --- a/libs/bluegl/src/BlueGLLinux.cpp +++ b/libs/bluegl/src/BlueGLLinux.cpp @@ -1,51 +1,51 @@ -/* - * Copyright (C) 2018 The Android Open Source Project - * - * 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. - */ - -#include -#include -#include - -namespace bluegl { - -struct Driver { - void* (*glXGetProcAddress)(const GLubyte*); - void* library; -} g_driver = {nullptr, nullptr}; - -bool initBinder() { - const char* library_name = "libGL.so.1"; - g_driver.library = dlopen(library_name, RTLD_GLOBAL | RTLD_NOW); - - if (!g_driver.library) { - return false; - } - - g_driver.glXGetProcAddress = (void *(*)(const GLubyte *)) - dlsym(g_driver.library, "glXGetProcAddressARB"); - - return g_driver.glXGetProcAddress; -} - -void* loadFunction(const char* name) { - return (void*) g_driver.glXGetProcAddress((const GLubyte*) name); -} - -void shutdownBinder() { - dlclose(g_driver.library); - memset(&g_driver, 0, sizeof(g_driver)); -} - -} // namespace bluegl +/* + * Copyright (C) 2018 The Android Open Source Project + * + * 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. + */ + +#include +#include +#include + +namespace bluegl { + +struct Driver { + void* (*glXGetProcAddress)(const GLubyte*); + void* library; +} g_driver = {nullptr, nullptr}; + +bool initBinder() { + const char* library_name = "libGL.so.1"; + g_driver.library = dlopen(library_name, RTLD_GLOBAL | RTLD_NOW); + + if (!g_driver.library) { + return false; + } + + g_driver.glXGetProcAddress = (void *(*)(const GLubyte *)) + dlsym(g_driver.library, "glXGetProcAddressARB"); + + return g_driver.glXGetProcAddress; +} + +void* loadFunction(const char* name) { + return (void*) g_driver.glXGetProcAddress((const GLubyte*) name); +} + +void shutdownBinder() { + dlclose(g_driver.library); + memset(&g_driver, 0, sizeof(g_driver)); +} + +} // namespace bluegl diff --git a/libs/bluegl/src/BlueGLWindows.cpp b/libs/bluegl/src/BlueGLWindows.cpp index 2264e0716a..9b29190c8a 100644 --- a/libs/bluegl/src/BlueGLWindows.cpp +++ b/libs/bluegl/src/BlueGLWindows.cpp @@ -1,40 +1,40 @@ -/* - * Copyright (C) 2018 The Android Open Source Project - * - * 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. - */ - -#include - -namespace bluegl { - -static HMODULE module = nullptr; - -bool initBinder() { - module = LoadLibraryA("opengl32.dll"); - return module != nullptr; -} - -void* loadFunction(const char* name) { - void *p = (void *) wglGetProcAddress(name); - if (p == 0 || (p == (void*) 0x1) || (p == (void*) 0x2) - || (p == (void*) 0x3) || (p == (void*) -1)) { - p = (void *) GetProcAddress(module, name); - } - return p; -} - -void shutdownBinder() { -} - -} // namespace bluegl +/* + * Copyright (C) 2018 The Android Open Source Project + * + * 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. + */ + +#include + +namespace bluegl { + +static HMODULE module = nullptr; + +bool initBinder() { + module = LoadLibraryA("opengl32.dll"); + return module != nullptr; +} + +void* loadFunction(const char* name) { + void *p = (void *) wglGetProcAddress(name); + if (p == 0 || (p == (void*) 0x1) || (p == (void*) 0x2) + || (p == (void*) 0x3) || (p == (void*) -1)) { + p = (void *) GetProcAddress(module, name); + } + return p; +} + +void shutdownBinder() { +} + +} // namespace bluegl diff --git a/libs/utils/include/utils/unwindows.h b/libs/utils/include/utils/unwindows.h index 6bd6574d84..328ba4dde1 100644 --- a/libs/utils/include/utils/unwindows.h +++ b/libs/utils/include/utils/unwindows.h @@ -1,51 +1,51 @@ -/* - * Copyright (C) 2018 The Android Open Source Project - * - * 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. - */ - -#if defined (WIN32) - -#ifdef max -#undef max -#endif - -#ifdef min -#undef min -#endif - -#ifdef far -#undef far -#endif - -#ifdef near -#undef near -#endif - -#ifdef ERROR -#undef ERROR -#endif - -#ifdef OPAQUE -#undef OPAQUE -#endif - -#ifdef TRANSPARENT -#undef TRANSPARENT -#endif - -#ifdef PURE -#undef PURE -#endif - -#endif +/* + * Copyright (C) 2018 The Android Open Source Project + * + * 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. + */ + +#if defined (WIN32) + +#ifdef max +#undef max +#endif + +#ifdef min +#undef min +#endif + +#ifdef far +#undef far +#endif + +#ifdef near +#undef near +#endif + +#ifdef ERROR +#undef ERROR +#endif + +#ifdef OPAQUE +#undef OPAQUE +#endif + +#ifdef TRANSPARENT +#undef TRANSPARENT +#endif + +#ifdef PURE +#undef PURE +#endif + +#endif diff --git a/tools/cmgen/tests/Footballfield/Footballfield.txt b/tools/cmgen/tests/Footballfield/Footballfield.txt index d9bd514116..8b404c2736 100644 --- a/tools/cmgen/tests/Footballfield/Footballfield.txt +++ b/tools/cmgen/tests/Footballfield/Footballfield.txt @@ -1,13 +1,13 @@ -Author -====== - -This is the work of Emil Persson, aka Humus. -http://www.humus.name - - - -License -======= - -This work is licensed under a Creative Commons Attribution 3.0 Unported License. -http://creativecommons.org/licenses/by/3.0/ +Author +====== + +This is the work of Emil Persson, aka Humus. +http://www.humus.name + + + +License +======= + +This work is licensed under a Creative Commons Attribution 3.0 Unported License. +http://creativecommons.org/licenses/by/3.0/ diff --git a/tools/specular-color/data/aluminium.txt b/tools/specular-color/data/aluminium.txt index 9a06ccbd2f..ba7707769e 100644 --- a/tools/specular-color/data/aluminium.txt +++ b/tools/specular-color/data/aluminium.txt @@ -1,403 +1,403 @@ -wl n -6.1992e-02 6.6415e-01 -6.4630e-02 6.2647e-01 -6.7381e-02 5.8276e-01 -7.0249e-02 5.3121e-01 -7.3239e-02 4.6884e-01 -7.6355e-02 3.9013e-01 -7.9605e-02 2.8200e-01 -8.2993e-02 1.1588e-01 -8.6525e-02 5.5295e-02 -9.0208e-02 4.4408e-02 -9.4047e-02 4.0584e-02 -9.8049e-02 3.9232e-02 -1.0222e-01 3.9141e-02 -1.0657e-01 3.9857e-02 -1.1111e-01 4.1181e-02 -1.1584e-01 4.3024e-02 -1.2077e-01 4.5350e-02 -1.2591e-01 4.8158e-02 -1.3127e-01 5.1461e-02 -1.3685e-01 5.5281e-02 -1.4268e-01 5.9640e-02 -1.4875e-01 6.4557e-02 -1.5508e-01 7.0040e-02 -1.6168e-01 7.6091e-02 -1.6856e-01 8.2703e-02 -1.7573e-01 8.9866e-02 -1.8321e-01 9.7571e-02 -1.9101e-01 1.0582e-01 -1.9914e-01 1.1461e-01 -2.0762e-01 1.2398e-01 -2.1645e-01 1.3398e-01 -2.2566e-01 1.4468e-01 -2.3527e-01 1.5617e-01 -2.4528e-01 1.6860e-01 -2.5572e-01 1.8210e-01 -2.6660e-01 1.9687e-01 -2.7795e-01 2.1312e-01 -2.8978e-01 2.3109e-01 -3.0211e-01 2.5107e-01 -3.1497e-01 2.7336e-01 -3.2837e-01 2.9832e-01 -3.4235e-01 3.2634e-01 -3.5692e-01 3.5785e-01 -3.7211e-01 3.9330e-01 -3.8795e-01 4.3317e-01 -4.0446e-01 4.7790e-01 -4.2167e-01 5.2788e-01 -4.3962e-01 5.8336e-01 -4.5833e-01 6.4439e-01 -4.7783e-01 7.1074e-01 -4.9817e-01 7.8186e-01 -5.1937e-01 8.5697e-01 -5.4147e-01 9.3525e-01 -5.6452e-01 1.0162e+00 -5.8855e-01 1.1005e+00 -6.1359e-01 1.1911e+00 -6.3971e-01 1.2952e+00 -6.6693e-01 1.4286e+00 -6.9532e-01 1.6203e+00 -7.2491e-01 1.9115e+00 -7.5576e-01 2.3052e+00 -7.8793e-01 2.6523e+00 -8.2146e-01 2.7061e+00 -8.5642e-01 2.4465e+00 -8.9287e-01 2.0948e+00 -9.3087e-01 1.8089e+00 -9.7049e-01 1.6120e+00 -1.0118e+00 1.4821e+00 -1.0549e+00 1.3974e+00 -1.0997e+00 1.3440e+00 -1.1465e+00 1.3136e+00 -1.1953e+00 1.3012e+00 -1.2462e+00 1.3039e+00 -1.2993e+00 1.3197e+00 -1.3546e+00 1.3476e+00 -1.4122e+00 1.3868e+00 -1.4723e+00 1.4370e+00 -1.5350e+00 1.4979e+00 -1.6003e+00 1.5694e+00 -1.6684e+00 1.6518e+00 -1.7394e+00 1.7451e+00 -1.8134e+00 1.8497e+00 -1.8906e+00 1.9659e+00 -1.9711e+00 2.0942e+00 -2.0550e+00 2.2349e+00 -2.1424e+00 2.3887e+00 -2.2336e+00 2.5562e+00 -2.3287e+00 2.7379e+00 -2.4278e+00 2.9346e+00 -2.5311e+00 3.1468e+00 -2.6388e+00 3.3754e+00 -2.7511e+00 3.6209e+00 -2.8682e+00 3.8841e+00 -2.9903e+00 4.1657e+00 -3.1175e+00 4.4664e+00 -3.2502e+00 4.7867e+00 -3.3885e+00 5.1273e+00 -3.5328e+00 5.4887e+00 -3.6831e+00 5.8714e+00 -3.8399e+00 6.2757e+00 -4.0033e+00 6.7019e+00 -4.1737e+00 7.1501e+00 -4.3513e+00 7.6206e+00 -4.5365e+00 8.1133e+00 -4.7296e+00 8.6281e+00 -4.9308e+00 9.1649e+00 -5.1407e+00 9.7236e+00 -5.3595e+00 1.0304e+01 -5.5876e+00 1.0906e+01 -5.8254e+00 1.1530e+01 -6.0733e+00 1.2175e+01 -6.3318e+00 1.2843e+01 -6.6013e+00 1.3534e+01 -6.8822e+00 1.4250e+01 -7.1751e+00 1.4991e+01 -7.4805e+00 1.5760e+01 -7.7988e+00 1.6560e+01 -8.1307e+00 1.7394e+01 -8.4768e+00 1.8266e+01 -8.8376e+00 1.9179e+01 -9.2137e+00 2.0140e+01 -9.6058e+00 2.1153e+01 -1.0015e+01 2.2224e+01 -1.0441e+01 2.3359e+01 -1.0885e+01 2.4565e+01 -1.1348e+01 2.5849e+01 -1.1831e+01 2.7217e+01 -1.2335e+01 2.8677e+01 -1.2860e+01 3.0235e+01 -1.3407e+01 3.1898e+01 -1.3978e+01 3.3672e+01 -1.4573e+01 3.5565e+01 -1.5193e+01 3.7582e+01 -1.5840e+01 3.9728e+01 -1.6514e+01 4.2010e+01 -1.7216e+01 4.4432e+01 -1.7949e+01 4.6998e+01 -1.8713e+01 4.9712e+01 -1.9510e+01 5.2578e+01 -2.0340e+01 5.5597e+01 -2.1206e+01 5.8773e+01 -2.2108e+01 6.2105e+01 -2.3049e+01 6.5596e+01 -2.4030e+01 6.9244e+01 -2.5053e+01 7.3050e+01 -2.6119e+01 7.7013e+01 -2.7230e+01 8.1130e+01 -2.8389e+01 8.5400e+01 -2.9598e+01 8.9820e+01 -3.0857e+01 9.4387e+01 -3.2170e+01 9.9098e+01 -3.3540e+01 1.0395e+02 -3.4967e+01 1.0894e+02 -3.6455e+01 1.1406e+02 -3.8007e+01 1.1931e+02 -3.9624e+01 1.2469e+02 -4.1311e+01 1.3018e+02 -4.3069e+01 1.3580e+02 -4.4902e+01 1.4153e+02 -4.6813e+01 1.4737e+02 -4.8805e+01 1.5332e+02 -5.0882e+01 1.5938e+02 -5.3048e+01 1.6554e+02 -5.5305e+01 1.7180e+02 -5.7659e+01 1.7817e+02 -6.0113e+01 1.8463e+02 -6.2671e+01 1.9119e+02 -6.5339e+01 1.9785e+02 -6.8119e+01 2.0461e+02 -7.1019e+01 2.1147e+02 -7.4041e+01 2.1842e+02 -7.7192e+01 2.2547e+02 -8.0478e+01 2.3263e+02 -8.3903e+01 2.3988e+02 -8.7473e+01 2.4724e+02 -9.1196e+01 2.5471e+02 -9.5078e+01 2.6228e+02 -9.9124e+01 2.6996e+02 -1.0334e+02 2.7776e+02 -1.0774e+02 2.8567e+02 -1.1233e+02 2.9370e+02 -1.1711e+02 3.0185e+02 -1.2209e+02 3.1012e+02 -1.2729e+02 3.1852e+02 -1.3270e+02 3.2705e+02 -1.3835e+02 3.3572e+02 -1.4424e+02 3.4453e+02 -1.5038e+02 3.5348e+02 -1.5678e+02 3.6257e+02 -1.6345e+02 3.7182e+02 -1.7041e+02 3.8122e+02 -1.7766e+02 3.9078e+02 -1.8522e+02 4.0050e+02 -1.9310e+02 4.1039e+02 -2.0132e+02 4.2045e+02 -2.0989e+02 4.3068e+02 -2.1882e+02 4.4110e+02 -2.2814e+02 4.5171e+02 -2.3785e+02 4.6250e+02 -2.4797e+02 4.7349e+02 - -wl k -6.1992e-02 9.2039e-03 -6.4630e-02 1.1074e-02 -6.7381e-02 1.3512e-02 -7.0249e-02 1.6828e-02 -7.3239e-02 2.1649e-02 -7.6355e-02 2.9549e-02 -7.9605e-02 4.6438e-02 -8.2993e-02 1.2841e-01 -8.6525e-02 3.0590e-01 -9.0208e-02 4.3313e-01 -9.4047e-02 5.3919e-01 -9.8049e-02 6.3492e-01 -1.0222e-01 7.2492e-01 -1.0657e-01 8.1159e-01 -1.1111e-01 8.9644e-01 -1.1584e-01 9.8045e-01 -1.2077e-01 1.0643e+00 -1.2591e-01 1.1487e+00 -1.3127e-01 1.2338e+00 -1.3685e-01 1.3202e+00 -1.4268e-01 1.4080e+00 -1.4875e-01 1.4975e+00 -1.5508e-01 1.5890e+00 -1.6168e-01 1.6826e+00 -1.6856e-01 1.7786e+00 -1.7573e-01 1.8771e+00 -1.8321e-01 1.9783e+00 -1.9101e-01 2.0826e+00 -1.9914e-01 2.1901e+00 -2.0762e-01 2.3011e+00 -2.1645e-01 2.4159e+00 -2.2566e-01 2.5347e+00 -2.3527e-01 2.6578e+00 -2.4528e-01 2.7856e+00 -2.5572e-01 2.9182e+00 -2.6660e-01 3.0560e+00 -2.7795e-01 3.1992e+00 -2.8978e-01 3.3482e+00 -3.0211e-01 3.5030e+00 -3.1497e-01 3.6640e+00 -3.2837e-01 3.8313e+00 -3.4235e-01 4.0052e+00 -3.5692e-01 4.1856e+00 -3.7211e-01 4.3726e+00 -3.8795e-01 4.5661e+00 -4.0446e-01 4.7659e+00 -4.2167e-01 4.9717e+00 -4.3962e-01 5.1830e+00 -4.5833e-01 5.3994e+00 -4.7783e-01 5.6203e+00 -4.9817e-01 5.8455e+00 -5.1937e-01 6.0750e+00 -5.4147e-01 6.3099e+00 -5.6452e-01 6.5519e+00 -5.8855e-01 6.8042e+00 -6.1359e-01 7.0711e+00 -6.3971e-01 7.3576e+00 -6.6693e-01 7.6672e+00 -6.9532e-01 7.9931e+00 -7.2491e-01 8.2933e+00 -7.5576e-01 8.4555e+00 -7.8793e-01 8.3611e+00 -8.2146e-01 8.1106e+00 -8.5642e-01 7.9982e+00 -8.9287e-01 8.1553e+00 -9.3087e-01 8.4990e+00 -9.7049e-01 8.9296e+00 -1.0118e+00 9.3982e+00 -1.0549e+00 9.8877e+00 -1.0997e+00 1.0393e+01 -1.1465e+00 1.0915e+01 -1.1953e+00 1.1452e+01 -1.2462e+00 1.2007e+01 -1.2993e+00 1.2581e+01 -1.3546e+00 1.3173e+01 -1.4122e+00 1.3786e+01 -1.4723e+00 1.4421e+01 -1.5350e+00 1.5077e+01 -1.6003e+00 1.5757e+01 -1.6684e+00 1.6460e+01 -1.7394e+00 1.7188e+01 -1.8134e+00 1.7942e+01 -1.8906e+00 1.8723e+01 -1.9711e+00 1.9531e+01 -2.0550e+00 2.0367e+01 -2.1424e+00 2.1233e+01 -2.2336e+00 2.2128e+01 -2.3287e+00 2.3054e+01 -2.4278e+00 2.4012e+01 -2.5311e+00 2.5002e+01 -2.6388e+00 2.6025e+01 -2.7511e+00 2.7082e+01 -2.8682e+00 2.8173e+01 -2.9903e+00 2.9300e+01 -3.1175e+00 3.0463e+01 -3.2502e+00 3.1662e+01 -3.3885e+00 3.2898e+01 -3.5328e+00 3.4172e+01 -3.6831e+00 3.5484e+01 -3.8399e+00 3.6836e+01 -4.0033e+00 3.8228e+01 -4.1737e+00 3.9660e+01 -4.3513e+00 4.1135e+01 -4.5365e+00 4.2652e+01 -4.7296e+00 4.4214e+01 -4.9308e+00 4.5821e+01 -5.1407e+00 4.7476e+01 -5.3595e+00 4.9180e+01 -5.5876e+00 5.0936e+01 -5.8254e+00 5.2747e+01 -6.0733e+00 5.4615e+01 -6.3318e+00 5.6545e+01 -6.6013e+00 5.8539e+01 -6.8822e+00 6.0601e+01 -7.1751e+00 6.2736e+01 -7.4805e+00 6.4948e+01 -7.7988e+00 6.7242e+01 -8.1307e+00 6.9620e+01 -8.4768e+00 7.2089e+01 -8.8376e+00 7.4651e+01 -9.2137e+00 7.7311e+01 -9.6058e+00 8.0072e+01 -1.0015e+01 8.2936e+01 -1.0441e+01 8.5906e+01 -1.0885e+01 8.8985e+01 -1.1348e+01 9.2173e+01 -1.1831e+01 9.5470e+01 -1.2335e+01 9.8878e+01 -1.2860e+01 1.0239e+02 -1.3407e+01 1.0602e+02 -1.3978e+01 1.0975e+02 -1.4573e+01 1.1359e+02 -1.5193e+01 1.1752e+02 -1.5840e+01 1.2156e+02 -1.6514e+01 1.2568e+02 -1.7216e+01 1.2990e+02 -1.7949e+01 1.3420e+02 -1.8713e+01 1.3858e+02 -1.9510e+01 1.4304e+02 -2.0340e+01 1.4757e+02 -2.1206e+01 1.5216e+02 -2.2108e+01 1.5681e+02 -2.3049e+01 1.6151e+02 -2.4030e+01 1.6626e+02 -2.5053e+01 1.7106e+02 -2.6119e+01 1.7589e+02 -2.7230e+01 1.8076e+02 -2.8389e+01 1.8565e+02 -2.9598e+01 1.9058e+02 -3.0857e+01 1.9553e+02 -3.2170e+01 2.0050e+02 -3.3540e+01 2.0549e+02 -3.4967e+01 2.1050e+02 -3.6455e+01 2.1553e+02 -3.8007e+01 2.2057e+02 -3.9624e+01 2.2563e+02 -4.1311e+01 2.3071e+02 -4.3069e+01 2.3582e+02 -4.4902e+01 2.4094e+02 -4.6813e+01 2.4609e+02 -4.8805e+01 2.5127e+02 -5.0882e+01 2.5648e+02 -5.3048e+01 2.6173e+02 -5.5305e+01 2.6701e+02 -5.7659e+01 2.7234e+02 -6.0113e+01 2.7772e+02 -6.2671e+01 2.8315e+02 -6.5339e+01 2.8863e+02 -6.8119e+01 2.9418e+02 -7.1019e+01 2.9980e+02 -7.4041e+01 3.0549e+02 -7.7192e+01 3.1126e+02 -8.0478e+01 3.1711e+02 -8.3903e+01 3.2305e+02 -8.7473e+01 3.2908e+02 -9.1196e+01 3.3521e+02 -9.5078e+01 3.4145e+02 -9.9124e+01 3.4779e+02 -1.0334e+02 3.5425e+02 -1.0774e+02 3.6082e+02 -1.1233e+02 3.6752e+02 -1.1711e+02 3.7434e+02 -1.2209e+02 3.8130e+02 -1.2729e+02 3.8840e+02 -1.3270e+02 3.9564e+02 -1.3835e+02 4.0303e+02 -1.4424e+02 4.1057e+02 -1.5038e+02 4.1826e+02 -1.5678e+02 4.2612e+02 -1.6345e+02 4.3415e+02 -1.7041e+02 4.4234e+02 -1.7766e+02 4.5071e+02 -1.8522e+02 4.5926e+02 -1.9310e+02 4.6800e+02 -2.0132e+02 4.7693e+02 -2.0989e+02 4.8605e+02 -2.1882e+02 4.9537e+02 -2.2814e+02 5.0490e+02 -2.3785e+02 5.1463e+02 -2.4797e+02 5.2458e+02 +wl n +6.1992e-02 6.6415e-01 +6.4630e-02 6.2647e-01 +6.7381e-02 5.8276e-01 +7.0249e-02 5.3121e-01 +7.3239e-02 4.6884e-01 +7.6355e-02 3.9013e-01 +7.9605e-02 2.8200e-01 +8.2993e-02 1.1588e-01 +8.6525e-02 5.5295e-02 +9.0208e-02 4.4408e-02 +9.4047e-02 4.0584e-02 +9.8049e-02 3.9232e-02 +1.0222e-01 3.9141e-02 +1.0657e-01 3.9857e-02 +1.1111e-01 4.1181e-02 +1.1584e-01 4.3024e-02 +1.2077e-01 4.5350e-02 +1.2591e-01 4.8158e-02 +1.3127e-01 5.1461e-02 +1.3685e-01 5.5281e-02 +1.4268e-01 5.9640e-02 +1.4875e-01 6.4557e-02 +1.5508e-01 7.0040e-02 +1.6168e-01 7.6091e-02 +1.6856e-01 8.2703e-02 +1.7573e-01 8.9866e-02 +1.8321e-01 9.7571e-02 +1.9101e-01 1.0582e-01 +1.9914e-01 1.1461e-01 +2.0762e-01 1.2398e-01 +2.1645e-01 1.3398e-01 +2.2566e-01 1.4468e-01 +2.3527e-01 1.5617e-01 +2.4528e-01 1.6860e-01 +2.5572e-01 1.8210e-01 +2.6660e-01 1.9687e-01 +2.7795e-01 2.1312e-01 +2.8978e-01 2.3109e-01 +3.0211e-01 2.5107e-01 +3.1497e-01 2.7336e-01 +3.2837e-01 2.9832e-01 +3.4235e-01 3.2634e-01 +3.5692e-01 3.5785e-01 +3.7211e-01 3.9330e-01 +3.8795e-01 4.3317e-01 +4.0446e-01 4.7790e-01 +4.2167e-01 5.2788e-01 +4.3962e-01 5.8336e-01 +4.5833e-01 6.4439e-01 +4.7783e-01 7.1074e-01 +4.9817e-01 7.8186e-01 +5.1937e-01 8.5697e-01 +5.4147e-01 9.3525e-01 +5.6452e-01 1.0162e+00 +5.8855e-01 1.1005e+00 +6.1359e-01 1.1911e+00 +6.3971e-01 1.2952e+00 +6.6693e-01 1.4286e+00 +6.9532e-01 1.6203e+00 +7.2491e-01 1.9115e+00 +7.5576e-01 2.3052e+00 +7.8793e-01 2.6523e+00 +8.2146e-01 2.7061e+00 +8.5642e-01 2.4465e+00 +8.9287e-01 2.0948e+00 +9.3087e-01 1.8089e+00 +9.7049e-01 1.6120e+00 +1.0118e+00 1.4821e+00 +1.0549e+00 1.3974e+00 +1.0997e+00 1.3440e+00 +1.1465e+00 1.3136e+00 +1.1953e+00 1.3012e+00 +1.2462e+00 1.3039e+00 +1.2993e+00 1.3197e+00 +1.3546e+00 1.3476e+00 +1.4122e+00 1.3868e+00 +1.4723e+00 1.4370e+00 +1.5350e+00 1.4979e+00 +1.6003e+00 1.5694e+00 +1.6684e+00 1.6518e+00 +1.7394e+00 1.7451e+00 +1.8134e+00 1.8497e+00 +1.8906e+00 1.9659e+00 +1.9711e+00 2.0942e+00 +2.0550e+00 2.2349e+00 +2.1424e+00 2.3887e+00 +2.2336e+00 2.5562e+00 +2.3287e+00 2.7379e+00 +2.4278e+00 2.9346e+00 +2.5311e+00 3.1468e+00 +2.6388e+00 3.3754e+00 +2.7511e+00 3.6209e+00 +2.8682e+00 3.8841e+00 +2.9903e+00 4.1657e+00 +3.1175e+00 4.4664e+00 +3.2502e+00 4.7867e+00 +3.3885e+00 5.1273e+00 +3.5328e+00 5.4887e+00 +3.6831e+00 5.8714e+00 +3.8399e+00 6.2757e+00 +4.0033e+00 6.7019e+00 +4.1737e+00 7.1501e+00 +4.3513e+00 7.6206e+00 +4.5365e+00 8.1133e+00 +4.7296e+00 8.6281e+00 +4.9308e+00 9.1649e+00 +5.1407e+00 9.7236e+00 +5.3595e+00 1.0304e+01 +5.5876e+00 1.0906e+01 +5.8254e+00 1.1530e+01 +6.0733e+00 1.2175e+01 +6.3318e+00 1.2843e+01 +6.6013e+00 1.3534e+01 +6.8822e+00 1.4250e+01 +7.1751e+00 1.4991e+01 +7.4805e+00 1.5760e+01 +7.7988e+00 1.6560e+01 +8.1307e+00 1.7394e+01 +8.4768e+00 1.8266e+01 +8.8376e+00 1.9179e+01 +9.2137e+00 2.0140e+01 +9.6058e+00 2.1153e+01 +1.0015e+01 2.2224e+01 +1.0441e+01 2.3359e+01 +1.0885e+01 2.4565e+01 +1.1348e+01 2.5849e+01 +1.1831e+01 2.7217e+01 +1.2335e+01 2.8677e+01 +1.2860e+01 3.0235e+01 +1.3407e+01 3.1898e+01 +1.3978e+01 3.3672e+01 +1.4573e+01 3.5565e+01 +1.5193e+01 3.7582e+01 +1.5840e+01 3.9728e+01 +1.6514e+01 4.2010e+01 +1.7216e+01 4.4432e+01 +1.7949e+01 4.6998e+01 +1.8713e+01 4.9712e+01 +1.9510e+01 5.2578e+01 +2.0340e+01 5.5597e+01 +2.1206e+01 5.8773e+01 +2.2108e+01 6.2105e+01 +2.3049e+01 6.5596e+01 +2.4030e+01 6.9244e+01 +2.5053e+01 7.3050e+01 +2.6119e+01 7.7013e+01 +2.7230e+01 8.1130e+01 +2.8389e+01 8.5400e+01 +2.9598e+01 8.9820e+01 +3.0857e+01 9.4387e+01 +3.2170e+01 9.9098e+01 +3.3540e+01 1.0395e+02 +3.4967e+01 1.0894e+02 +3.6455e+01 1.1406e+02 +3.8007e+01 1.1931e+02 +3.9624e+01 1.2469e+02 +4.1311e+01 1.3018e+02 +4.3069e+01 1.3580e+02 +4.4902e+01 1.4153e+02 +4.6813e+01 1.4737e+02 +4.8805e+01 1.5332e+02 +5.0882e+01 1.5938e+02 +5.3048e+01 1.6554e+02 +5.5305e+01 1.7180e+02 +5.7659e+01 1.7817e+02 +6.0113e+01 1.8463e+02 +6.2671e+01 1.9119e+02 +6.5339e+01 1.9785e+02 +6.8119e+01 2.0461e+02 +7.1019e+01 2.1147e+02 +7.4041e+01 2.1842e+02 +7.7192e+01 2.2547e+02 +8.0478e+01 2.3263e+02 +8.3903e+01 2.3988e+02 +8.7473e+01 2.4724e+02 +9.1196e+01 2.5471e+02 +9.5078e+01 2.6228e+02 +9.9124e+01 2.6996e+02 +1.0334e+02 2.7776e+02 +1.0774e+02 2.8567e+02 +1.1233e+02 2.9370e+02 +1.1711e+02 3.0185e+02 +1.2209e+02 3.1012e+02 +1.2729e+02 3.1852e+02 +1.3270e+02 3.2705e+02 +1.3835e+02 3.3572e+02 +1.4424e+02 3.4453e+02 +1.5038e+02 3.5348e+02 +1.5678e+02 3.6257e+02 +1.6345e+02 3.7182e+02 +1.7041e+02 3.8122e+02 +1.7766e+02 3.9078e+02 +1.8522e+02 4.0050e+02 +1.9310e+02 4.1039e+02 +2.0132e+02 4.2045e+02 +2.0989e+02 4.3068e+02 +2.1882e+02 4.4110e+02 +2.2814e+02 4.5171e+02 +2.3785e+02 4.6250e+02 +2.4797e+02 4.7349e+02 + +wl k +6.1992e-02 9.2039e-03 +6.4630e-02 1.1074e-02 +6.7381e-02 1.3512e-02 +7.0249e-02 1.6828e-02 +7.3239e-02 2.1649e-02 +7.6355e-02 2.9549e-02 +7.9605e-02 4.6438e-02 +8.2993e-02 1.2841e-01 +8.6525e-02 3.0590e-01 +9.0208e-02 4.3313e-01 +9.4047e-02 5.3919e-01 +9.8049e-02 6.3492e-01 +1.0222e-01 7.2492e-01 +1.0657e-01 8.1159e-01 +1.1111e-01 8.9644e-01 +1.1584e-01 9.8045e-01 +1.2077e-01 1.0643e+00 +1.2591e-01 1.1487e+00 +1.3127e-01 1.2338e+00 +1.3685e-01 1.3202e+00 +1.4268e-01 1.4080e+00 +1.4875e-01 1.4975e+00 +1.5508e-01 1.5890e+00 +1.6168e-01 1.6826e+00 +1.6856e-01 1.7786e+00 +1.7573e-01 1.8771e+00 +1.8321e-01 1.9783e+00 +1.9101e-01 2.0826e+00 +1.9914e-01 2.1901e+00 +2.0762e-01 2.3011e+00 +2.1645e-01 2.4159e+00 +2.2566e-01 2.5347e+00 +2.3527e-01 2.6578e+00 +2.4528e-01 2.7856e+00 +2.5572e-01 2.9182e+00 +2.6660e-01 3.0560e+00 +2.7795e-01 3.1992e+00 +2.8978e-01 3.3482e+00 +3.0211e-01 3.5030e+00 +3.1497e-01 3.6640e+00 +3.2837e-01 3.8313e+00 +3.4235e-01 4.0052e+00 +3.5692e-01 4.1856e+00 +3.7211e-01 4.3726e+00 +3.8795e-01 4.5661e+00 +4.0446e-01 4.7659e+00 +4.2167e-01 4.9717e+00 +4.3962e-01 5.1830e+00 +4.5833e-01 5.3994e+00 +4.7783e-01 5.6203e+00 +4.9817e-01 5.8455e+00 +5.1937e-01 6.0750e+00 +5.4147e-01 6.3099e+00 +5.6452e-01 6.5519e+00 +5.8855e-01 6.8042e+00 +6.1359e-01 7.0711e+00 +6.3971e-01 7.3576e+00 +6.6693e-01 7.6672e+00 +6.9532e-01 7.9931e+00 +7.2491e-01 8.2933e+00 +7.5576e-01 8.4555e+00 +7.8793e-01 8.3611e+00 +8.2146e-01 8.1106e+00 +8.5642e-01 7.9982e+00 +8.9287e-01 8.1553e+00 +9.3087e-01 8.4990e+00 +9.7049e-01 8.9296e+00 +1.0118e+00 9.3982e+00 +1.0549e+00 9.8877e+00 +1.0997e+00 1.0393e+01 +1.1465e+00 1.0915e+01 +1.1953e+00 1.1452e+01 +1.2462e+00 1.2007e+01 +1.2993e+00 1.2581e+01 +1.3546e+00 1.3173e+01 +1.4122e+00 1.3786e+01 +1.4723e+00 1.4421e+01 +1.5350e+00 1.5077e+01 +1.6003e+00 1.5757e+01 +1.6684e+00 1.6460e+01 +1.7394e+00 1.7188e+01 +1.8134e+00 1.7942e+01 +1.8906e+00 1.8723e+01 +1.9711e+00 1.9531e+01 +2.0550e+00 2.0367e+01 +2.1424e+00 2.1233e+01 +2.2336e+00 2.2128e+01 +2.3287e+00 2.3054e+01 +2.4278e+00 2.4012e+01 +2.5311e+00 2.5002e+01 +2.6388e+00 2.6025e+01 +2.7511e+00 2.7082e+01 +2.8682e+00 2.8173e+01 +2.9903e+00 2.9300e+01 +3.1175e+00 3.0463e+01 +3.2502e+00 3.1662e+01 +3.3885e+00 3.2898e+01 +3.5328e+00 3.4172e+01 +3.6831e+00 3.5484e+01 +3.8399e+00 3.6836e+01 +4.0033e+00 3.8228e+01 +4.1737e+00 3.9660e+01 +4.3513e+00 4.1135e+01 +4.5365e+00 4.2652e+01 +4.7296e+00 4.4214e+01 +4.9308e+00 4.5821e+01 +5.1407e+00 4.7476e+01 +5.3595e+00 4.9180e+01 +5.5876e+00 5.0936e+01 +5.8254e+00 5.2747e+01 +6.0733e+00 5.4615e+01 +6.3318e+00 5.6545e+01 +6.6013e+00 5.8539e+01 +6.8822e+00 6.0601e+01 +7.1751e+00 6.2736e+01 +7.4805e+00 6.4948e+01 +7.7988e+00 6.7242e+01 +8.1307e+00 6.9620e+01 +8.4768e+00 7.2089e+01 +8.8376e+00 7.4651e+01 +9.2137e+00 7.7311e+01 +9.6058e+00 8.0072e+01 +1.0015e+01 8.2936e+01 +1.0441e+01 8.5906e+01 +1.0885e+01 8.8985e+01 +1.1348e+01 9.2173e+01 +1.1831e+01 9.5470e+01 +1.2335e+01 9.8878e+01 +1.2860e+01 1.0239e+02 +1.3407e+01 1.0602e+02 +1.3978e+01 1.0975e+02 +1.4573e+01 1.1359e+02 +1.5193e+01 1.1752e+02 +1.5840e+01 1.2156e+02 +1.6514e+01 1.2568e+02 +1.7216e+01 1.2990e+02 +1.7949e+01 1.3420e+02 +1.8713e+01 1.3858e+02 +1.9510e+01 1.4304e+02 +2.0340e+01 1.4757e+02 +2.1206e+01 1.5216e+02 +2.2108e+01 1.5681e+02 +2.3049e+01 1.6151e+02 +2.4030e+01 1.6626e+02 +2.5053e+01 1.7106e+02 +2.6119e+01 1.7589e+02 +2.7230e+01 1.8076e+02 +2.8389e+01 1.8565e+02 +2.9598e+01 1.9058e+02 +3.0857e+01 1.9553e+02 +3.2170e+01 2.0050e+02 +3.3540e+01 2.0549e+02 +3.4967e+01 2.1050e+02 +3.6455e+01 2.1553e+02 +3.8007e+01 2.2057e+02 +3.9624e+01 2.2563e+02 +4.1311e+01 2.3071e+02 +4.3069e+01 2.3582e+02 +4.4902e+01 2.4094e+02 +4.6813e+01 2.4609e+02 +4.8805e+01 2.5127e+02 +5.0882e+01 2.5648e+02 +5.3048e+01 2.6173e+02 +5.5305e+01 2.6701e+02 +5.7659e+01 2.7234e+02 +6.0113e+01 2.7772e+02 +6.2671e+01 2.8315e+02 +6.5339e+01 2.8863e+02 +6.8119e+01 2.9418e+02 +7.1019e+01 2.9980e+02 +7.4041e+01 3.0549e+02 +7.7192e+01 3.1126e+02 +8.0478e+01 3.1711e+02 +8.3903e+01 3.2305e+02 +8.7473e+01 3.2908e+02 +9.1196e+01 3.3521e+02 +9.5078e+01 3.4145e+02 +9.9124e+01 3.4779e+02 +1.0334e+02 3.5425e+02 +1.0774e+02 3.6082e+02 +1.1233e+02 3.6752e+02 +1.1711e+02 3.7434e+02 +1.2209e+02 3.8130e+02 +1.2729e+02 3.8840e+02 +1.3270e+02 3.9564e+02 +1.3835e+02 4.0303e+02 +1.4424e+02 4.1057e+02 +1.5038e+02 4.1826e+02 +1.5678e+02 4.2612e+02 +1.6345e+02 4.3415e+02 +1.7041e+02 4.4234e+02 +1.7766e+02 4.5071e+02 +1.8522e+02 4.5926e+02 +1.9310e+02 4.6800e+02 +2.0132e+02 4.7693e+02 +2.0989e+02 4.8605e+02 +2.1882e+02 4.9537e+02 +2.2814e+02 5.0490e+02 +2.3785e+02 5.1463e+02 +2.4797e+02 5.2458e+02 diff --git a/tools/specular-color/data/brass.txt b/tools/specular-color/data/brass.txt index 62c7cc2003..87e9d2b6ca 100644 --- a/tools/specular-color/data/brass.txt +++ b/tools/specular-color/data/brass.txt @@ -1,1225 +1,1225 @@ -wl n -0.2100 1.140 -0.2200 1.179 -0.2300 1.227 -0.2400 1.271 -0.2500 1.301 -0.2600 1.315 -0.2700 1.323 -0.2800 1.336 -0.2900 1.358 -0.3000 1.388 -0.3100 1.419 -0.3200 1.446 -0.3300 1.473 -0.3400 1.494 -0.3500 1.504 -0.3600 1.503 -0.3700 1.497 -0.3800 1.487 -0.3900 1.471 -0.4000 1.445 -0.4100 1.405 -0.4200 1.350 -0.4300 1.278 -0.4400 1.191 -0.4500 1.094 -0.4600 0.994 -0.4700 0.900 -0.4800 0.816 -0.4900 0.745 -0.5000 0.686 -0.5100 0.639 -0.5200 0.602 -0.5300 0.573 -0.5400 0.549 -0.5500 0.527 -0.5600 0.505 -0.5700 0.484 -0.5800 0.468 -0.5900 0.460 -0.6000 0.450 -0.6100 0.452 -0.6200 0.449 -0.6300 0.445 -0.6400 0.444 -0.6500 0.444 -0.6600 0.445 -0.6700 0.444 -0.6800 0.444 -0.6900 0.445 -0.7000 0.446 -0.7100 0.448 -0.7200 0.450 -0.7300 0.452 -0.7400 0.455 -0.7500 0.457 -0.7600 0.458 -0.7700 0.460 -0.7800 0.464 -0.7900 0.469 -0.8000 0.473 -0.8100 0.478 -0.8200 0.481 -0.8300 0.483 -0.8400 0.486 -0.8500 0.490 -0.8600 0.494 -0.8700 0.500 -0.8800 0.507 -0.8900 0.515 -0.9000 0.523 -0.9100 0.531 -0.9200 0.538 -0.9300 0.546 -0.9400 0.555 -0.9500 0.563 -0.9600 0.572 -0.9700 0.580 -0.9800 0.588 -0.9900 0.596 -1.0000 0.603 -1.0100 0.610 -1.0200 0.616 -1.0300 0.622 -1.0400 0.628 -1.0500 0.635 -1.0600 0.642 -1.0700 0.650 -1.0800 0.658 -1.0900 0.667 -1.1000 0.675 -1.1100 0.684 -1.1200 0.693 -1.1300 0.702 -1.1400 0.711 -1.1500 0.718 -1.1600 0.726 -1.1700 0.733 -1.1800 0.743 -1.1900 0.752 -1.2000 0.761 -1.2100 0.766 -1.2200 0.770 -1.2300 0.775 -1.2400 0.783 -1.2500 0.793 -1.2600 0.803 -1.2700 0.813 -1.2800 0.823 -1.2900 0.834 -1.3000 0.844 -1.3100 0.856 -1.3200 0.867 -1.3300 0.878 -1.3400 0.888 -1.3500 0.898 -1.3600 0.908 -1.3700 0.917 -1.3800 0.926 -1.3900 0.934 -1.4000 0.942 -1.4100 0.950 -1.4200 0.958 -1.4300 0.968 -1.4400 0.978 -1.4500 0.989 -1.4600 1.001 -1.4700 1.013 -1.4800 1.024 -1.4900 1.034 -1.5000 1.044 -1.5100 1.055 -1.5200 1.067 -1.5300 1.079 -1.5400 1.091 -1.5500 1.102 -1.5600 1.113 -1.5700 1.124 -1.5800 1.135 -1.5900 1.146 -1.6000 1.158 -1.6100 1.171 -1.6200 1.184 -1.6300 1.199 -1.6400 1.214 -1.6500 1.228 -1.6600 1.240 -1.6700 1.252 -1.6800 1.264 -1.6900 1.276 -1.7000 1.288 -1.7100 1.302 -1.7200 1.315 -1.7300 1.326 -1.7400 1.335 -1.7500 1.342 -1.7600 1.350 -1.7700 1.360 -1.7800 1.372 -1.7900 1.386 -1.8000 1.398 -1.8100 1.410 -1.8300 1.437 -1.8400 1.452 -1.8500 1.468 -1.8600 1.484 -1.8700 1.500 -1.8800 1.517 -1.8900 1.532 -1.9000 1.547 -1.9100 1.562 -1.9200 1.576 -1.9300 1.591 -1.9400 1.604 -1.9500 1.618 -1.9600 1.633 -1.9700 1.654 -1.9800 1.676 -1.9900 1.696 -2.0000 1.711 -2.0100 1.723 -2.0200 1.733 -2.0300 1.748 -2.0400 1.767 -2.0500 1.789 -2.0600 1.809 -2.0700 1.826 -2.0800 1.842 -2.0900 1.861 -2.1000 1.878 -2.1100 1.894 -2.1200 1.910 -2.1300 1.924 -2.1400 1.938 -2.1500 1.950 -2.1600 1.967 -2.1700 1.983 -2.1800 1.999 -2.1900 2.014 -2.2000 2.028 -2.2100 2.042 -2.2200 2.057 -2.2300 2.073 -2.2400 2.093 -2.2500 2.110 -2.2600 2.127 -2.2700 2.144 -2.2800 2.159 -2.2900 2.171 -2.3000 2.182 -2.3100 2.193 -2.3200 2.201 -2.3300 2.211 -2.3400 2.220 -2.3500 2.232 -2.3600 2.248 -2.3700 2.266 -2.3800 2.287 -2.3900 2.306 -2.4000 2.324 -2.4100 2.337 -2.4200 2.349 -2.4300 2.363 -2.4400 2.377 -2.4500 2.391 -2.4600 2.403 -2.4700 2.415 -2.4800 2.427 -2.4900 2.443 -2.5000 2.456 -2.5063 2.467 -2.5126 2.476 -2.5189 2.487 -2.5253 2.497 -2.5316 2.507 -2.5381 2.517 -2.5445 2.527 -2.5510 2.537 -2.5575 2.546 -2.5641 2.556 -2.5707 2.565 -2.5773 2.574 -2.5840 2.582 -2.5907 2.591 -2.5974 2.600 -2.6042 2.609 -2.6110 2.618 -2.6178 2.627 -2.6247 2.636 -2.6316 2.645 -2.6385 2.654 -2.6455 2.663 -2.6525 2.672 -2.6596 2.681 -2.6667 2.690 -2.6738 2.699 -2.6810 2.709 -2.6882 2.718 -2.6954 2.728 -2.7027 2.738 -2.7100 2.748 -2.7174 2.758 -2.7248 2.769 -2.7322 2.780 -2.7397 2.790 -2.7473 2.802 -2.7548 2.813 -2.7624 2.826 -2.7701 2.837 -2.7778 2.849 -2.7855 2.861 -2.7933 2.874 -2.8011 2.886 -2.8090 2.898 -2.8169 2.911 -2.8249 2.924 -2.8329 2.937 -2.8409 2.950 -2.8490 2.963 -2.8571 2.977 -2.8653 2.990 -2.8736 3.004 -2.8818 3.018 -2.8902 3.033 -2.8986 3.047 -2.9070 3.062 -2.9155 3.077 -2.9240 3.091 -2.9326 3.105 -2.9412 3.119 -2.9499 3.134 -2.9586 3.149 -2.9674 3.165 -2.9762 3.180 -2.9851 3.196 -2.9940 3.211 -3.0030 3.227 -3.0120 3.242 -3.0211 3.258 -3.0303 3.274 -3.0395 3.291 -3.0488 3.307 -3.0581 3.323 -3.0675 3.339 -3.0769 3.356 -3.0864 3.373 -3.0960 3.390 -3.1056 3.408 -3.1153 3.426 -3.1250 3.444 -3.1348 3.462 -3.1447 3.480 -3.1546 3.498 -3.1646 3.516 -3.1746 3.535 -3.1847 3.553 -3.1949 3.571 -3.2051 3.591 -3.2154 3.610 -3.2258 3.630 -3.2362 3.650 -3.2468 3.670 -3.2573 3.690 -3.2680 3.710 -3.2787 3.730 -3.2895 3.750 -3.3003 3.770 -3.3113 3.791 -3.3223 3.812 -3.3333 3.832 -3.3445 3.852 -3.3557 3.873 -3.3670 3.893 -3.3784 3.915 -3.3898 3.935 -3.4014 3.957 -3.4130 3.978 -3.4247 3.999 -3.4364 4.020 -3.4483 4.041 -3.4602 4.062 -3.4722 4.083 -3.4843 4.105 -3.4965 4.127 -3.5088 4.149 -3.5211 4.171 -3.5336 4.194 -3.5461 4.216 -3.5587 4.238 -3.5714 4.261 -3.5842 4.285 -3.5971 4.310 -3.6101 4.335 -3.6232 4.359 -3.6364 4.383 -3.6496 4.409 -3.6630 4.434 -3.6765 4.461 -3.6900 4.487 -3.7037 4.513 -3.7175 4.538 -3.7313 4.564 -3.7453 4.571 -3.7594 4.618 -3.7736 4.646 -3.7879 4.672 -3.8023 4.700 -3.8168 4.728 -3.8314 4.756 -3.8462 4.785 -3.8610 4.813 -3.8760 4.841 -3.8911 4.870 -3.9063 4.898 -3.9216 4.928 -3.9370 4.957 -3.9526 4.987 -3.9683 5.017 -3.9841 5.047 -4.0000 5.077 -4.0161 5.107 -4.0323 5.137 -4.0486 5.169 -4.0650 5.200 -4.0816 5.230 -4.0984 5.260 -4.1152 5.292 -4.1322 5.325 -4.1494 5.359 -4.1667 5.392 -4.1841 5.425 -4.2017 5.459 -4.2194 5.494 -4.2373 5.531 -4.2553 5.568 -4.2735 5.607 -4.2918 5.646 -4.3103 5.687 -4.3290 5.726 -4.3478 5.766 -4.3668 5.806 -4.3860 5.847 -4.4053 5.887 -4.4248 5.928 -4.4444 5.969 -4.4643 6.012 -4.4843 6.053 -4.5045 6.097 -4.5249 6.139 -4.5455 6.183 -4.5662 6.226 -4.5872 6.271 -4.6083 6.315 -4.6296 6.359 -4.6512 6.402 -4.6729 6.446 -4.6948 6.491 -4.7170 6.534 -4.7393 6.579 -4.7619 6.624 -4.7847 6.671 -4.8077 6.717 -4.8309 6.762 -4.8544 6.808 -4.8780 6.857 -4.9020 6.906 -4.9261 6.954 -4.9505 7.002 -4.9751 7.049 -5.0000 7.097 -5.0251 7.146 -5.0505 7.195 -5.0761 7.245 -5.1020 7.296 -5.1282 7.348 -5.1546 7.400 -5.1813 7.453 -5.2083 7.506 -5.2356 7.560 -5.2632 7.615 -5.2910 7.671 -5.3191 7.727 -5.3476 7.784 -5.3763 7.841 -5.4054 7.899 -5.4348 7.958 -5.4645 8.015 -5.4945 8.072 -5.5249 8.129 -5.5556 8.190 -5.5866 8.252 -5.6180 8.317 -5.6497 8.381 -5.6818 8.445 -5.7143 8.507 -5.7471 8.569 -5.7803 8.633 -5.8140 8.698 -5.8480 8.765 -5.8824 8.834 -5.9172 8.903 -5.9524 8.973 -5.9880 9.041 -6.0241 9.111 -6.0606 9.183 -6.0976 9.258 -6.1350 9.334 -6.1728 9.411 -6.2112 9.492 -6.2500 9.573 -6.2893 9.656 -6.3291 9.738 -6.3694 9.825 -6.4103 9.916 -6.4516 10.009 -6.4935 10.103 -6.5359 10.199 -6.5789 10.300 -6.6225 10.403 -6.6667 10.511 -6.7114 10.620 -6.7568 10.728 -6.8027 10.836 -6.8493 10.946 -6.8966 11.060 -6.9444 11.174 -6.9930 11.291 -7.0423 11.407 -7.0922 11.527 -7.1429 11.644 -7.1942 11.762 -7.2464 11.880 -7.2993 11.998 -7.3529 12.118 -7.4074 12.235 -7.4627 12.352 -7.5188 12.468 -7.5758 12.586 -7.6336 12.705 -7.6923 12.821 -7.7519 12.936 -7.8125 13.047 -7.8740 13.158 -7.9365 13.266 -8.0000 13.375 -8.0645 13.484 -8.1301 13.597 -8.1967 13.712 -8.2645 13.825 -8.3333 13.938 -8.4034 14.049 -8.4746 14.164 -8.5470 14.280 -8.6207 14.403 -8.6957 14.526 -8.7719 14.652 -8.8496 14.912 -8.9286 15.051 -9.0090 15.051 -9.0909 15.194 -9.1743 15.343 -9.2593 15.493 -9.3458 15.649 -9.4340 15.806 -9.5238 15.971 -9.6154 16.137 -9.7087 16.312 -9.8039 16.493 -9.9010 16.684 -10.0000 16.878 -10.1010 17.076 -10.2041 17.276 -10.3093 17.486 -10.4167 17.706 -10.5263 17.932 -10.6383 18.162 -10.7527 18.397 -10.8696 18.636 -10.9890 18.880 -11.1111 19.130 -11.2360 19.385 -11.3636 19.646 -11.4943 19.912 -11.6279 20.182 -11.7647 20.453 -11.9048 20.726 -12.0482 21.006 -12.1951 21.301 -12.3457 21.606 -12.5000 21.916 -12.6582 22.227 -12.8205 22.542 -12.9870 22.867 -13.1579 23.200 -13.3333 23.537 -13.5135 23.884 -13.6986 24.238 -13.8889 24.608 -14.0845 24.982 -14.2857 25.367 -14.4920 25.759 -14.7059 26.165 -14.9254 26.585 -15.1515 27.018 -15.3846 27.464 -15.6250 27.922 -15.8730 28.385 -16.1290 28.857 -16.3934 29.342 -16.6667 29.848 -16.9492 30.372 -17.2414 30.915 -17.5439 31.475 -17.8571 32.043 -18.1818 32.622 -18.5185 33.212 -18.8679 33.830 -19.2308 34.469 -19.6078 35.134 -20.0000 35.815 -20.4082 36.537 -20.8333 37.298 -21.2766 38.101 -21.7391 38.921 -22.2222 39.760 -22.7273 40.630 -23.2558 41.557 -23.8095 42.559 -24.3902 43.616 -25.0000 44.720 -25.6410 45.879 -26.3158 47.131 -27.0270 48.511 -27.7778 50.022 -28.5714 51.675 -29.4118 53.449 -30.3030 55.370 -31.2500 57.475 -32.2581 59.821 -33.3333 62.410 -34.4828 65.251 -35.7143 68.393 -37.0370 71.895 -38.4615 75.795 -40.0000 80.139 -41.6667 84.991 -43.4783 90.419 -45.4545 96.436 -47.6190 103.106 -50.0000 110.527 -52.6316 118.974 -55.5556 128.885 - -wl k -0.2100 1.314 -0.2200 1.381 -0.2300 1.442 -0.2400 1.482 -0.2500 1.512 -0.2600 1.544 -0.2700 1.586 -0.2800 1.637 -0.2900 1.688 -0.3000 1.731 -0.3100 1.764 -0.3200 1.789 -0.3300 1.807 -0.3400 1.815 -0.3500 1.815 -0.3600 1.815 -0.3700 1.818 -0.3800 1.818 -0.3900 1.813 -0.4000 1.805 -0.4100 1.794 -0.4200 1.786 -0.4300 1.784 -0.4400 1.797 -0.4500 1.829 -0.4600 1.883 -0.4700 1.957 -0.4800 2.046 -0.4900 2.145 -0.5000 2.250 -0.5100 2.358 -0.5200 2.464 -0.5300 2.568 -0.5400 2.668 -0.5500 2.765 -0.5600 2.860 -0.5700 2.958 -0.5800 3.059 -0.5900 3.159 -0.6000 3.253 -0.6100 3.345 -0.6200 3.434 -0.6300 3.522 -0.6400 3.609 -0.6500 3.695 -0.6600 3.778 -0.6700 3.860 -0.6800 3.943 -0.6900 4.025 -0.7000 4.106 -0.7100 4.186 -0.7200 4.266 -0.7300 4.346 -0.7400 4.424 -0.7500 4.501 -0.7600 4.579 -0.7700 4.657 -0.7800 4.737 -0.7900 4.814 -0.8000 4.890 -0.8100 4.965 -0.8200 5.039 -0.8300 5.115 -0.8400 5.192 -0.8500 5.269 -0.8600 5.346 -0.8700 5.423 -0.8800 5.500 -0.8900 5.575 -0.9000 5.650 -0.9100 5.724 -0.9200 5.797 -0.9300 5.870 -0.9400 5.944 -0.9500 6.016 -0.9600 6.087 -0.9700 6.158 -0.9800 6.228 -0.9900 6.298 -1.0000 6.367 -1.0100 6.437 -1.0200 6.507 -1.0300 6.578 -1.0400 6.649 -1.0500 6.720 -1.0600 6.792 -1.0700 6.862 -1.0800 6.933 -1.0900 7.004 -1.1000 7.074 -1.1100 7.144 -1.1200 7.214 -1.1300 7.283 -1.1400 7.351 -1.1500 7.419 -1.1600 7.487 -1.1700 7.557 -1.1800 7.627 -1.1900 7.694 -1.2000 7.760 -1.2100 7.826 -1.2200 7.895 -1.2300 7.967 -1.2400 8.040 -1.2500 8.112 -1.2600 8.182 -1.2700 8.251 -1.2800 8.320 -1.2900 8.390 -1.3000 8.459 -1.3100 8.528 -1.3200 8.595 -1.3300 8.662 -1.3400 8.728 -1.3500 8.795 -1.3600 8.861 -1.3700 8.928 -1.3800 8.994 -1.3900 9.061 -1.4000 9.128 -1.4100 9.196 -1.4200 9.265 -1.4300 9.335 -1.4400 9.405 -1.4500 9.474 -1.4600 9.542 -1.4700 9.609 -1.4800 9.675 -1.4900 9.742 -1.5000 9.810 -1.5100 9.878 -1.5200 9.946 -1.5300 10.014 -1.5400 10.080 -1.5500 10.146 -1.5600 10.213 -1.5700 10.280 -1.5800 10.347 -1.5900 10.415 -1.6000 10.483 -1.6100 10.552 -1.6200 10.619 -1.6300 10.686 -1.6400 10.751 -1.6500 10.814 -1.6600 10.879 -1.6700 10.943 -1.6800 11.008 -1.6900 11.073 -1.7000 11.138 -1.7100 11.203 -1.7200 11.266 -1.7300 11.328 -1.7400 11.390 -1.7500 11.456 -1.7600 11.523 -1.7700 11.593 -1.7800 11.662 -1.7900 11.730 -1.8000 11.796 -1.8100 11.863 -1.8300 12.000 -1.8400 12.068 -1.8500 12.135 -1.8600 12.202 -1.8700 12.267 -1.8800 12.332 -1.8900 12.396 -1.9000 12.459 -1.9100 12.524 -1.9200 12.588 -1.9300 12.654 -1.9400 12.718 -1.9500 12.786 -1.9600 12.855 -1.9700 12.922 -1.9800 12.986 -1.9900 13.044 -2.0000 13.101 -2.0100 13.161 -2.0200 13.226 -2.0300 13.295 -2.0400 13.363 -2.0500 13.426 -2.0600 13.485 -2.0700 13.545 -2.0800 13.607 -2.0900 13.666 -2.1000 13.725 -2.1100 13.784 -2.1200 13.842 -2.1300 13.902 -2.1400 13.961 -2.1500 14.023 -2.1600 14.084 -2.1700 14.146 -2.1800 14.206 -2.1900 14.265 -2.2000 14.324 -2.2100 14.385 -2.2200 14.447 -2.2300 14.511 -2.2400 14.570 -2.2500 14.628 -2.2600 14.686 -2.2700 14.743 -2.2800 14.797 -2.2900 14.853 -2.3000 14.909 -2.3100 14.966 -2.3200 15.026 -2.3300 15.087 -2.3400 15.151 -2.3500 15.217 -2.3600 15.283 -2.3700 15.350 -2.3800 15.411 -2.3900 15.466 -2.4000 15.522 -2.4100 15.578 -2.4200 15.636 -2.4300 15.697 -2.4400 15.755 -2.4500 15.813 -2.4600 15.872 -2.4700 15.932 -2.4800 15.995 -2.4900 16.055 -2.5000 16.114 -2.5063 16.153 -2.5126 16.192 -2.5189 16.230 -2.5253 16.268 -2.5316 16.306 -2.5381 16.343 -2.5445 16.381 -2.5510 16.419 -2.5575 16.457 -2.5641 16.495 -2.5707 16.533 -2.5773 16.571 -2.5840 16.610 -2.5907 16.649 -2.5974 16.689 -2.6042 16.729 -2.6110 16.770 -2.6178 16.810 -2.6247 16.851 -2.6316 16.892 -2.6385 16.934 -2.6455 16.975 -2.6525 17.017 -2.6596 17.059 -2.6667 17.103 -2.6738 17.146 -2.6810 17.190 -2.6882 17.234 -2.6954 17.278 -2.7027 17.323 -2.7100 17.368 -2.7174 17.413 -2.7248 17.458 -2.7322 17.504 -2.7397 17.551 -2.7473 17.597 -2.7548 17.644 -2.7624 17.691 -2.7701 17.737 -2.7778 17.784 -2.7855 17.832 -2.7933 17.879 -2.8011 17.927 -2.8090 17.974 -2.8169 18.023 -2.8249 18.072 -2.8329 18.120 -2.8409 18.169 -2.8490 18.218 -2.8571 18.268 -2.8653 18.318 -2.8736 18.368 -2.8818 18.418 -2.8902 18.468 -2.8986 18.518 -2.9070 18.568 -2.9155 18.619 -2.9240 18.669 -2.9326 18.720 -2.9412 18.772 -2.9499 18.824 -2.9586 18.877 -2.9674 18.929 -2.9762 18.981 -2.9851 19.034 -2.9940 19.087 -3.0030 19.140 -3.0120 19.193 -3.0211 19.248 -3.0303 19.302 -3.0395 19.356 -3.0488 19.410 -3.0581 19.466 -3.0675 19.521 -3.0769 19.517 -3.0864 19.633 -3.0960 19.690 -3.1056 19.746 -3.1153 19.803 -3.1250 19.860 -3.1348 19.917 -3.1447 19.974 -3.1546 20.032 -3.1646 20.090 -3.1746 20.148 -3.1847 20.207 -3.1949 20.266 -3.2051 20.326 -3.2154 20.386 -3.2258 20.445 -3.2362 20.505 -3.2468 20.565 -3.2573 20.625 -3.2680 20.685 -3.2787 20.746 -3.2895 20.808 -3.3003 20.870 -3.3113 20.931 -3.3223 20.993 -3.3333 21.055 -3.3445 21.118 -3.3557 21.181 -3.3670 21.244 -3.3784 21.308 -3.3898 21.372 -3.4014 21.436 -3.4130 21.501 -3.4247 21.566 -3.4364 21.631 -3.4483 21.698 -3.4602 21.765 -3.4722 21.832 -3.4843 21.900 -3.4965 21.968 -3.5088 22.037 -3.5211 22.106 -3.5336 22.176 -3.5461 22.246 -3.5587 22.317 -3.5714 22.390 -3.5842 22.462 -3.5971 22.534 -3.6101 22.606 -3.6232 22.679 -3.6364 22.753 -3.6496 22.828 -3.6630 22.902 -3.6765 22.977 -3.6900 23.051 -3.7037 23.126 -3.7175 23.202 -3.7313 23.279 -3.7453 23.356 -3.7594 23.433 -3.7736 23.511 -3.7879 23.589 -3.8023 23.668 -3.8168 23.748 -3.8314 23.827 -3.8462 23.907 -3.8610 23.988 -3.8760 24.069 -3.8911 24.151 -3.9063 24.233 -3.9216 24.316 -3.9370 24.400 -3.9526 24.484 -3.9683 24.568 -3.9841 24.653 -4.0000 24.739 -4.0161 24.825 -4.0323 24.913 -4.0486 25.001 -4.0650 25.089 -4.0816 25.178 -4.0984 25.269 -4.1152 25.361 -4.1322 25.454 -4.1494 25.547 -4.1667 25.640 -4.1841 25.735 -4.2017 25.831 -4.2194 25.928 -4.2373 26.026 -4.2553 26.124 -4.2735 26.223 -4.2918 26.322 -4.3103 26.420 -4.3290 26.518 -4.3478 26.616 -4.3668 26.716 -4.3860 26.815 -4.4053 26.916 -4.4248 27.017 -4.4444 27.120 -4.4643 27.222 -4.4843 27.325 -4.5045 27.428 -4.5249 27.533 -4.5455 27.637 -4.5662 27.742 -4.5872 27.848 -4.6083 27.954 -4.6296 28.060 -4.6512 28.168 -4.6729 28.276 -4.6948 28.385 -4.7170 28.496 -4.7393 28.608 -4.7619 28.721 -4.7847 28.834 -4.8077 28.948 -4.8309 29.064 -4.8544 29.181 -4.8780 29.299 -4.9020 29.417 -4.9261 29.535 -4.9505 29.654 -4.9751 29.775 -5.0000 29.898 -5.0251 30.022 -5.0505 30.148 -5.0761 30.274 -5.1020 30.402 -5.1282 30.532 -5.1546 30.662 -5.1813 30.793 -5.2083 30.926 -5.2356 31.060 -5.2632 31.195 -5.2910 31.331 -5.3191 31.468 -5.3476 31.606 -5.3763 31.745 -5.4054 31.885 -5.4348 32.026 -5.4645 32.168 -5.4945 32.313 -5.5249 32.461 -5.5556 32.612 -5.5866 32.763 -5.6180 32.914 -5.6497 33.065 -5.6818 33.217 -5.7143 33.371 -5.7471 33.528 -5.7803 33.688 -5.8140 33.850 -5.8480 34.015 -5.8824 34.181 -5.9172 34.347 -5.9524 34.514 -5.9880 34.685 -6.0241 34.859 -6.0606 35.037 -6.0976 35.216 -6.1350 35.397 -6.1728 35.581 -6.2112 35.766 -6.2500 35.952 -6.2893 36.140 -6.3291 36.332 -6.3694 36.528 -6.4103 36.724 -6.4516 36.921 -6.4935 37.120 -6.5359 37.321 -6.5789 37.524 -6.6225 37.729 -6.6667 37.931 -6.7114 38.133 -6.7568 38.334 -6.8027 38.538 -6.8493 38.744 -6.8966 38.951 -6.9444 39.159 -6.9930 39.365 -7.0423 39.573 -7.0922 39.780 -7.1429 39.989 -7.1942 40.197 -7.2464 40.409 -7.2993 40.621 -7.3529 40.834 -7.4074 41.047 -7.4627 41.264 -7.5188 41.484 -7.5758 41.707 -7.6336 41.930 -7.6923 42.154 -7.7519 42.380 -7.8125 42.611 -7.8740 42.847 -7.9365 43.088 -8.0000 43.337 -8.0645 43.592 -8.1301 43.852 -8.1967 44.116 -8.2645 44.383 -8.3333 44.657 -8.4034 44.939 -8.4746 45.229 -8.5470 45.527 -8.6207 45.830 -8.6957 46.140 -8.7719 46.456 -8.8496 46.780 -8.9286 47.114 -9.0090 47.453 -9.0909 47.798 -9.1743 48.147 -9.2593 48.504 -9.3458 48.865 -9.4340 49.236 -9.5238 49.611 -9.6154 49.997 -9.7087 50.389 -9.8039 50.790 -9.9010 51.193 -10.0000 51.601 -10.1010 52.013 -10.2041 52.438 -10.3093 52.870 -10.4167 53.306 -10.5263 53.746 -10.6383 54.190 -10.7527 54.640 -10.8696 55.097 -10.9890 55.560 -11.1111 56.031 -11.2360 56.509 -11.3636 56.993 -11.4943 57.485 -11.6279 57.982 -11.7647 58.489 -11.9048 59.009 -12.0482 59.547 -12.1951 60.094 -12.3457 60.647 -12.5000 61.204 -12.6582 61.773 -12.8205 62.357 -12.9870 62.955 -13.1579 63.563 -13.3333 64.187 -13.5135 64.825 -13.6986 65.482 -13.8889 66.149 -14.0845 66.833 -14.2857 67.531 -14.4920 68.251 -14.7059 68.989 -14.9254 69.745 -15.1515 70.518 -15.3846 71.308 -15.6250 72.113 -15.8730 72.939 -16.1290 73.791 -16.3934 74.674 -16.6667 75.584 -16.9492 76.519 -17.2414 77.478 -17.5439 78.457 -17.8571 79.466 -18.1818 80.507 -18.5185 81.598 -18.8679 82.726 -19.2308 83.900 -19.6078 85.110 -20.0000 86.381 -20.4082 87.705 -20.8333 89.081 -21.2766 90.491 -21.7391 91.950 -22.2222 93.481 -22.7273 95.102 -23.2558 96.820 -23.8095 98.608 -24.3902 100.470 -25.0000 102.423 -25.6410 104.502 -26.3158 106.723 -27.0270 109.066 -27.7778 111.531 -28.5714 114.093 -29.4118 116.784 -30.3030 119.629 -31.2500 122.654 -32.2581 125.831 -33.3333 129.145 -34.4828 132.621 -35.7143 136.282 -37.0370 140.107 -38.4615 144.087 -40.0000 148.216 -41.6667 152.486 -43.4783 156.828 -45.4545 161.229 -47.6190 165.710 -50.0000 170.240 -52.6316 175.042 -55.5556 179.300 +wl n +0.2100 1.140 +0.2200 1.179 +0.2300 1.227 +0.2400 1.271 +0.2500 1.301 +0.2600 1.315 +0.2700 1.323 +0.2800 1.336 +0.2900 1.358 +0.3000 1.388 +0.3100 1.419 +0.3200 1.446 +0.3300 1.473 +0.3400 1.494 +0.3500 1.504 +0.3600 1.503 +0.3700 1.497 +0.3800 1.487 +0.3900 1.471 +0.4000 1.445 +0.4100 1.405 +0.4200 1.350 +0.4300 1.278 +0.4400 1.191 +0.4500 1.094 +0.4600 0.994 +0.4700 0.900 +0.4800 0.816 +0.4900 0.745 +0.5000 0.686 +0.5100 0.639 +0.5200 0.602 +0.5300 0.573 +0.5400 0.549 +0.5500 0.527 +0.5600 0.505 +0.5700 0.484 +0.5800 0.468 +0.5900 0.460 +0.6000 0.450 +0.6100 0.452 +0.6200 0.449 +0.6300 0.445 +0.6400 0.444 +0.6500 0.444 +0.6600 0.445 +0.6700 0.444 +0.6800 0.444 +0.6900 0.445 +0.7000 0.446 +0.7100 0.448 +0.7200 0.450 +0.7300 0.452 +0.7400 0.455 +0.7500 0.457 +0.7600 0.458 +0.7700 0.460 +0.7800 0.464 +0.7900 0.469 +0.8000 0.473 +0.8100 0.478 +0.8200 0.481 +0.8300 0.483 +0.8400 0.486 +0.8500 0.490 +0.8600 0.494 +0.8700 0.500 +0.8800 0.507 +0.8900 0.515 +0.9000 0.523 +0.9100 0.531 +0.9200 0.538 +0.9300 0.546 +0.9400 0.555 +0.9500 0.563 +0.9600 0.572 +0.9700 0.580 +0.9800 0.588 +0.9900 0.596 +1.0000 0.603 +1.0100 0.610 +1.0200 0.616 +1.0300 0.622 +1.0400 0.628 +1.0500 0.635 +1.0600 0.642 +1.0700 0.650 +1.0800 0.658 +1.0900 0.667 +1.1000 0.675 +1.1100 0.684 +1.1200 0.693 +1.1300 0.702 +1.1400 0.711 +1.1500 0.718 +1.1600 0.726 +1.1700 0.733 +1.1800 0.743 +1.1900 0.752 +1.2000 0.761 +1.2100 0.766 +1.2200 0.770 +1.2300 0.775 +1.2400 0.783 +1.2500 0.793 +1.2600 0.803 +1.2700 0.813 +1.2800 0.823 +1.2900 0.834 +1.3000 0.844 +1.3100 0.856 +1.3200 0.867 +1.3300 0.878 +1.3400 0.888 +1.3500 0.898 +1.3600 0.908 +1.3700 0.917 +1.3800 0.926 +1.3900 0.934 +1.4000 0.942 +1.4100 0.950 +1.4200 0.958 +1.4300 0.968 +1.4400 0.978 +1.4500 0.989 +1.4600 1.001 +1.4700 1.013 +1.4800 1.024 +1.4900 1.034 +1.5000 1.044 +1.5100 1.055 +1.5200 1.067 +1.5300 1.079 +1.5400 1.091 +1.5500 1.102 +1.5600 1.113 +1.5700 1.124 +1.5800 1.135 +1.5900 1.146 +1.6000 1.158 +1.6100 1.171 +1.6200 1.184 +1.6300 1.199 +1.6400 1.214 +1.6500 1.228 +1.6600 1.240 +1.6700 1.252 +1.6800 1.264 +1.6900 1.276 +1.7000 1.288 +1.7100 1.302 +1.7200 1.315 +1.7300 1.326 +1.7400 1.335 +1.7500 1.342 +1.7600 1.350 +1.7700 1.360 +1.7800 1.372 +1.7900 1.386 +1.8000 1.398 +1.8100 1.410 +1.8300 1.437 +1.8400 1.452 +1.8500 1.468 +1.8600 1.484 +1.8700 1.500 +1.8800 1.517 +1.8900 1.532 +1.9000 1.547 +1.9100 1.562 +1.9200 1.576 +1.9300 1.591 +1.9400 1.604 +1.9500 1.618 +1.9600 1.633 +1.9700 1.654 +1.9800 1.676 +1.9900 1.696 +2.0000 1.711 +2.0100 1.723 +2.0200 1.733 +2.0300 1.748 +2.0400 1.767 +2.0500 1.789 +2.0600 1.809 +2.0700 1.826 +2.0800 1.842 +2.0900 1.861 +2.1000 1.878 +2.1100 1.894 +2.1200 1.910 +2.1300 1.924 +2.1400 1.938 +2.1500 1.950 +2.1600 1.967 +2.1700 1.983 +2.1800 1.999 +2.1900 2.014 +2.2000 2.028 +2.2100 2.042 +2.2200 2.057 +2.2300 2.073 +2.2400 2.093 +2.2500 2.110 +2.2600 2.127 +2.2700 2.144 +2.2800 2.159 +2.2900 2.171 +2.3000 2.182 +2.3100 2.193 +2.3200 2.201 +2.3300 2.211 +2.3400 2.220 +2.3500 2.232 +2.3600 2.248 +2.3700 2.266 +2.3800 2.287 +2.3900 2.306 +2.4000 2.324 +2.4100 2.337 +2.4200 2.349 +2.4300 2.363 +2.4400 2.377 +2.4500 2.391 +2.4600 2.403 +2.4700 2.415 +2.4800 2.427 +2.4900 2.443 +2.5000 2.456 +2.5063 2.467 +2.5126 2.476 +2.5189 2.487 +2.5253 2.497 +2.5316 2.507 +2.5381 2.517 +2.5445 2.527 +2.5510 2.537 +2.5575 2.546 +2.5641 2.556 +2.5707 2.565 +2.5773 2.574 +2.5840 2.582 +2.5907 2.591 +2.5974 2.600 +2.6042 2.609 +2.6110 2.618 +2.6178 2.627 +2.6247 2.636 +2.6316 2.645 +2.6385 2.654 +2.6455 2.663 +2.6525 2.672 +2.6596 2.681 +2.6667 2.690 +2.6738 2.699 +2.6810 2.709 +2.6882 2.718 +2.6954 2.728 +2.7027 2.738 +2.7100 2.748 +2.7174 2.758 +2.7248 2.769 +2.7322 2.780 +2.7397 2.790 +2.7473 2.802 +2.7548 2.813 +2.7624 2.826 +2.7701 2.837 +2.7778 2.849 +2.7855 2.861 +2.7933 2.874 +2.8011 2.886 +2.8090 2.898 +2.8169 2.911 +2.8249 2.924 +2.8329 2.937 +2.8409 2.950 +2.8490 2.963 +2.8571 2.977 +2.8653 2.990 +2.8736 3.004 +2.8818 3.018 +2.8902 3.033 +2.8986 3.047 +2.9070 3.062 +2.9155 3.077 +2.9240 3.091 +2.9326 3.105 +2.9412 3.119 +2.9499 3.134 +2.9586 3.149 +2.9674 3.165 +2.9762 3.180 +2.9851 3.196 +2.9940 3.211 +3.0030 3.227 +3.0120 3.242 +3.0211 3.258 +3.0303 3.274 +3.0395 3.291 +3.0488 3.307 +3.0581 3.323 +3.0675 3.339 +3.0769 3.356 +3.0864 3.373 +3.0960 3.390 +3.1056 3.408 +3.1153 3.426 +3.1250 3.444 +3.1348 3.462 +3.1447 3.480 +3.1546 3.498 +3.1646 3.516 +3.1746 3.535 +3.1847 3.553 +3.1949 3.571 +3.2051 3.591 +3.2154 3.610 +3.2258 3.630 +3.2362 3.650 +3.2468 3.670 +3.2573 3.690 +3.2680 3.710 +3.2787 3.730 +3.2895 3.750 +3.3003 3.770 +3.3113 3.791 +3.3223 3.812 +3.3333 3.832 +3.3445 3.852 +3.3557 3.873 +3.3670 3.893 +3.3784 3.915 +3.3898 3.935 +3.4014 3.957 +3.4130 3.978 +3.4247 3.999 +3.4364 4.020 +3.4483 4.041 +3.4602 4.062 +3.4722 4.083 +3.4843 4.105 +3.4965 4.127 +3.5088 4.149 +3.5211 4.171 +3.5336 4.194 +3.5461 4.216 +3.5587 4.238 +3.5714 4.261 +3.5842 4.285 +3.5971 4.310 +3.6101 4.335 +3.6232 4.359 +3.6364 4.383 +3.6496 4.409 +3.6630 4.434 +3.6765 4.461 +3.6900 4.487 +3.7037 4.513 +3.7175 4.538 +3.7313 4.564 +3.7453 4.571 +3.7594 4.618 +3.7736 4.646 +3.7879 4.672 +3.8023 4.700 +3.8168 4.728 +3.8314 4.756 +3.8462 4.785 +3.8610 4.813 +3.8760 4.841 +3.8911 4.870 +3.9063 4.898 +3.9216 4.928 +3.9370 4.957 +3.9526 4.987 +3.9683 5.017 +3.9841 5.047 +4.0000 5.077 +4.0161 5.107 +4.0323 5.137 +4.0486 5.169 +4.0650 5.200 +4.0816 5.230 +4.0984 5.260 +4.1152 5.292 +4.1322 5.325 +4.1494 5.359 +4.1667 5.392 +4.1841 5.425 +4.2017 5.459 +4.2194 5.494 +4.2373 5.531 +4.2553 5.568 +4.2735 5.607 +4.2918 5.646 +4.3103 5.687 +4.3290 5.726 +4.3478 5.766 +4.3668 5.806 +4.3860 5.847 +4.4053 5.887 +4.4248 5.928 +4.4444 5.969 +4.4643 6.012 +4.4843 6.053 +4.5045 6.097 +4.5249 6.139 +4.5455 6.183 +4.5662 6.226 +4.5872 6.271 +4.6083 6.315 +4.6296 6.359 +4.6512 6.402 +4.6729 6.446 +4.6948 6.491 +4.7170 6.534 +4.7393 6.579 +4.7619 6.624 +4.7847 6.671 +4.8077 6.717 +4.8309 6.762 +4.8544 6.808 +4.8780 6.857 +4.9020 6.906 +4.9261 6.954 +4.9505 7.002 +4.9751 7.049 +5.0000 7.097 +5.0251 7.146 +5.0505 7.195 +5.0761 7.245 +5.1020 7.296 +5.1282 7.348 +5.1546 7.400 +5.1813 7.453 +5.2083 7.506 +5.2356 7.560 +5.2632 7.615 +5.2910 7.671 +5.3191 7.727 +5.3476 7.784 +5.3763 7.841 +5.4054 7.899 +5.4348 7.958 +5.4645 8.015 +5.4945 8.072 +5.5249 8.129 +5.5556 8.190 +5.5866 8.252 +5.6180 8.317 +5.6497 8.381 +5.6818 8.445 +5.7143 8.507 +5.7471 8.569 +5.7803 8.633 +5.8140 8.698 +5.8480 8.765 +5.8824 8.834 +5.9172 8.903 +5.9524 8.973 +5.9880 9.041 +6.0241 9.111 +6.0606 9.183 +6.0976 9.258 +6.1350 9.334 +6.1728 9.411 +6.2112 9.492 +6.2500 9.573 +6.2893 9.656 +6.3291 9.738 +6.3694 9.825 +6.4103 9.916 +6.4516 10.009 +6.4935 10.103 +6.5359 10.199 +6.5789 10.300 +6.6225 10.403 +6.6667 10.511 +6.7114 10.620 +6.7568 10.728 +6.8027 10.836 +6.8493 10.946 +6.8966 11.060 +6.9444 11.174 +6.9930 11.291 +7.0423 11.407 +7.0922 11.527 +7.1429 11.644 +7.1942 11.762 +7.2464 11.880 +7.2993 11.998 +7.3529 12.118 +7.4074 12.235 +7.4627 12.352 +7.5188 12.468 +7.5758 12.586 +7.6336 12.705 +7.6923 12.821 +7.7519 12.936 +7.8125 13.047 +7.8740 13.158 +7.9365 13.266 +8.0000 13.375 +8.0645 13.484 +8.1301 13.597 +8.1967 13.712 +8.2645 13.825 +8.3333 13.938 +8.4034 14.049 +8.4746 14.164 +8.5470 14.280 +8.6207 14.403 +8.6957 14.526 +8.7719 14.652 +8.8496 14.912 +8.9286 15.051 +9.0090 15.051 +9.0909 15.194 +9.1743 15.343 +9.2593 15.493 +9.3458 15.649 +9.4340 15.806 +9.5238 15.971 +9.6154 16.137 +9.7087 16.312 +9.8039 16.493 +9.9010 16.684 +10.0000 16.878 +10.1010 17.076 +10.2041 17.276 +10.3093 17.486 +10.4167 17.706 +10.5263 17.932 +10.6383 18.162 +10.7527 18.397 +10.8696 18.636 +10.9890 18.880 +11.1111 19.130 +11.2360 19.385 +11.3636 19.646 +11.4943 19.912 +11.6279 20.182 +11.7647 20.453 +11.9048 20.726 +12.0482 21.006 +12.1951 21.301 +12.3457 21.606 +12.5000 21.916 +12.6582 22.227 +12.8205 22.542 +12.9870 22.867 +13.1579 23.200 +13.3333 23.537 +13.5135 23.884 +13.6986 24.238 +13.8889 24.608 +14.0845 24.982 +14.2857 25.367 +14.4920 25.759 +14.7059 26.165 +14.9254 26.585 +15.1515 27.018 +15.3846 27.464 +15.6250 27.922 +15.8730 28.385 +16.1290 28.857 +16.3934 29.342 +16.6667 29.848 +16.9492 30.372 +17.2414 30.915 +17.5439 31.475 +17.8571 32.043 +18.1818 32.622 +18.5185 33.212 +18.8679 33.830 +19.2308 34.469 +19.6078 35.134 +20.0000 35.815 +20.4082 36.537 +20.8333 37.298 +21.2766 38.101 +21.7391 38.921 +22.2222 39.760 +22.7273 40.630 +23.2558 41.557 +23.8095 42.559 +24.3902 43.616 +25.0000 44.720 +25.6410 45.879 +26.3158 47.131 +27.0270 48.511 +27.7778 50.022 +28.5714 51.675 +29.4118 53.449 +30.3030 55.370 +31.2500 57.475 +32.2581 59.821 +33.3333 62.410 +34.4828 65.251 +35.7143 68.393 +37.0370 71.895 +38.4615 75.795 +40.0000 80.139 +41.6667 84.991 +43.4783 90.419 +45.4545 96.436 +47.6190 103.106 +50.0000 110.527 +52.6316 118.974 +55.5556 128.885 + +wl k +0.2100 1.314 +0.2200 1.381 +0.2300 1.442 +0.2400 1.482 +0.2500 1.512 +0.2600 1.544 +0.2700 1.586 +0.2800 1.637 +0.2900 1.688 +0.3000 1.731 +0.3100 1.764 +0.3200 1.789 +0.3300 1.807 +0.3400 1.815 +0.3500 1.815 +0.3600 1.815 +0.3700 1.818 +0.3800 1.818 +0.3900 1.813 +0.4000 1.805 +0.4100 1.794 +0.4200 1.786 +0.4300 1.784 +0.4400 1.797 +0.4500 1.829 +0.4600 1.883 +0.4700 1.957 +0.4800 2.046 +0.4900 2.145 +0.5000 2.250 +0.5100 2.358 +0.5200 2.464 +0.5300 2.568 +0.5400 2.668 +0.5500 2.765 +0.5600 2.860 +0.5700 2.958 +0.5800 3.059 +0.5900 3.159 +0.6000 3.253 +0.6100 3.345 +0.6200 3.434 +0.6300 3.522 +0.6400 3.609 +0.6500 3.695 +0.6600 3.778 +0.6700 3.860 +0.6800 3.943 +0.6900 4.025 +0.7000 4.106 +0.7100 4.186 +0.7200 4.266 +0.7300 4.346 +0.7400 4.424 +0.7500 4.501 +0.7600 4.579 +0.7700 4.657 +0.7800 4.737 +0.7900 4.814 +0.8000 4.890 +0.8100 4.965 +0.8200 5.039 +0.8300 5.115 +0.8400 5.192 +0.8500 5.269 +0.8600 5.346 +0.8700 5.423 +0.8800 5.500 +0.8900 5.575 +0.9000 5.650 +0.9100 5.724 +0.9200 5.797 +0.9300 5.870 +0.9400 5.944 +0.9500 6.016 +0.9600 6.087 +0.9700 6.158 +0.9800 6.228 +0.9900 6.298 +1.0000 6.367 +1.0100 6.437 +1.0200 6.507 +1.0300 6.578 +1.0400 6.649 +1.0500 6.720 +1.0600 6.792 +1.0700 6.862 +1.0800 6.933 +1.0900 7.004 +1.1000 7.074 +1.1100 7.144 +1.1200 7.214 +1.1300 7.283 +1.1400 7.351 +1.1500 7.419 +1.1600 7.487 +1.1700 7.557 +1.1800 7.627 +1.1900 7.694 +1.2000 7.760 +1.2100 7.826 +1.2200 7.895 +1.2300 7.967 +1.2400 8.040 +1.2500 8.112 +1.2600 8.182 +1.2700 8.251 +1.2800 8.320 +1.2900 8.390 +1.3000 8.459 +1.3100 8.528 +1.3200 8.595 +1.3300 8.662 +1.3400 8.728 +1.3500 8.795 +1.3600 8.861 +1.3700 8.928 +1.3800 8.994 +1.3900 9.061 +1.4000 9.128 +1.4100 9.196 +1.4200 9.265 +1.4300 9.335 +1.4400 9.405 +1.4500 9.474 +1.4600 9.542 +1.4700 9.609 +1.4800 9.675 +1.4900 9.742 +1.5000 9.810 +1.5100 9.878 +1.5200 9.946 +1.5300 10.014 +1.5400 10.080 +1.5500 10.146 +1.5600 10.213 +1.5700 10.280 +1.5800 10.347 +1.5900 10.415 +1.6000 10.483 +1.6100 10.552 +1.6200 10.619 +1.6300 10.686 +1.6400 10.751 +1.6500 10.814 +1.6600 10.879 +1.6700 10.943 +1.6800 11.008 +1.6900 11.073 +1.7000 11.138 +1.7100 11.203 +1.7200 11.266 +1.7300 11.328 +1.7400 11.390 +1.7500 11.456 +1.7600 11.523 +1.7700 11.593 +1.7800 11.662 +1.7900 11.730 +1.8000 11.796 +1.8100 11.863 +1.8300 12.000 +1.8400 12.068 +1.8500 12.135 +1.8600 12.202 +1.8700 12.267 +1.8800 12.332 +1.8900 12.396 +1.9000 12.459 +1.9100 12.524 +1.9200 12.588 +1.9300 12.654 +1.9400 12.718 +1.9500 12.786 +1.9600 12.855 +1.9700 12.922 +1.9800 12.986 +1.9900 13.044 +2.0000 13.101 +2.0100 13.161 +2.0200 13.226 +2.0300 13.295 +2.0400 13.363 +2.0500 13.426 +2.0600 13.485 +2.0700 13.545 +2.0800 13.607 +2.0900 13.666 +2.1000 13.725 +2.1100 13.784 +2.1200 13.842 +2.1300 13.902 +2.1400 13.961 +2.1500 14.023 +2.1600 14.084 +2.1700 14.146 +2.1800 14.206 +2.1900 14.265 +2.2000 14.324 +2.2100 14.385 +2.2200 14.447 +2.2300 14.511 +2.2400 14.570 +2.2500 14.628 +2.2600 14.686 +2.2700 14.743 +2.2800 14.797 +2.2900 14.853 +2.3000 14.909 +2.3100 14.966 +2.3200 15.026 +2.3300 15.087 +2.3400 15.151 +2.3500 15.217 +2.3600 15.283 +2.3700 15.350 +2.3800 15.411 +2.3900 15.466 +2.4000 15.522 +2.4100 15.578 +2.4200 15.636 +2.4300 15.697 +2.4400 15.755 +2.4500 15.813 +2.4600 15.872 +2.4700 15.932 +2.4800 15.995 +2.4900 16.055 +2.5000 16.114 +2.5063 16.153 +2.5126 16.192 +2.5189 16.230 +2.5253 16.268 +2.5316 16.306 +2.5381 16.343 +2.5445 16.381 +2.5510 16.419 +2.5575 16.457 +2.5641 16.495 +2.5707 16.533 +2.5773 16.571 +2.5840 16.610 +2.5907 16.649 +2.5974 16.689 +2.6042 16.729 +2.6110 16.770 +2.6178 16.810 +2.6247 16.851 +2.6316 16.892 +2.6385 16.934 +2.6455 16.975 +2.6525 17.017 +2.6596 17.059 +2.6667 17.103 +2.6738 17.146 +2.6810 17.190 +2.6882 17.234 +2.6954 17.278 +2.7027 17.323 +2.7100 17.368 +2.7174 17.413 +2.7248 17.458 +2.7322 17.504 +2.7397 17.551 +2.7473 17.597 +2.7548 17.644 +2.7624 17.691 +2.7701 17.737 +2.7778 17.784 +2.7855 17.832 +2.7933 17.879 +2.8011 17.927 +2.8090 17.974 +2.8169 18.023 +2.8249 18.072 +2.8329 18.120 +2.8409 18.169 +2.8490 18.218 +2.8571 18.268 +2.8653 18.318 +2.8736 18.368 +2.8818 18.418 +2.8902 18.468 +2.8986 18.518 +2.9070 18.568 +2.9155 18.619 +2.9240 18.669 +2.9326 18.720 +2.9412 18.772 +2.9499 18.824 +2.9586 18.877 +2.9674 18.929 +2.9762 18.981 +2.9851 19.034 +2.9940 19.087 +3.0030 19.140 +3.0120 19.193 +3.0211 19.248 +3.0303 19.302 +3.0395 19.356 +3.0488 19.410 +3.0581 19.466 +3.0675 19.521 +3.0769 19.517 +3.0864 19.633 +3.0960 19.690 +3.1056 19.746 +3.1153 19.803 +3.1250 19.860 +3.1348 19.917 +3.1447 19.974 +3.1546 20.032 +3.1646 20.090 +3.1746 20.148 +3.1847 20.207 +3.1949 20.266 +3.2051 20.326 +3.2154 20.386 +3.2258 20.445 +3.2362 20.505 +3.2468 20.565 +3.2573 20.625 +3.2680 20.685 +3.2787 20.746 +3.2895 20.808 +3.3003 20.870 +3.3113 20.931 +3.3223 20.993 +3.3333 21.055 +3.3445 21.118 +3.3557 21.181 +3.3670 21.244 +3.3784 21.308 +3.3898 21.372 +3.4014 21.436 +3.4130 21.501 +3.4247 21.566 +3.4364 21.631 +3.4483 21.698 +3.4602 21.765 +3.4722 21.832 +3.4843 21.900 +3.4965 21.968 +3.5088 22.037 +3.5211 22.106 +3.5336 22.176 +3.5461 22.246 +3.5587 22.317 +3.5714 22.390 +3.5842 22.462 +3.5971 22.534 +3.6101 22.606 +3.6232 22.679 +3.6364 22.753 +3.6496 22.828 +3.6630 22.902 +3.6765 22.977 +3.6900 23.051 +3.7037 23.126 +3.7175 23.202 +3.7313 23.279 +3.7453 23.356 +3.7594 23.433 +3.7736 23.511 +3.7879 23.589 +3.8023 23.668 +3.8168 23.748 +3.8314 23.827 +3.8462 23.907 +3.8610 23.988 +3.8760 24.069 +3.8911 24.151 +3.9063 24.233 +3.9216 24.316 +3.9370 24.400 +3.9526 24.484 +3.9683 24.568 +3.9841 24.653 +4.0000 24.739 +4.0161 24.825 +4.0323 24.913 +4.0486 25.001 +4.0650 25.089 +4.0816 25.178 +4.0984 25.269 +4.1152 25.361 +4.1322 25.454 +4.1494 25.547 +4.1667 25.640 +4.1841 25.735 +4.2017 25.831 +4.2194 25.928 +4.2373 26.026 +4.2553 26.124 +4.2735 26.223 +4.2918 26.322 +4.3103 26.420 +4.3290 26.518 +4.3478 26.616 +4.3668 26.716 +4.3860 26.815 +4.4053 26.916 +4.4248 27.017 +4.4444 27.120 +4.4643 27.222 +4.4843 27.325 +4.5045 27.428 +4.5249 27.533 +4.5455 27.637 +4.5662 27.742 +4.5872 27.848 +4.6083 27.954 +4.6296 28.060 +4.6512 28.168 +4.6729 28.276 +4.6948 28.385 +4.7170 28.496 +4.7393 28.608 +4.7619 28.721 +4.7847 28.834 +4.8077 28.948 +4.8309 29.064 +4.8544 29.181 +4.8780 29.299 +4.9020 29.417 +4.9261 29.535 +4.9505 29.654 +4.9751 29.775 +5.0000 29.898 +5.0251 30.022 +5.0505 30.148 +5.0761 30.274 +5.1020 30.402 +5.1282 30.532 +5.1546 30.662 +5.1813 30.793 +5.2083 30.926 +5.2356 31.060 +5.2632 31.195 +5.2910 31.331 +5.3191 31.468 +5.3476 31.606 +5.3763 31.745 +5.4054 31.885 +5.4348 32.026 +5.4645 32.168 +5.4945 32.313 +5.5249 32.461 +5.5556 32.612 +5.5866 32.763 +5.6180 32.914 +5.6497 33.065 +5.6818 33.217 +5.7143 33.371 +5.7471 33.528 +5.7803 33.688 +5.8140 33.850 +5.8480 34.015 +5.8824 34.181 +5.9172 34.347 +5.9524 34.514 +5.9880 34.685 +6.0241 34.859 +6.0606 35.037 +6.0976 35.216 +6.1350 35.397 +6.1728 35.581 +6.2112 35.766 +6.2500 35.952 +6.2893 36.140 +6.3291 36.332 +6.3694 36.528 +6.4103 36.724 +6.4516 36.921 +6.4935 37.120 +6.5359 37.321 +6.5789 37.524 +6.6225 37.729 +6.6667 37.931 +6.7114 38.133 +6.7568 38.334 +6.8027 38.538 +6.8493 38.744 +6.8966 38.951 +6.9444 39.159 +6.9930 39.365 +7.0423 39.573 +7.0922 39.780 +7.1429 39.989 +7.1942 40.197 +7.2464 40.409 +7.2993 40.621 +7.3529 40.834 +7.4074 41.047 +7.4627 41.264 +7.5188 41.484 +7.5758 41.707 +7.6336 41.930 +7.6923 42.154 +7.7519 42.380 +7.8125 42.611 +7.8740 42.847 +7.9365 43.088 +8.0000 43.337 +8.0645 43.592 +8.1301 43.852 +8.1967 44.116 +8.2645 44.383 +8.3333 44.657 +8.4034 44.939 +8.4746 45.229 +8.5470 45.527 +8.6207 45.830 +8.6957 46.140 +8.7719 46.456 +8.8496 46.780 +8.9286 47.114 +9.0090 47.453 +9.0909 47.798 +9.1743 48.147 +9.2593 48.504 +9.3458 48.865 +9.4340 49.236 +9.5238 49.611 +9.6154 49.997 +9.7087 50.389 +9.8039 50.790 +9.9010 51.193 +10.0000 51.601 +10.1010 52.013 +10.2041 52.438 +10.3093 52.870 +10.4167 53.306 +10.5263 53.746 +10.6383 54.190 +10.7527 54.640 +10.8696 55.097 +10.9890 55.560 +11.1111 56.031 +11.2360 56.509 +11.3636 56.993 +11.4943 57.485 +11.6279 57.982 +11.7647 58.489 +11.9048 59.009 +12.0482 59.547 +12.1951 60.094 +12.3457 60.647 +12.5000 61.204 +12.6582 61.773 +12.8205 62.357 +12.9870 62.955 +13.1579 63.563 +13.3333 64.187 +13.5135 64.825 +13.6986 65.482 +13.8889 66.149 +14.0845 66.833 +14.2857 67.531 +14.4920 68.251 +14.7059 68.989 +14.9254 69.745 +15.1515 70.518 +15.3846 71.308 +15.6250 72.113 +15.8730 72.939 +16.1290 73.791 +16.3934 74.674 +16.6667 75.584 +16.9492 76.519 +17.2414 77.478 +17.5439 78.457 +17.8571 79.466 +18.1818 80.507 +18.5185 81.598 +18.8679 82.726 +19.2308 83.900 +19.6078 85.110 +20.0000 86.381 +20.4082 87.705 +20.8333 89.081 +21.2766 90.491 +21.7391 91.950 +22.2222 93.481 +22.7273 95.102 +23.2558 96.820 +23.8095 98.608 +24.3902 100.470 +25.0000 102.423 +25.6410 104.502 +26.3158 106.723 +27.0270 109.066 +27.7778 111.531 +28.5714 114.093 +29.4118 116.784 +30.3030 119.629 +31.2500 122.654 +32.2581 125.831 +33.3333 129.145 +34.4828 132.621 +35.7143 136.282 +37.0370 140.107 +38.4615 144.087 +40.0000 148.216 +41.6667 152.486 +43.4783 156.828 +45.4545 161.229 +47.6190 165.710 +50.0000 170.240 +52.6316 175.042 +55.5556 179.300 diff --git a/tools/specular-color/data/chromium.txt b/tools/specular-color/data/chromium.txt index de3c35de6a..92ebd0b6c8 100644 --- a/tools/specular-color/data/chromium.txt +++ b/tools/specular-color/data/chromium.txt @@ -1,101 +1,101 @@ -wl n -0.188 1.28 -0.192 1.31 -0.195 1.35 -0.199 1.39 -0.203 1.43 -0.207 1.46 -0.212 1.46 -0.216 1.47 -0.221 1.45 -0.226 1.43 -0.231 1.40 -0.237 1.38 -0.243 1.36 -0.249 1.36 -0.255 1.37 -0.262 1.38 -0.269 1.39 -0.276 1.43 -0.284 1.45 -0.292 1.48 -0.301 1.53 -0.311 1.58 -0.320 1.65 -0.332 1.69 -0.342 1.76 -0.354 1.84 -0.368 1.87 -0.381 1.92 -0.397 2.00 -0.413 2.08 -0.431 2.19 -0.451 2.33 -0.471 2.51 -0.496 2.75 -0.521 2.94 -0.549 3.18 -0.582 3.22 -0.617 3.17 -0.659 3.09 -0.704 3.05 -0.756 3.08 -0.821 3.20 -0.892 3.30 -0.984 3.41 -1.088 3.58 -1.216 3.67 -1.393 3.69 -1.610 3.66 -1.937 3.71 - -wl k -0.188 1.64 -0.192 1.65 -0.195 1.68 -0.199 1.70 -0.203 1.70 -0.207 1.71 -0.212 1.72 -0.216 1.72 -0.221 1.73 -0.226 1.74 -0.231 1.77 -0.237 1.80 -0.243 1.85 -0.249 1.91 -0.255 1.97 -0.262 2.03 -0.269 2.08 -0.276 2.15 -0.284 2.21 -0.292 2.28 -0.301 2.34 -0.311 2.40 -0.320 2.47 -0.332 2.53 -0.342 2.58 -0.354 2.64 -0.368 2.69 -0.381 2.74 -0.397 2.83 -0.413 2.93 -0.431 3.04 -0.451 3.14 -0.471 3.24 -0.496 3.30 -0.521 3.33 -0.549 3.33 -0.582 3.30 -0.617 3.30 -0.659 3.34 -0.704 3.39 -0.756 3.42 -0.821 3.48 -0.892 3.52 -0.984 3.57 -1.088 3.58 -1.216 3.60 -1.393 3.84 -1.610 4.31 -1.937 5.04 +wl n +0.188 1.28 +0.192 1.31 +0.195 1.35 +0.199 1.39 +0.203 1.43 +0.207 1.46 +0.212 1.46 +0.216 1.47 +0.221 1.45 +0.226 1.43 +0.231 1.40 +0.237 1.38 +0.243 1.36 +0.249 1.36 +0.255 1.37 +0.262 1.38 +0.269 1.39 +0.276 1.43 +0.284 1.45 +0.292 1.48 +0.301 1.53 +0.311 1.58 +0.320 1.65 +0.332 1.69 +0.342 1.76 +0.354 1.84 +0.368 1.87 +0.381 1.92 +0.397 2.00 +0.413 2.08 +0.431 2.19 +0.451 2.33 +0.471 2.51 +0.496 2.75 +0.521 2.94 +0.549 3.18 +0.582 3.22 +0.617 3.17 +0.659 3.09 +0.704 3.05 +0.756 3.08 +0.821 3.20 +0.892 3.30 +0.984 3.41 +1.088 3.58 +1.216 3.67 +1.393 3.69 +1.610 3.66 +1.937 3.71 + +wl k +0.188 1.64 +0.192 1.65 +0.195 1.68 +0.199 1.70 +0.203 1.70 +0.207 1.71 +0.212 1.72 +0.216 1.72 +0.221 1.73 +0.226 1.74 +0.231 1.77 +0.237 1.80 +0.243 1.85 +0.249 1.91 +0.255 1.97 +0.262 2.03 +0.269 2.08 +0.276 2.15 +0.284 2.21 +0.292 2.28 +0.301 2.34 +0.311 2.40 +0.320 2.47 +0.332 2.53 +0.342 2.58 +0.354 2.64 +0.368 2.69 +0.381 2.74 +0.397 2.83 +0.413 2.93 +0.431 3.04 +0.451 3.14 +0.471 3.24 +0.496 3.30 +0.521 3.33 +0.549 3.33 +0.582 3.30 +0.617 3.30 +0.659 3.34 +0.704 3.39 +0.756 3.42 +0.821 3.48 +0.892 3.52 +0.984 3.57 +1.088 3.58 +1.216 3.60 +1.393 3.84 +1.610 4.31 +1.937 5.04 diff --git a/tools/specular-color/data/copper.txt b/tools/specular-color/data/copper.txt index 97f8b32894..32c0354d0e 100644 --- a/tools/specular-color/data/copper.txt +++ b/tools/specular-color/data/copper.txt @@ -1,403 +1,403 @@ -wl n -2.0664e-01 1.3031e+00 -2.1094e-01 1.3220e+00 -2.1532e-01 1.3435e+00 -2.1980e-01 1.3669e+00 -2.2437e-01 1.3916e+00 -2.2903e-01 1.4167e+00 -2.3379e-01 1.4414e+00 -2.3865e-01 1.4648e+00 -2.4361e-01 1.4861e+00 -2.4868e-01 1.5045e+00 -2.5385e-01 1.5194e+00 -2.5912e-01 1.5299e+00 -2.6451e-01 1.5355e+00 -2.7001e-01 1.5356e+00 -2.7562e-01 1.5297e+00 -2.8135e-01 1.5175e+00 -2.8720e-01 1.4987e+00 -2.9317e-01 1.4736e+00 -2.9926e-01 1.4425e+00 -3.0548e-01 1.4064e+00 -3.1183e-01 1.3668e+00 -3.1832e-01 1.3258e+00 -3.2493e-01 1.2862e+00 -3.3169e-01 1.2507e+00 -3.3858e-01 1.2220e+00 -3.4562e-01 1.2020e+00 -3.5281e-01 1.1918e+00 -3.6014e-01 1.1915e+00 -3.6763e-01 1.2001e+00 -3.7527e-01 1.2161e+00 -3.8307e-01 1.2373e+00 -3.9103e-01 1.2613e+00 -3.9916e-01 1.2856e+00 -4.0746e-01 1.3077e+00 -4.1593e-01 1.3253e+00 -4.2458e-01 1.3363e+00 -4.3340e-01 1.3389e+00 -4.4241e-01 1.3316e+00 -4.5161e-01 1.3132e+00 -4.6100e-01 1.2832e+00 -4.7058e-01 1.2413e+00 -4.8036e-01 1.1879e+00 -4.9035e-01 1.1240e+00 -5.0054e-01 1.0512e+00 -5.1094e-01 9.7185e-01 -5.2157e-01 8.8859e-01 -5.3241e-01 8.0438e-01 -5.4348e-01 7.2204e-01 -5.5477e-01 6.4392e-01 -5.6631e-01 5.7177e-01 -5.7808e-01 5.0663e-01 -5.9010e-01 4.4894e-01 -6.0236e-01 3.9868e-01 -6.1488e-01 3.5554e-01 -6.2767e-01 3.1902e-01 -6.4071e-01 2.8853e-01 -6.5403e-01 2.6347e-01 -6.6763e-01 2.4324e-01 -6.8151e-01 2.2732e-01 -6.9567e-01 2.1520e-01 -7.1014e-01 2.0645e-01 -7.2490e-01 2.0067e-01 -7.3997e-01 1.9753e-01 -7.5535e-01 1.9675e-01 -7.7105e-01 1.9806e-01 -7.8708e-01 2.0124e-01 -8.0344e-01 2.0610e-01 -8.2014e-01 2.1249e-01 -8.3719e-01 2.2024e-01 -8.5459e-01 2.2924e-01 -8.7236e-01 2.3937e-01 -8.9049e-01 2.5052e-01 -9.0900e-01 2.6262e-01 -9.2790e-01 2.7557e-01 -9.4719e-01 2.8931e-01 -9.6688e-01 3.0376e-01 -9.8698e-01 3.1885e-01 -1.0075e+00 3.3454e-01 -1.0284e+00 3.5076e-01 -1.0498e+00 3.6747e-01 -1.0716e+00 3.8461e-01 -1.0939e+00 4.0215e-01 -1.1167e+00 4.2004e-01 -1.1399e+00 4.3824e-01 -1.1636e+00 4.5673e-01 -1.1878e+00 4.7546e-01 -1.2124e+00 4.9440e-01 -1.2376e+00 5.1354e-01 -1.2634e+00 5.3284e-01 -1.2896e+00 5.5229e-01 -1.3164e+00 5.7187e-01 -1.3438e+00 5.9155e-01 -1.3717e+00 6.1134e-01 -1.4003e+00 6.3121e-01 -1.4294e+00 6.5116e-01 -1.4591e+00 6.7118e-01 -1.4894e+00 6.9127e-01 -1.5204e+00 7.1142e-01 -1.5520e+00 7.3165e-01 -1.5842e+00 7.5195e-01 -1.6172e+00 7.7232e-01 -1.6508e+00 7.9277e-01 -1.6851e+00 8.1332e-01 -1.7201e+00 8.3397e-01 -1.7559e+00 8.5474e-01 -1.7924e+00 8.7563e-01 -1.8297e+00 8.9667e-01 -1.8677e+00 9.1787e-01 -1.9065e+00 9.3926e-01 -1.9462e+00 9.6085e-01 -1.9866e+00 9.8266e-01 -2.0279e+00 1.0047e+00 -2.0701e+00 1.0271e+00 -2.1131e+00 1.0497e+00 -2.1570e+00 1.0726e+00 -2.2019e+00 1.0960e+00 -2.2476e+00 1.1197e+00 -2.2944e+00 1.1438e+00 -2.3421e+00 1.1684e+00 -2.3907e+00 1.1934e+00 -2.4404e+00 1.2190e+00 -2.4912e+00 1.2451e+00 -2.5430e+00 1.2719e+00 -2.5958e+00 1.2993e+00 -2.6498e+00 1.3273e+00 -2.7049e+00 1.3561e+00 -2.7611e+00 1.3856e+00 -2.8185e+00 1.4160e+00 -2.8771e+00 1.4472e+00 -2.9369e+00 1.4793e+00 -2.9979e+00 1.5124e+00 -3.0602e+00 1.5465e+00 -3.1239e+00 1.5817e+00 -3.1888e+00 1.6179e+00 -3.2551e+00 1.6554e+00 -3.3228e+00 1.6941e+00 -3.3918e+00 1.7341e+00 -3.4623e+00 1.7755e+00 -3.5343e+00 1.8183e+00 -3.6078e+00 1.8627e+00 -3.6828e+00 1.9086e+00 -3.7593e+00 1.9561e+00 -3.8375e+00 2.0054e+00 -3.9173e+00 2.0565e+00 -3.9987e+00 2.1095e+00 -4.0818e+00 2.1645e+00 -4.1667e+00 2.2215e+00 -4.2533e+00 2.2807e+00 -4.3417e+00 2.3422e+00 -4.4319e+00 2.4060e+00 -4.5241e+00 2.4723e+00 -4.6181e+00 2.5412e+00 -4.7141e+00 2.6127e+00 -4.8121e+00 2.6870e+00 -4.9122e+00 2.7643e+00 -5.0143e+00 2.8446e+00 -5.1185e+00 2.9280e+00 -5.2249e+00 3.0148e+00 -5.3335e+00 3.1050e+00 -5.4444e+00 3.1988e+00 -5.5576e+00 3.2963e+00 -5.6731e+00 3.3977e+00 -5.7910e+00 3.5031e+00 -5.9114e+00 3.6128e+00 -6.0343e+00 3.7269e+00 -6.1597e+00 3.8455e+00 -6.2878e+00 3.9689e+00 -6.4185e+00 4.0972e+00 -6.5519e+00 4.2306e+00 -6.6881e+00 4.3695e+00 -6.8271e+00 4.5138e+00 -6.9691e+00 4.6640e+00 -7.1139e+00 4.8202e+00 -7.2618e+00 4.9826e+00 -7.4128e+00 5.1515e+00 -7.5669e+00 5.3272e+00 -7.7242e+00 5.5099e+00 -7.8847e+00 5.6999e+00 -8.0486e+00 5.8974e+00 -8.2159e+00 6.1028e+00 -8.3867e+00 6.3164e+00 -8.5611e+00 6.5385e+00 -8.7390e+00 6.7693e+00 -8.9207e+00 7.0093e+00 -9.1061e+00 7.2588e+00 -9.2954e+00 7.5181e+00 -9.4887e+00 7.7876e+00 -9.6859e+00 8.0676e+00 -9.8873e+00 8.3586e+00 -1.0093e+01 8.6610e+00 -1.0303e+01 8.9752e+00 -1.0517e+01 9.3015e+00 -1.0735e+01 9.6405e+00 -1.0959e+01 9.9926e+00 -1.1186e+01 1.0358e+01 -1.1419e+01 1.0738e+01 -1.1656e+01 1.1132e+01 -1.1899e+01 1.1541e+01 -1.2146e+01 1.1966e+01 -1.2398e+01 1.2406e+01 - -wl k -2.0664e-01 1.6826e+00 -2.1094e-01 1.7001e+00 -2.1532e-01 1.7160e+00 -2.1980e-01 1.7294e+00 -2.2437e-01 1.7398e+00 -2.2903e-01 1.7469e+00 -2.3379e-01 1.7505e+00 -2.3865e-01 1.7507e+00 -2.4361e-01 1.7474e+00 -2.4868e-01 1.7411e+00 -2.5385e-01 1.7321e+00 -2.5912e-01 1.7210e+00 -2.6451e-01 1.7083e+00 -2.7001e-01 1.6950e+00 -2.7562e-01 1.6818e+00 -2.8135e-01 1.6700e+00 -2.8720e-01 1.6607e+00 -2.9317e-01 1.6554e+00 -2.9926e-01 1.6557e+00 -3.0548e-01 1.6633e+00 -3.1183e-01 1.6796e+00 -3.1832e-01 1.7058e+00 -3.2493e-01 1.7422e+00 -3.3169e-01 1.7884e+00 -3.3858e-01 1.8427e+00 -3.4562e-01 1.9028e+00 -3.5281e-01 1.9658e+00 -3.6014e-01 2.0285e+00 -3.6763e-01 2.0881e+00 -3.7527e-01 2.1422e+00 -3.8307e-01 2.1891e+00 -3.9103e-01 2.2277e+00 -3.9916e-01 2.2575e+00 -4.0746e-01 2.2785e+00 -4.1593e-01 2.2916e+00 -4.2458e-01 2.2977e+00 -4.3340e-01 2.2984e+00 -4.4241e-01 2.2956e+00 -4.5161e-01 2.2913e+00 -4.6100e-01 2.2880e+00 -4.7058e-01 2.2880e+00 -4.8036e-01 2.2941e+00 -4.9035e-01 2.3088e+00 -5.0054e-01 2.3343e+00 -5.1094e-01 2.3725e+00 -5.2157e-01 2.4247e+00 -5.3241e-01 2.4911e+00 -5.4348e-01 2.5713e+00 -5.5477e-01 2.6639e+00 -5.6631e-01 2.7672e+00 -5.7808e-01 2.8793e+00 -5.9010e-01 2.9983e+00 -6.0236e-01 3.1227e+00 -6.1488e-01 3.2509e+00 -6.2767e-01 3.3821e+00 -6.4071e-01 3.5153e+00 -6.5403e-01 3.6500e+00 -6.6763e-01 3.7857e+00 -6.8151e-01 3.9221e+00 -6.9567e-01 4.0592e+00 -7.1014e-01 4.1967e+00 -7.2490e-01 4.3347e+00 -7.3997e-01 4.4732e+00 -7.5535e-01 4.6121e+00 -7.7105e-01 4.7516e+00 -7.8708e-01 4.8917e+00 -8.0344e-01 5.0325e+00 -8.2014e-01 5.1740e+00 -8.3719e-01 5.3164e+00 -8.5459e-01 5.4597e+00 -8.7236e-01 5.6040e+00 -8.9049e-01 5.7494e+00 -9.0900e-01 5.8960e+00 -9.2790e-01 6.0439e+00 -9.4719e-01 6.1931e+00 -9.6688e-01 6.3438e+00 -9.8698e-01 6.4959e+00 -1.0075e+00 6.6497e+00 -1.0284e+00 6.8052e+00 -1.0498e+00 6.9624e+00 -1.0716e+00 7.1215e+00 -1.0939e+00 7.2825e+00 -1.1167e+00 7.4456e+00 -1.1399e+00 7.6108e+00 -1.1636e+00 7.7782e+00 -1.1878e+00 7.9480e+00 -1.2124e+00 8.1202e+00 -1.2376e+00 8.2949e+00 -1.2634e+00 8.4722e+00 -1.2896e+00 8.6522e+00 -1.3164e+00 8.8350e+00 -1.3438e+00 9.0208e+00 -1.3717e+00 9.2095e+00 -1.4003e+00 9.4014e+00 -1.4294e+00 9.5966e+00 -1.4591e+00 9.7951e+00 -1.4894e+00 9.9970e+00 -1.5204e+00 1.0203e+01 -1.5520e+00 1.0412e+01 -1.5842e+00 1.0625e+01 -1.6172e+00 1.0842e+01 -1.6508e+00 1.1063e+01 -1.6851e+00 1.1288e+01 -1.7201e+00 1.1517e+01 -1.7559e+00 1.1751e+01 -1.7924e+00 1.1989e+01 -1.8297e+00 1.2232e+01 -1.8677e+00 1.2479e+01 -1.9065e+00 1.2732e+01 -1.9462e+00 1.2989e+01 -1.9866e+00 1.3252e+01 -2.0279e+00 1.3520e+01 -2.0701e+00 1.3793e+01 -2.1131e+00 1.4072e+01 -2.1570e+00 1.4356e+01 -2.2019e+00 1.4646e+01 -2.2476e+00 1.4942e+01 -2.2944e+00 1.5244e+01 -2.3421e+00 1.5552e+01 -2.3907e+00 1.5866e+01 -2.4404e+00 1.6187e+01 -2.4912e+00 1.6515e+01 -2.5430e+00 1.6849e+01 -2.5958e+00 1.7190e+01 -2.6498e+00 1.7539e+01 -2.7049e+00 1.7894e+01 -2.7611e+00 1.8257e+01 -2.8185e+00 1.8627e+01 -2.8771e+00 1.9005e+01 -2.9369e+00 1.9390e+01 -2.9979e+00 1.9784e+01 -3.0602e+00 2.0186e+01 -3.1239e+00 2.0596e+01 -3.1888e+00 2.1014e+01 -3.2551e+00 2.1442e+01 -3.3228e+00 2.1878e+01 -3.3918e+00 2.2323e+01 -3.4623e+00 2.2777e+01 -3.5343e+00 2.3241e+01 -3.6078e+00 2.3714e+01 -3.6828e+00 2.4197e+01 -3.7593e+00 2.4690e+01 -3.8375e+00 2.5193e+01 -3.9173e+00 2.5706e+01 -3.9987e+00 2.6230e+01 -4.0818e+00 2.6765e+01 -4.1667e+00 2.7311e+01 -4.2533e+00 2.7868e+01 -4.3417e+00 2.8436e+01 -4.4319e+00 2.9016e+01 -4.5241e+00 2.9608e+01 -4.6181e+00 3.0211e+01 -4.7141e+00 3.0828e+01 -4.8121e+00 3.1456e+01 -4.9122e+00 3.2098e+01 -5.0143e+00 3.2752e+01 -5.1185e+00 3.3420e+01 -5.2249e+00 3.4101e+01 -5.3335e+00 3.4796e+01 -5.4444e+00 3.5505e+01 -5.5576e+00 3.6228e+01 -5.6731e+00 3.6966e+01 -5.7910e+00 3.7718e+01 -5.9114e+00 3.8486e+01 -6.0343e+00 3.9269e+01 -6.1597e+00 4.0067e+01 -6.2878e+00 4.0881e+01 -6.4185e+00 4.1712e+01 -6.5519e+00 4.2559e+01 -6.6881e+00 4.3423e+01 -6.8271e+00 4.4303e+01 -6.9691e+00 4.5201e+01 -7.1139e+00 4.6117e+01 -7.2618e+00 4.7050e+01 -7.4128e+00 4.8002e+01 -7.5669e+00 4.8972e+01 -7.7242e+00 4.9961e+01 -7.8847e+00 5.0969e+01 -8.0486e+00 5.1996e+01 -8.2159e+00 5.3043e+01 -8.3867e+00 5.4110e+01 -8.5611e+00 5.5198e+01 -8.7390e+00 5.6306e+01 -8.9207e+00 5.7434e+01 -9.1061e+00 5.8584e+01 -9.2954e+00 5.9756e+01 -9.4887e+00 6.0949e+01 -9.6859e+00 6.2165e+01 -9.8873e+00 6.3403e+01 -1.0093e+01 6.4663e+01 -1.0303e+01 6.5947e+01 -1.0517e+01 6.7254e+01 -1.0735e+01 6.8584e+01 -1.0959e+01 6.9938e+01 -1.1186e+01 7.1317e+01 -1.1419e+01 7.2719e+01 -1.1656e+01 7.4147e+01 -1.1899e+01 7.5599e+01 -1.2146e+01 7.7077e+01 -1.2398e+01 7.8579e+01 +wl n +2.0664e-01 1.3031e+00 +2.1094e-01 1.3220e+00 +2.1532e-01 1.3435e+00 +2.1980e-01 1.3669e+00 +2.2437e-01 1.3916e+00 +2.2903e-01 1.4167e+00 +2.3379e-01 1.4414e+00 +2.3865e-01 1.4648e+00 +2.4361e-01 1.4861e+00 +2.4868e-01 1.5045e+00 +2.5385e-01 1.5194e+00 +2.5912e-01 1.5299e+00 +2.6451e-01 1.5355e+00 +2.7001e-01 1.5356e+00 +2.7562e-01 1.5297e+00 +2.8135e-01 1.5175e+00 +2.8720e-01 1.4987e+00 +2.9317e-01 1.4736e+00 +2.9926e-01 1.4425e+00 +3.0548e-01 1.4064e+00 +3.1183e-01 1.3668e+00 +3.1832e-01 1.3258e+00 +3.2493e-01 1.2862e+00 +3.3169e-01 1.2507e+00 +3.3858e-01 1.2220e+00 +3.4562e-01 1.2020e+00 +3.5281e-01 1.1918e+00 +3.6014e-01 1.1915e+00 +3.6763e-01 1.2001e+00 +3.7527e-01 1.2161e+00 +3.8307e-01 1.2373e+00 +3.9103e-01 1.2613e+00 +3.9916e-01 1.2856e+00 +4.0746e-01 1.3077e+00 +4.1593e-01 1.3253e+00 +4.2458e-01 1.3363e+00 +4.3340e-01 1.3389e+00 +4.4241e-01 1.3316e+00 +4.5161e-01 1.3132e+00 +4.6100e-01 1.2832e+00 +4.7058e-01 1.2413e+00 +4.8036e-01 1.1879e+00 +4.9035e-01 1.1240e+00 +5.0054e-01 1.0512e+00 +5.1094e-01 9.7185e-01 +5.2157e-01 8.8859e-01 +5.3241e-01 8.0438e-01 +5.4348e-01 7.2204e-01 +5.5477e-01 6.4392e-01 +5.6631e-01 5.7177e-01 +5.7808e-01 5.0663e-01 +5.9010e-01 4.4894e-01 +6.0236e-01 3.9868e-01 +6.1488e-01 3.5554e-01 +6.2767e-01 3.1902e-01 +6.4071e-01 2.8853e-01 +6.5403e-01 2.6347e-01 +6.6763e-01 2.4324e-01 +6.8151e-01 2.2732e-01 +6.9567e-01 2.1520e-01 +7.1014e-01 2.0645e-01 +7.2490e-01 2.0067e-01 +7.3997e-01 1.9753e-01 +7.5535e-01 1.9675e-01 +7.7105e-01 1.9806e-01 +7.8708e-01 2.0124e-01 +8.0344e-01 2.0610e-01 +8.2014e-01 2.1249e-01 +8.3719e-01 2.2024e-01 +8.5459e-01 2.2924e-01 +8.7236e-01 2.3937e-01 +8.9049e-01 2.5052e-01 +9.0900e-01 2.6262e-01 +9.2790e-01 2.7557e-01 +9.4719e-01 2.8931e-01 +9.6688e-01 3.0376e-01 +9.8698e-01 3.1885e-01 +1.0075e+00 3.3454e-01 +1.0284e+00 3.5076e-01 +1.0498e+00 3.6747e-01 +1.0716e+00 3.8461e-01 +1.0939e+00 4.0215e-01 +1.1167e+00 4.2004e-01 +1.1399e+00 4.3824e-01 +1.1636e+00 4.5673e-01 +1.1878e+00 4.7546e-01 +1.2124e+00 4.9440e-01 +1.2376e+00 5.1354e-01 +1.2634e+00 5.3284e-01 +1.2896e+00 5.5229e-01 +1.3164e+00 5.7187e-01 +1.3438e+00 5.9155e-01 +1.3717e+00 6.1134e-01 +1.4003e+00 6.3121e-01 +1.4294e+00 6.5116e-01 +1.4591e+00 6.7118e-01 +1.4894e+00 6.9127e-01 +1.5204e+00 7.1142e-01 +1.5520e+00 7.3165e-01 +1.5842e+00 7.5195e-01 +1.6172e+00 7.7232e-01 +1.6508e+00 7.9277e-01 +1.6851e+00 8.1332e-01 +1.7201e+00 8.3397e-01 +1.7559e+00 8.5474e-01 +1.7924e+00 8.7563e-01 +1.8297e+00 8.9667e-01 +1.8677e+00 9.1787e-01 +1.9065e+00 9.3926e-01 +1.9462e+00 9.6085e-01 +1.9866e+00 9.8266e-01 +2.0279e+00 1.0047e+00 +2.0701e+00 1.0271e+00 +2.1131e+00 1.0497e+00 +2.1570e+00 1.0726e+00 +2.2019e+00 1.0960e+00 +2.2476e+00 1.1197e+00 +2.2944e+00 1.1438e+00 +2.3421e+00 1.1684e+00 +2.3907e+00 1.1934e+00 +2.4404e+00 1.2190e+00 +2.4912e+00 1.2451e+00 +2.5430e+00 1.2719e+00 +2.5958e+00 1.2993e+00 +2.6498e+00 1.3273e+00 +2.7049e+00 1.3561e+00 +2.7611e+00 1.3856e+00 +2.8185e+00 1.4160e+00 +2.8771e+00 1.4472e+00 +2.9369e+00 1.4793e+00 +2.9979e+00 1.5124e+00 +3.0602e+00 1.5465e+00 +3.1239e+00 1.5817e+00 +3.1888e+00 1.6179e+00 +3.2551e+00 1.6554e+00 +3.3228e+00 1.6941e+00 +3.3918e+00 1.7341e+00 +3.4623e+00 1.7755e+00 +3.5343e+00 1.8183e+00 +3.6078e+00 1.8627e+00 +3.6828e+00 1.9086e+00 +3.7593e+00 1.9561e+00 +3.8375e+00 2.0054e+00 +3.9173e+00 2.0565e+00 +3.9987e+00 2.1095e+00 +4.0818e+00 2.1645e+00 +4.1667e+00 2.2215e+00 +4.2533e+00 2.2807e+00 +4.3417e+00 2.3422e+00 +4.4319e+00 2.4060e+00 +4.5241e+00 2.4723e+00 +4.6181e+00 2.5412e+00 +4.7141e+00 2.6127e+00 +4.8121e+00 2.6870e+00 +4.9122e+00 2.7643e+00 +5.0143e+00 2.8446e+00 +5.1185e+00 2.9280e+00 +5.2249e+00 3.0148e+00 +5.3335e+00 3.1050e+00 +5.4444e+00 3.1988e+00 +5.5576e+00 3.2963e+00 +5.6731e+00 3.3977e+00 +5.7910e+00 3.5031e+00 +5.9114e+00 3.6128e+00 +6.0343e+00 3.7269e+00 +6.1597e+00 3.8455e+00 +6.2878e+00 3.9689e+00 +6.4185e+00 4.0972e+00 +6.5519e+00 4.2306e+00 +6.6881e+00 4.3695e+00 +6.8271e+00 4.5138e+00 +6.9691e+00 4.6640e+00 +7.1139e+00 4.8202e+00 +7.2618e+00 4.9826e+00 +7.4128e+00 5.1515e+00 +7.5669e+00 5.3272e+00 +7.7242e+00 5.5099e+00 +7.8847e+00 5.6999e+00 +8.0486e+00 5.8974e+00 +8.2159e+00 6.1028e+00 +8.3867e+00 6.3164e+00 +8.5611e+00 6.5385e+00 +8.7390e+00 6.7693e+00 +8.9207e+00 7.0093e+00 +9.1061e+00 7.2588e+00 +9.2954e+00 7.5181e+00 +9.4887e+00 7.7876e+00 +9.6859e+00 8.0676e+00 +9.8873e+00 8.3586e+00 +1.0093e+01 8.6610e+00 +1.0303e+01 8.9752e+00 +1.0517e+01 9.3015e+00 +1.0735e+01 9.6405e+00 +1.0959e+01 9.9926e+00 +1.1186e+01 1.0358e+01 +1.1419e+01 1.0738e+01 +1.1656e+01 1.1132e+01 +1.1899e+01 1.1541e+01 +1.2146e+01 1.1966e+01 +1.2398e+01 1.2406e+01 + +wl k +2.0664e-01 1.6826e+00 +2.1094e-01 1.7001e+00 +2.1532e-01 1.7160e+00 +2.1980e-01 1.7294e+00 +2.2437e-01 1.7398e+00 +2.2903e-01 1.7469e+00 +2.3379e-01 1.7505e+00 +2.3865e-01 1.7507e+00 +2.4361e-01 1.7474e+00 +2.4868e-01 1.7411e+00 +2.5385e-01 1.7321e+00 +2.5912e-01 1.7210e+00 +2.6451e-01 1.7083e+00 +2.7001e-01 1.6950e+00 +2.7562e-01 1.6818e+00 +2.8135e-01 1.6700e+00 +2.8720e-01 1.6607e+00 +2.9317e-01 1.6554e+00 +2.9926e-01 1.6557e+00 +3.0548e-01 1.6633e+00 +3.1183e-01 1.6796e+00 +3.1832e-01 1.7058e+00 +3.2493e-01 1.7422e+00 +3.3169e-01 1.7884e+00 +3.3858e-01 1.8427e+00 +3.4562e-01 1.9028e+00 +3.5281e-01 1.9658e+00 +3.6014e-01 2.0285e+00 +3.6763e-01 2.0881e+00 +3.7527e-01 2.1422e+00 +3.8307e-01 2.1891e+00 +3.9103e-01 2.2277e+00 +3.9916e-01 2.2575e+00 +4.0746e-01 2.2785e+00 +4.1593e-01 2.2916e+00 +4.2458e-01 2.2977e+00 +4.3340e-01 2.2984e+00 +4.4241e-01 2.2956e+00 +4.5161e-01 2.2913e+00 +4.6100e-01 2.2880e+00 +4.7058e-01 2.2880e+00 +4.8036e-01 2.2941e+00 +4.9035e-01 2.3088e+00 +5.0054e-01 2.3343e+00 +5.1094e-01 2.3725e+00 +5.2157e-01 2.4247e+00 +5.3241e-01 2.4911e+00 +5.4348e-01 2.5713e+00 +5.5477e-01 2.6639e+00 +5.6631e-01 2.7672e+00 +5.7808e-01 2.8793e+00 +5.9010e-01 2.9983e+00 +6.0236e-01 3.1227e+00 +6.1488e-01 3.2509e+00 +6.2767e-01 3.3821e+00 +6.4071e-01 3.5153e+00 +6.5403e-01 3.6500e+00 +6.6763e-01 3.7857e+00 +6.8151e-01 3.9221e+00 +6.9567e-01 4.0592e+00 +7.1014e-01 4.1967e+00 +7.2490e-01 4.3347e+00 +7.3997e-01 4.4732e+00 +7.5535e-01 4.6121e+00 +7.7105e-01 4.7516e+00 +7.8708e-01 4.8917e+00 +8.0344e-01 5.0325e+00 +8.2014e-01 5.1740e+00 +8.3719e-01 5.3164e+00 +8.5459e-01 5.4597e+00 +8.7236e-01 5.6040e+00 +8.9049e-01 5.7494e+00 +9.0900e-01 5.8960e+00 +9.2790e-01 6.0439e+00 +9.4719e-01 6.1931e+00 +9.6688e-01 6.3438e+00 +9.8698e-01 6.4959e+00 +1.0075e+00 6.6497e+00 +1.0284e+00 6.8052e+00 +1.0498e+00 6.9624e+00 +1.0716e+00 7.1215e+00 +1.0939e+00 7.2825e+00 +1.1167e+00 7.4456e+00 +1.1399e+00 7.6108e+00 +1.1636e+00 7.7782e+00 +1.1878e+00 7.9480e+00 +1.2124e+00 8.1202e+00 +1.2376e+00 8.2949e+00 +1.2634e+00 8.4722e+00 +1.2896e+00 8.6522e+00 +1.3164e+00 8.8350e+00 +1.3438e+00 9.0208e+00 +1.3717e+00 9.2095e+00 +1.4003e+00 9.4014e+00 +1.4294e+00 9.5966e+00 +1.4591e+00 9.7951e+00 +1.4894e+00 9.9970e+00 +1.5204e+00 1.0203e+01 +1.5520e+00 1.0412e+01 +1.5842e+00 1.0625e+01 +1.6172e+00 1.0842e+01 +1.6508e+00 1.1063e+01 +1.6851e+00 1.1288e+01 +1.7201e+00 1.1517e+01 +1.7559e+00 1.1751e+01 +1.7924e+00 1.1989e+01 +1.8297e+00 1.2232e+01 +1.8677e+00 1.2479e+01 +1.9065e+00 1.2732e+01 +1.9462e+00 1.2989e+01 +1.9866e+00 1.3252e+01 +2.0279e+00 1.3520e+01 +2.0701e+00 1.3793e+01 +2.1131e+00 1.4072e+01 +2.1570e+00 1.4356e+01 +2.2019e+00 1.4646e+01 +2.2476e+00 1.4942e+01 +2.2944e+00 1.5244e+01 +2.3421e+00 1.5552e+01 +2.3907e+00 1.5866e+01 +2.4404e+00 1.6187e+01 +2.4912e+00 1.6515e+01 +2.5430e+00 1.6849e+01 +2.5958e+00 1.7190e+01 +2.6498e+00 1.7539e+01 +2.7049e+00 1.7894e+01 +2.7611e+00 1.8257e+01 +2.8185e+00 1.8627e+01 +2.8771e+00 1.9005e+01 +2.9369e+00 1.9390e+01 +2.9979e+00 1.9784e+01 +3.0602e+00 2.0186e+01 +3.1239e+00 2.0596e+01 +3.1888e+00 2.1014e+01 +3.2551e+00 2.1442e+01 +3.3228e+00 2.1878e+01 +3.3918e+00 2.2323e+01 +3.4623e+00 2.2777e+01 +3.5343e+00 2.3241e+01 +3.6078e+00 2.3714e+01 +3.6828e+00 2.4197e+01 +3.7593e+00 2.4690e+01 +3.8375e+00 2.5193e+01 +3.9173e+00 2.5706e+01 +3.9987e+00 2.6230e+01 +4.0818e+00 2.6765e+01 +4.1667e+00 2.7311e+01 +4.2533e+00 2.7868e+01 +4.3417e+00 2.8436e+01 +4.4319e+00 2.9016e+01 +4.5241e+00 2.9608e+01 +4.6181e+00 3.0211e+01 +4.7141e+00 3.0828e+01 +4.8121e+00 3.1456e+01 +4.9122e+00 3.2098e+01 +5.0143e+00 3.2752e+01 +5.1185e+00 3.3420e+01 +5.2249e+00 3.4101e+01 +5.3335e+00 3.4796e+01 +5.4444e+00 3.5505e+01 +5.5576e+00 3.6228e+01 +5.6731e+00 3.6966e+01 +5.7910e+00 3.7718e+01 +5.9114e+00 3.8486e+01 +6.0343e+00 3.9269e+01 +6.1597e+00 4.0067e+01 +6.2878e+00 4.0881e+01 +6.4185e+00 4.1712e+01 +6.5519e+00 4.2559e+01 +6.6881e+00 4.3423e+01 +6.8271e+00 4.4303e+01 +6.9691e+00 4.5201e+01 +7.1139e+00 4.6117e+01 +7.2618e+00 4.7050e+01 +7.4128e+00 4.8002e+01 +7.5669e+00 4.8972e+01 +7.7242e+00 4.9961e+01 +7.8847e+00 5.0969e+01 +8.0486e+00 5.1996e+01 +8.2159e+00 5.3043e+01 +8.3867e+00 5.4110e+01 +8.5611e+00 5.5198e+01 +8.7390e+00 5.6306e+01 +8.9207e+00 5.7434e+01 +9.1061e+00 5.8584e+01 +9.2954e+00 5.9756e+01 +9.4887e+00 6.0949e+01 +9.6859e+00 6.2165e+01 +9.8873e+00 6.3403e+01 +1.0093e+01 6.4663e+01 +1.0303e+01 6.5947e+01 +1.0517e+01 6.7254e+01 +1.0735e+01 6.8584e+01 +1.0959e+01 6.9938e+01 +1.1186e+01 7.1317e+01 +1.1419e+01 7.2719e+01 +1.1656e+01 7.4147e+01 +1.1899e+01 7.5599e+01 +1.2146e+01 7.7077e+01 +1.2398e+01 7.8579e+01 diff --git a/tools/specular-color/data/gold.txt b/tools/specular-color/data/gold.txt index 8956be9643..c4cc24f866 100644 --- a/tools/specular-color/data/gold.txt +++ b/tools/specular-color/data/gold.txt @@ -1,403 +1,403 @@ -wl n -2.4797e-01 1.4943e+00 -2.5201e-01 1.5158e+00 -2.5612e-01 1.5382e+00 -2.6030e-01 1.5611e+00 -2.6454e-01 1.5844e+00 -2.6886e-01 1.6078e+00 -2.7324e-01 1.6306e+00 -2.7770e-01 1.6527e+00 -2.8222e-01 1.6733e+00 -2.8683e-01 1.6921e+00 -2.9150e-01 1.7085e+00 -2.9626e-01 1.7220e+00 -3.0109e-01 1.7322e+00 -3.0600e-01 1.7387e+00 -3.1099e-01 1.7411e+00 -3.1606e-01 1.7391e+00 -3.2121e-01 1.7327e+00 -3.2645e-01 1.7219e+00 -3.3177e-01 1.7071e+00 -3.3718e-01 1.6887e+00 -3.4268e-01 1.6677e+00 -3.4827e-01 1.6452e+00 -3.5395e-01 1.6224e+00 -3.5972e-01 1.6006e+00 -3.6559e-01 1.5810e+00 -3.7155e-01 1.5645e+00 -3.7761e-01 1.5515e+00 -3.8377e-01 1.5419e+00 -3.9002e-01 1.5351e+00 -3.9638e-01 1.5301e+00 -4.0285e-01 1.5255e+00 -4.0942e-01 1.5196e+00 -4.1609e-01 1.5107e+00 -4.2288e-01 1.4971e+00 -4.2977e-01 1.4771e+00 -4.3678e-01 1.4493e+00 -4.4390e-01 1.4126e+00 -4.5114e-01 1.3661e+00 -4.5850e-01 1.3095e+00 -4.6598e-01 1.2427e+00 -4.7358e-01 1.1664e+00 -4.8130e-01 1.0821e+00 -4.8915e-01 9.9182e-01 -4.9712e-01 8.9849e-01 -5.0523e-01 8.0543e-01 -5.1347e-01 7.1590e-01 -5.2184e-01 6.3260e-01 -5.3035e-01 5.5731e-01 -5.3900e-01 4.9085e-01 -5.4779e-01 4.3326e-01 -5.5672e-01 3.8405e-01 -5.6580e-01 3.4242e-01 -5.7503e-01 3.0751e-01 -5.8440e-01 2.7843e-01 -5.9393e-01 2.5437e-01 -6.0362e-01 2.3457e-01 -6.1346e-01 2.1841e-01 -6.2346e-01 2.0533e-01 -6.3363e-01 1.9487e-01 -6.4396e-01 1.8664e-01 -6.5446e-01 1.8030e-01 -6.6514e-01 1.7558e-01 -6.7598e-01 1.7227e-01 -6.8701e-01 1.7016e-01 -6.9821e-01 1.6911e-01 -7.0959e-01 1.6897e-01 -7.2117e-01 1.6966e-01 -7.3292e-01 1.7107e-01 -7.4488e-01 1.7313e-01 -7.5702e-01 1.7577e-01 -7.6937e-01 1.7895e-01 -7.8191e-01 1.8262e-01 -7.9466e-01 1.8675e-01 -8.0762e-01 1.9129e-01 -8.2079e-01 1.9621e-01 -8.3418e-01 2.0151e-01 -8.4778e-01 2.0715e-01 -8.6160e-01 2.1311e-01 -8.7565e-01 2.1938e-01 -8.8993e-01 2.2594e-01 -9.0445e-01 2.3278e-01 -9.1919e-01 2.3989e-01 -9.3418e-01 2.4725e-01 -9.4942e-01 2.5486e-01 -9.6490e-01 2.6271e-01 -9.8063e-01 2.7079e-01 -9.9662e-01 2.7909e-01 -1.0129e+00 2.8761e-01 -1.0294e+00 2.9634e-01 -1.0462e+00 3.0528e-01 -1.0632e+00 3.1442e-01 -1.0806e+00 3.2376e-01 -1.0982e+00 3.3329e-01 -1.1161e+00 3.4302e-01 -1.1343e+00 3.5293e-01 -1.1528e+00 3.6304e-01 -1.1716e+00 3.7334e-01 -1.1907e+00 3.8382e-01 -1.2101e+00 3.9449e-01 -1.2299e+00 4.0535e-01 -1.2499e+00 4.1641e-01 -1.2703e+00 4.2765e-01 -1.2910e+00 4.3909e-01 -1.3121e+00 4.5072e-01 -1.3335e+00 4.6256e-01 -1.3552e+00 4.7459e-01 -1.3773e+00 4.8684e-01 -1.3998e+00 4.9930e-01 -1.4226e+00 5.1198e-01 -1.4458e+00 5.2488e-01 -1.4694e+00 5.3801e-01 -1.4933e+00 5.5138e-01 -1.5177e+00 5.6499e-01 -1.5424e+00 5.7885e-01 -1.5676e+00 5.9297e-01 -1.5931e+00 6.0736e-01 -1.6191e+00 6.2203e-01 -1.6455e+00 6.3699e-01 -1.6723e+00 6.5224e-01 -1.6996e+00 6.6780e-01 -1.7273e+00 6.8368e-01 -1.7555e+00 6.9989e-01 -1.7841e+00 7.1645e-01 -1.8132e+00 7.3336e-01 -1.8428e+00 7.5065e-01 -1.8728e+00 7.6831e-01 -1.9034e+00 7.8638e-01 -1.9344e+00 8.0486e-01 -1.9660e+00 8.2377e-01 -1.9980e+00 8.4313e-01 -2.0306e+00 8.6294e-01 -2.0637e+00 8.8324e-01 -2.0974e+00 9.0404e-01 -2.1316e+00 9.2535e-01 -2.1663e+00 9.4720e-01 -2.2016e+00 9.6961e-01 -2.2375e+00 9.9259e-01 -2.2740e+00 1.0162e+00 -2.3111e+00 1.0404e+00 -2.3488e+00 1.0652e+00 -2.3871e+00 1.0907e+00 -2.4260e+00 1.1169e+00 -2.4656e+00 1.1438e+00 -2.5058e+00 1.1715e+00 -2.5467e+00 1.1999e+00 -2.5882e+00 1.2291e+00 -2.6304e+00 1.2592e+00 -2.6733e+00 1.2901e+00 -2.7169e+00 1.3219e+00 -2.7612e+00 1.3545e+00 -2.8062e+00 1.3882e+00 -2.8520e+00 1.4228e+00 -2.8985e+00 1.4584e+00 -2.9457e+00 1.4951e+00 -2.9938e+00 1.5328e+00 -3.0426e+00 1.5717e+00 -3.0922e+00 1.6117e+00 -3.1426e+00 1.6529e+00 -3.1939e+00 1.6954e+00 -3.2460e+00 1.7391e+00 -3.2989e+00 1.7842e+00 -3.3527e+00 1.8306e+00 -3.4074e+00 1.8784e+00 -3.4629e+00 1.9277e+00 -3.5194e+00 1.9785e+00 -3.5768e+00 2.0308e+00 -3.6351e+00 2.0847e+00 -3.6944e+00 2.1403e+00 -3.7546e+00 2.1976e+00 -3.8159e+00 2.2566e+00 -3.8781e+00 2.3175e+00 -3.9413e+00 2.3802e+00 -4.0056e+00 2.4449e+00 -4.0709e+00 2.5116e+00 -4.1373e+00 2.5803e+00 -4.2048e+00 2.6511e+00 -4.2733e+00 2.7242e+00 -4.3430e+00 2.7995e+00 -4.4138e+00 2.8771e+00 -4.4858e+00 2.9572e+00 -4.5589e+00 3.0397e+00 -4.6333e+00 3.1247e+00 -4.7088e+00 3.2124e+00 -4.7856e+00 3.3028e+00 -4.8637e+00 3.3960e+00 -4.9430e+00 3.4921e+00 -5.0236e+00 3.5911e+00 -5.1055e+00 3.6932e+00 -5.1888e+00 3.7985e+00 -5.2734e+00 3.9069e+00 -5.3594e+00 4.0187e+00 -5.4468e+00 4.1340e+00 -5.5356e+00 4.2528e+00 -5.6258e+00 4.3752e+00 -5.7176e+00 4.5013e+00 -5.8108e+00 4.6314e+00 -5.9056e+00 4.7653e+00 -6.0019e+00 4.9034e+00 -6.0997e+00 5.0456e+00 -6.1992e+00 5.1922e+00 - -wl k -2.4797e-01 1.9575e+00 -2.5201e-01 1.9594e+00 -2.5612e-01 1.9605e+00 -2.6030e-01 1.9604e+00 -2.6454e-01 1.9587e+00 -2.6886e-01 1.9551e+00 -2.7324e-01 1.9494e+00 -2.7770e-01 1.9414e+00 -2.8222e-01 1.9312e+00 -2.8683e-01 1.9188e+00 -2.9150e-01 1.9042e+00 -2.9626e-01 1.8879e+00 -3.0109e-01 1.8700e+00 -3.0600e-01 1.8512e+00 -3.1099e-01 1.8319e+00 -3.1606e-01 1.8128e+00 -3.2121e-01 1.7946e+00 -3.2645e-01 1.7784e+00 -3.3177e-01 1.7648e+00 -3.3718e-01 1.7548e+00 -3.4268e-01 1.7490e+00 -3.4827e-01 1.7479e+00 -3.5395e-01 1.7516e+00 -3.5972e-01 1.7597e+00 -3.6559e-01 1.7714e+00 -3.7155e-01 1.7856e+00 -3.7761e-01 1.8007e+00 -3.8377e-01 1.8152e+00 -3.9002e-01 1.8276e+00 -3.9638e-01 1.8366e+00 -4.0285e-01 1.8413e+00 -4.0942e-01 1.8411e+00 -4.1609e-01 1.8362e+00 -4.2288e-01 1.8268e+00 -4.2977e-01 1.8140e+00 -4.3678e-01 1.7988e+00 -4.4390e-01 1.7829e+00 -4.5114e-01 1.7681e+00 -4.5850e-01 1.7567e+00 -4.6598e-01 1.7509e+00 -4.7358e-01 1.7532e+00 -4.8130e-01 1.7661e+00 -4.8915e-01 1.7916e+00 -4.9712e-01 1.8312e+00 -5.0523e-01 1.8852e+00 -5.1347e-01 1.9530e+00 -5.2184e-01 2.0328e+00 -5.3035e-01 2.1222e+00 -5.3900e-01 2.2188e+00 -5.4779e-01 2.3201e+00 -5.5672e-01 2.4245e+00 -5.6580e-01 2.5305e+00 -5.7503e-01 2.6370e+00 -5.8440e-01 2.7434e+00 -5.9393e-01 2.8493e+00 -6.0362e-01 2.9545e+00 -6.1346e-01 3.0587e+00 -6.2346e-01 3.1621e+00 -6.3363e-01 3.2645e+00 -6.4396e-01 3.3662e+00 -6.5446e-01 3.4671e+00 -6.6514e-01 3.5675e+00 -6.7598e-01 3.6674e+00 -6.8701e-01 3.7669e+00 -6.9821e-01 3.8661e+00 -7.0959e-01 3.9653e+00 -7.2117e-01 4.0644e+00 -7.3292e-01 4.1635e+00 -7.4488e-01 4.2629e+00 -7.5702e-01 4.3625e+00 -7.6937e-01 4.4624e+00 -7.8191e-01 4.5627e+00 -7.9466e-01 4.6635e+00 -8.0762e-01 4.7649e+00 -8.2079e-01 4.8669e+00 -8.3418e-01 4.9695e+00 -8.4778e-01 5.0729e+00 -8.6160e-01 5.1770e+00 -8.7565e-01 5.2820e+00 -8.8993e-01 5.3878e+00 -9.0445e-01 5.4946e+00 -9.1919e-01 5.6024e+00 -9.3418e-01 5.7111e+00 -9.4942e-01 5.8210e+00 -9.6490e-01 5.9319e+00 -9.8063e-01 6.0440e+00 -9.9662e-01 6.1573e+00 -1.0129e+00 6.2718e+00 -1.0294e+00 6.3875e+00 -1.0462e+00 6.5046e+00 -1.0632e+00 6.6231e+00 -1.0806e+00 6.7429e+00 -1.0982e+00 6.8642e+00 -1.1161e+00 6.9869e+00 -1.1343e+00 7.1112e+00 -1.1528e+00 7.2370e+00 -1.1716e+00 7.3644e+00 -1.1907e+00 7.4935e+00 -1.2101e+00 7.6242e+00 -1.2299e+00 7.7566e+00 -1.2499e+00 7.8908e+00 -1.2703e+00 8.0268e+00 -1.2910e+00 8.1646e+00 -1.3121e+00 8.3044e+00 -1.3335e+00 8.4460e+00 -1.3552e+00 8.5896e+00 -1.3773e+00 8.7353e+00 -1.3998e+00 8.8829e+00 -1.4226e+00 9.0327e+00 -1.4458e+00 9.1847e+00 -1.4694e+00 9.3388e+00 -1.4933e+00 9.4951e+00 -1.5177e+00 9.6538e+00 -1.5424e+00 9.8147e+00 -1.5676e+00 9.9780e+00 -1.5931e+00 1.0144e+01 -1.6191e+00 1.0312e+01 -1.6455e+00 1.0483e+01 -1.6723e+00 1.0656e+01 -1.6996e+00 1.0832e+01 -1.7273e+00 1.1010e+01 -1.7555e+00 1.1192e+01 -1.7841e+00 1.1376e+01 -1.8132e+00 1.1563e+01 -1.8428e+00 1.1752e+01 -1.8728e+00 1.1945e+01 -1.9034e+00 1.2140e+01 -1.9344e+00 1.2339e+01 -1.9660e+00 1.2541e+01 -1.9980e+00 1.2745e+01 -2.0306e+00 1.2953e+01 -2.0637e+00 1.3164e+01 -2.0974e+00 1.3379e+01 -2.1316e+00 1.3597e+01 -2.1663e+00 1.3818e+01 -2.2016e+00 1.4042e+01 -2.2375e+00 1.4271e+01 -2.2740e+00 1.4502e+01 -2.3111e+00 1.4738e+01 -2.3488e+00 1.4977e+01 -2.3871e+00 1.5219e+01 -2.4260e+00 1.5466e+01 -2.4656e+00 1.5717e+01 -2.5058e+00 1.5971e+01 -2.5467e+00 1.6229e+01 -2.5882e+00 1.6492e+01 -2.6304e+00 1.6758e+01 -2.6733e+00 1.7029e+01 -2.7169e+00 1.7304e+01 -2.7612e+00 1.7584e+01 -2.8062e+00 1.7867e+01 -2.8520e+00 1.8156e+01 -2.8985e+00 1.8448e+01 -2.9457e+00 1.8746e+01 -2.9938e+00 1.9048e+01 -3.0426e+00 1.9354e+01 -3.0922e+00 1.9666e+01 -3.1426e+00 1.9982e+01 -3.1939e+00 2.0304e+01 -3.2460e+00 2.0630e+01 -3.2989e+00 2.0962e+01 -3.3527e+00 2.1299e+01 -3.4074e+00 2.1640e+01 -3.4629e+00 2.1988e+01 -3.5194e+00 2.2340e+01 -3.5768e+00 2.2699e+01 -3.6351e+00 2.3062e+01 -3.6944e+00 2.3432e+01 -3.7546e+00 2.3807e+01 -3.8159e+00 2.4188e+01 -3.8781e+00 2.4575e+01 -3.9413e+00 2.4967e+01 -4.0056e+00 2.5366e+01 -4.0709e+00 2.5771e+01 -4.1373e+00 2.6182e+01 -4.2048e+00 2.6600e+01 -4.2733e+00 2.7023e+01 -4.3430e+00 2.7454e+01 -4.4138e+00 2.7890e+01 -4.4858e+00 2.8334e+01 -4.5589e+00 2.8784e+01 -4.6333e+00 2.9241e+01 -4.7088e+00 2.9705e+01 -4.7856e+00 3.0176e+01 -4.8637e+00 3.0653e+01 -4.9430e+00 3.1139e+01 -5.0236e+00 3.1631e+01 -5.1055e+00 3.2130e+01 -5.1888e+00 3.2637e+01 -5.2734e+00 3.3152e+01 -5.3594e+00 3.3674e+01 -5.4468e+00 3.4204e+01 -5.5356e+00 3.4741e+01 -5.6258e+00 3.5287e+01 -5.7176e+00 3.5840e+01 -5.8108e+00 3.6401e+01 -5.9056e+00 3.6971e+01 -6.0019e+00 3.7548e+01 -6.0997e+00 3.8134e+01 -6.1992e+00 3.8728e+01 +wl n +2.4797e-01 1.4943e+00 +2.5201e-01 1.5158e+00 +2.5612e-01 1.5382e+00 +2.6030e-01 1.5611e+00 +2.6454e-01 1.5844e+00 +2.6886e-01 1.6078e+00 +2.7324e-01 1.6306e+00 +2.7770e-01 1.6527e+00 +2.8222e-01 1.6733e+00 +2.8683e-01 1.6921e+00 +2.9150e-01 1.7085e+00 +2.9626e-01 1.7220e+00 +3.0109e-01 1.7322e+00 +3.0600e-01 1.7387e+00 +3.1099e-01 1.7411e+00 +3.1606e-01 1.7391e+00 +3.2121e-01 1.7327e+00 +3.2645e-01 1.7219e+00 +3.3177e-01 1.7071e+00 +3.3718e-01 1.6887e+00 +3.4268e-01 1.6677e+00 +3.4827e-01 1.6452e+00 +3.5395e-01 1.6224e+00 +3.5972e-01 1.6006e+00 +3.6559e-01 1.5810e+00 +3.7155e-01 1.5645e+00 +3.7761e-01 1.5515e+00 +3.8377e-01 1.5419e+00 +3.9002e-01 1.5351e+00 +3.9638e-01 1.5301e+00 +4.0285e-01 1.5255e+00 +4.0942e-01 1.5196e+00 +4.1609e-01 1.5107e+00 +4.2288e-01 1.4971e+00 +4.2977e-01 1.4771e+00 +4.3678e-01 1.4493e+00 +4.4390e-01 1.4126e+00 +4.5114e-01 1.3661e+00 +4.5850e-01 1.3095e+00 +4.6598e-01 1.2427e+00 +4.7358e-01 1.1664e+00 +4.8130e-01 1.0821e+00 +4.8915e-01 9.9182e-01 +4.9712e-01 8.9849e-01 +5.0523e-01 8.0543e-01 +5.1347e-01 7.1590e-01 +5.2184e-01 6.3260e-01 +5.3035e-01 5.5731e-01 +5.3900e-01 4.9085e-01 +5.4779e-01 4.3326e-01 +5.5672e-01 3.8405e-01 +5.6580e-01 3.4242e-01 +5.7503e-01 3.0751e-01 +5.8440e-01 2.7843e-01 +5.9393e-01 2.5437e-01 +6.0362e-01 2.3457e-01 +6.1346e-01 2.1841e-01 +6.2346e-01 2.0533e-01 +6.3363e-01 1.9487e-01 +6.4396e-01 1.8664e-01 +6.5446e-01 1.8030e-01 +6.6514e-01 1.7558e-01 +6.7598e-01 1.7227e-01 +6.8701e-01 1.7016e-01 +6.9821e-01 1.6911e-01 +7.0959e-01 1.6897e-01 +7.2117e-01 1.6966e-01 +7.3292e-01 1.7107e-01 +7.4488e-01 1.7313e-01 +7.5702e-01 1.7577e-01 +7.6937e-01 1.7895e-01 +7.8191e-01 1.8262e-01 +7.9466e-01 1.8675e-01 +8.0762e-01 1.9129e-01 +8.2079e-01 1.9621e-01 +8.3418e-01 2.0151e-01 +8.4778e-01 2.0715e-01 +8.6160e-01 2.1311e-01 +8.7565e-01 2.1938e-01 +8.8993e-01 2.2594e-01 +9.0445e-01 2.3278e-01 +9.1919e-01 2.3989e-01 +9.3418e-01 2.4725e-01 +9.4942e-01 2.5486e-01 +9.6490e-01 2.6271e-01 +9.8063e-01 2.7079e-01 +9.9662e-01 2.7909e-01 +1.0129e+00 2.8761e-01 +1.0294e+00 2.9634e-01 +1.0462e+00 3.0528e-01 +1.0632e+00 3.1442e-01 +1.0806e+00 3.2376e-01 +1.0982e+00 3.3329e-01 +1.1161e+00 3.4302e-01 +1.1343e+00 3.5293e-01 +1.1528e+00 3.6304e-01 +1.1716e+00 3.7334e-01 +1.1907e+00 3.8382e-01 +1.2101e+00 3.9449e-01 +1.2299e+00 4.0535e-01 +1.2499e+00 4.1641e-01 +1.2703e+00 4.2765e-01 +1.2910e+00 4.3909e-01 +1.3121e+00 4.5072e-01 +1.3335e+00 4.6256e-01 +1.3552e+00 4.7459e-01 +1.3773e+00 4.8684e-01 +1.3998e+00 4.9930e-01 +1.4226e+00 5.1198e-01 +1.4458e+00 5.2488e-01 +1.4694e+00 5.3801e-01 +1.4933e+00 5.5138e-01 +1.5177e+00 5.6499e-01 +1.5424e+00 5.7885e-01 +1.5676e+00 5.9297e-01 +1.5931e+00 6.0736e-01 +1.6191e+00 6.2203e-01 +1.6455e+00 6.3699e-01 +1.6723e+00 6.5224e-01 +1.6996e+00 6.6780e-01 +1.7273e+00 6.8368e-01 +1.7555e+00 6.9989e-01 +1.7841e+00 7.1645e-01 +1.8132e+00 7.3336e-01 +1.8428e+00 7.5065e-01 +1.8728e+00 7.6831e-01 +1.9034e+00 7.8638e-01 +1.9344e+00 8.0486e-01 +1.9660e+00 8.2377e-01 +1.9980e+00 8.4313e-01 +2.0306e+00 8.6294e-01 +2.0637e+00 8.8324e-01 +2.0974e+00 9.0404e-01 +2.1316e+00 9.2535e-01 +2.1663e+00 9.4720e-01 +2.2016e+00 9.6961e-01 +2.2375e+00 9.9259e-01 +2.2740e+00 1.0162e+00 +2.3111e+00 1.0404e+00 +2.3488e+00 1.0652e+00 +2.3871e+00 1.0907e+00 +2.4260e+00 1.1169e+00 +2.4656e+00 1.1438e+00 +2.5058e+00 1.1715e+00 +2.5467e+00 1.1999e+00 +2.5882e+00 1.2291e+00 +2.6304e+00 1.2592e+00 +2.6733e+00 1.2901e+00 +2.7169e+00 1.3219e+00 +2.7612e+00 1.3545e+00 +2.8062e+00 1.3882e+00 +2.8520e+00 1.4228e+00 +2.8985e+00 1.4584e+00 +2.9457e+00 1.4951e+00 +2.9938e+00 1.5328e+00 +3.0426e+00 1.5717e+00 +3.0922e+00 1.6117e+00 +3.1426e+00 1.6529e+00 +3.1939e+00 1.6954e+00 +3.2460e+00 1.7391e+00 +3.2989e+00 1.7842e+00 +3.3527e+00 1.8306e+00 +3.4074e+00 1.8784e+00 +3.4629e+00 1.9277e+00 +3.5194e+00 1.9785e+00 +3.5768e+00 2.0308e+00 +3.6351e+00 2.0847e+00 +3.6944e+00 2.1403e+00 +3.7546e+00 2.1976e+00 +3.8159e+00 2.2566e+00 +3.8781e+00 2.3175e+00 +3.9413e+00 2.3802e+00 +4.0056e+00 2.4449e+00 +4.0709e+00 2.5116e+00 +4.1373e+00 2.5803e+00 +4.2048e+00 2.6511e+00 +4.2733e+00 2.7242e+00 +4.3430e+00 2.7995e+00 +4.4138e+00 2.8771e+00 +4.4858e+00 2.9572e+00 +4.5589e+00 3.0397e+00 +4.6333e+00 3.1247e+00 +4.7088e+00 3.2124e+00 +4.7856e+00 3.3028e+00 +4.8637e+00 3.3960e+00 +4.9430e+00 3.4921e+00 +5.0236e+00 3.5911e+00 +5.1055e+00 3.6932e+00 +5.1888e+00 3.7985e+00 +5.2734e+00 3.9069e+00 +5.3594e+00 4.0187e+00 +5.4468e+00 4.1340e+00 +5.5356e+00 4.2528e+00 +5.6258e+00 4.3752e+00 +5.7176e+00 4.5013e+00 +5.8108e+00 4.6314e+00 +5.9056e+00 4.7653e+00 +6.0019e+00 4.9034e+00 +6.0997e+00 5.0456e+00 +6.1992e+00 5.1922e+00 + +wl k +2.4797e-01 1.9575e+00 +2.5201e-01 1.9594e+00 +2.5612e-01 1.9605e+00 +2.6030e-01 1.9604e+00 +2.6454e-01 1.9587e+00 +2.6886e-01 1.9551e+00 +2.7324e-01 1.9494e+00 +2.7770e-01 1.9414e+00 +2.8222e-01 1.9312e+00 +2.8683e-01 1.9188e+00 +2.9150e-01 1.9042e+00 +2.9626e-01 1.8879e+00 +3.0109e-01 1.8700e+00 +3.0600e-01 1.8512e+00 +3.1099e-01 1.8319e+00 +3.1606e-01 1.8128e+00 +3.2121e-01 1.7946e+00 +3.2645e-01 1.7784e+00 +3.3177e-01 1.7648e+00 +3.3718e-01 1.7548e+00 +3.4268e-01 1.7490e+00 +3.4827e-01 1.7479e+00 +3.5395e-01 1.7516e+00 +3.5972e-01 1.7597e+00 +3.6559e-01 1.7714e+00 +3.7155e-01 1.7856e+00 +3.7761e-01 1.8007e+00 +3.8377e-01 1.8152e+00 +3.9002e-01 1.8276e+00 +3.9638e-01 1.8366e+00 +4.0285e-01 1.8413e+00 +4.0942e-01 1.8411e+00 +4.1609e-01 1.8362e+00 +4.2288e-01 1.8268e+00 +4.2977e-01 1.8140e+00 +4.3678e-01 1.7988e+00 +4.4390e-01 1.7829e+00 +4.5114e-01 1.7681e+00 +4.5850e-01 1.7567e+00 +4.6598e-01 1.7509e+00 +4.7358e-01 1.7532e+00 +4.8130e-01 1.7661e+00 +4.8915e-01 1.7916e+00 +4.9712e-01 1.8312e+00 +5.0523e-01 1.8852e+00 +5.1347e-01 1.9530e+00 +5.2184e-01 2.0328e+00 +5.3035e-01 2.1222e+00 +5.3900e-01 2.2188e+00 +5.4779e-01 2.3201e+00 +5.5672e-01 2.4245e+00 +5.6580e-01 2.5305e+00 +5.7503e-01 2.6370e+00 +5.8440e-01 2.7434e+00 +5.9393e-01 2.8493e+00 +6.0362e-01 2.9545e+00 +6.1346e-01 3.0587e+00 +6.2346e-01 3.1621e+00 +6.3363e-01 3.2645e+00 +6.4396e-01 3.3662e+00 +6.5446e-01 3.4671e+00 +6.6514e-01 3.5675e+00 +6.7598e-01 3.6674e+00 +6.8701e-01 3.7669e+00 +6.9821e-01 3.8661e+00 +7.0959e-01 3.9653e+00 +7.2117e-01 4.0644e+00 +7.3292e-01 4.1635e+00 +7.4488e-01 4.2629e+00 +7.5702e-01 4.3625e+00 +7.6937e-01 4.4624e+00 +7.8191e-01 4.5627e+00 +7.9466e-01 4.6635e+00 +8.0762e-01 4.7649e+00 +8.2079e-01 4.8669e+00 +8.3418e-01 4.9695e+00 +8.4778e-01 5.0729e+00 +8.6160e-01 5.1770e+00 +8.7565e-01 5.2820e+00 +8.8993e-01 5.3878e+00 +9.0445e-01 5.4946e+00 +9.1919e-01 5.6024e+00 +9.3418e-01 5.7111e+00 +9.4942e-01 5.8210e+00 +9.6490e-01 5.9319e+00 +9.8063e-01 6.0440e+00 +9.9662e-01 6.1573e+00 +1.0129e+00 6.2718e+00 +1.0294e+00 6.3875e+00 +1.0462e+00 6.5046e+00 +1.0632e+00 6.6231e+00 +1.0806e+00 6.7429e+00 +1.0982e+00 6.8642e+00 +1.1161e+00 6.9869e+00 +1.1343e+00 7.1112e+00 +1.1528e+00 7.2370e+00 +1.1716e+00 7.3644e+00 +1.1907e+00 7.4935e+00 +1.2101e+00 7.6242e+00 +1.2299e+00 7.7566e+00 +1.2499e+00 7.8908e+00 +1.2703e+00 8.0268e+00 +1.2910e+00 8.1646e+00 +1.3121e+00 8.3044e+00 +1.3335e+00 8.4460e+00 +1.3552e+00 8.5896e+00 +1.3773e+00 8.7353e+00 +1.3998e+00 8.8829e+00 +1.4226e+00 9.0327e+00 +1.4458e+00 9.1847e+00 +1.4694e+00 9.3388e+00 +1.4933e+00 9.4951e+00 +1.5177e+00 9.6538e+00 +1.5424e+00 9.8147e+00 +1.5676e+00 9.9780e+00 +1.5931e+00 1.0144e+01 +1.6191e+00 1.0312e+01 +1.6455e+00 1.0483e+01 +1.6723e+00 1.0656e+01 +1.6996e+00 1.0832e+01 +1.7273e+00 1.1010e+01 +1.7555e+00 1.1192e+01 +1.7841e+00 1.1376e+01 +1.8132e+00 1.1563e+01 +1.8428e+00 1.1752e+01 +1.8728e+00 1.1945e+01 +1.9034e+00 1.2140e+01 +1.9344e+00 1.2339e+01 +1.9660e+00 1.2541e+01 +1.9980e+00 1.2745e+01 +2.0306e+00 1.2953e+01 +2.0637e+00 1.3164e+01 +2.0974e+00 1.3379e+01 +2.1316e+00 1.3597e+01 +2.1663e+00 1.3818e+01 +2.2016e+00 1.4042e+01 +2.2375e+00 1.4271e+01 +2.2740e+00 1.4502e+01 +2.3111e+00 1.4738e+01 +2.3488e+00 1.4977e+01 +2.3871e+00 1.5219e+01 +2.4260e+00 1.5466e+01 +2.4656e+00 1.5717e+01 +2.5058e+00 1.5971e+01 +2.5467e+00 1.6229e+01 +2.5882e+00 1.6492e+01 +2.6304e+00 1.6758e+01 +2.6733e+00 1.7029e+01 +2.7169e+00 1.7304e+01 +2.7612e+00 1.7584e+01 +2.8062e+00 1.7867e+01 +2.8520e+00 1.8156e+01 +2.8985e+00 1.8448e+01 +2.9457e+00 1.8746e+01 +2.9938e+00 1.9048e+01 +3.0426e+00 1.9354e+01 +3.0922e+00 1.9666e+01 +3.1426e+00 1.9982e+01 +3.1939e+00 2.0304e+01 +3.2460e+00 2.0630e+01 +3.2989e+00 2.0962e+01 +3.3527e+00 2.1299e+01 +3.4074e+00 2.1640e+01 +3.4629e+00 2.1988e+01 +3.5194e+00 2.2340e+01 +3.5768e+00 2.2699e+01 +3.6351e+00 2.3062e+01 +3.6944e+00 2.3432e+01 +3.7546e+00 2.3807e+01 +3.8159e+00 2.4188e+01 +3.8781e+00 2.4575e+01 +3.9413e+00 2.4967e+01 +4.0056e+00 2.5366e+01 +4.0709e+00 2.5771e+01 +4.1373e+00 2.6182e+01 +4.2048e+00 2.6600e+01 +4.2733e+00 2.7023e+01 +4.3430e+00 2.7454e+01 +4.4138e+00 2.7890e+01 +4.4858e+00 2.8334e+01 +4.5589e+00 2.8784e+01 +4.6333e+00 2.9241e+01 +4.7088e+00 2.9705e+01 +4.7856e+00 3.0176e+01 +4.8637e+00 3.0653e+01 +4.9430e+00 3.1139e+01 +5.0236e+00 3.1631e+01 +5.1055e+00 3.2130e+01 +5.1888e+00 3.2637e+01 +5.2734e+00 3.3152e+01 +5.3594e+00 3.3674e+01 +5.4468e+00 3.4204e+01 +5.5356e+00 3.4741e+01 +5.6258e+00 3.5287e+01 +5.7176e+00 3.5840e+01 +5.8108e+00 3.6401e+01 +5.9056e+00 3.6971e+01 +6.0019e+00 3.7548e+01 +6.0997e+00 3.8134e+01 +6.1992e+00 3.8728e+01 diff --git a/tools/specular-color/data/iron.txt b/tools/specular-color/data/iron.txt index e9a6f921db..488c04fc18 100644 --- a/tools/specular-color/data/iron.txt +++ b/tools/specular-color/data/iron.txt @@ -1,101 +1,101 @@ -wl n -0.188 1.29 -0.192 1.35 -0.195 1.42 -0.199 1.45 -0.203 1.47 -0.207 1.49 -0.212 1.47 -0.216 1.47 -0.221 1.47 -0.226 1.47 -0.231 1.48 -0.237 1.48 -0.243 1.50 -0.249 1.51 -0.255 1.53 -0.262 1.56 -0.269 1.59 -0.276 1.62 -0.284 1.64 -0.292 1.65 -0.301 1.67 -0.311 1.69 -0.320 1.74 -0.332 1.78 -0.342 1.85 -0.354 1.93 -0.368 2.02 -0.381 2.12 -0.397 2.24 -0.413 2.35 -0.431 2.48 -0.451 2.59 -0.471 2.67 -0.496 2.74 -0.521 2.86 -0.549 2.95 -0.582 2.94 -0.617 2.88 -0.659 2.92 -0.704 2.86 -0.756 2.87 -0.821 2.94 -0.892 2.96 -0.984 2.92 -1.088 2.97 -1.216 3.03 -1.393 3.09 -1.610 3.11 -1.937 3.17 - -wl k -0.188 1.35 -0.192 1.37 -0.195 1.39 -0.199 1.40 -0.203 1.40 -0.207 1.41 -0.212 1.43 -0.216 1.44 -0.221 1.47 -0.226 1.49 -0.231 1.53 -0.237 1.57 -0.243 1.61 -0.249 1.66 -0.255 1.70 -0.262 1.75 -0.269 1.79 -0.276 1.84 -0.284 1.88 -0.292 1.94 -0.301 2.00 -0.311 2.06 -0.320 2.12 -0.332 2.19 -0.342 2.27 -0.354 2.35 -0.368 2.43 -0.381 2.50 -0.397 2.58 -0.413 2.65 -0.431 2.71 -0.451 2.77 -0.471 2.82 -0.496 2.88 -0.521 2.91 -0.549 2.93 -0.582 2.99 -0.617 3.05 -0.659 3.10 -0.704 3.19 -0.756 3.28 -0.821 3.39 -0.892 3.56 -0.984 3.79 -1.088 4.06 -1.216 4.39 -1.393 4.83 -1.610 5.39 -1.937 6.12 +wl n +0.188 1.29 +0.192 1.35 +0.195 1.42 +0.199 1.45 +0.203 1.47 +0.207 1.49 +0.212 1.47 +0.216 1.47 +0.221 1.47 +0.226 1.47 +0.231 1.48 +0.237 1.48 +0.243 1.50 +0.249 1.51 +0.255 1.53 +0.262 1.56 +0.269 1.59 +0.276 1.62 +0.284 1.64 +0.292 1.65 +0.301 1.67 +0.311 1.69 +0.320 1.74 +0.332 1.78 +0.342 1.85 +0.354 1.93 +0.368 2.02 +0.381 2.12 +0.397 2.24 +0.413 2.35 +0.431 2.48 +0.451 2.59 +0.471 2.67 +0.496 2.74 +0.521 2.86 +0.549 2.95 +0.582 2.94 +0.617 2.88 +0.659 2.92 +0.704 2.86 +0.756 2.87 +0.821 2.94 +0.892 2.96 +0.984 2.92 +1.088 2.97 +1.216 3.03 +1.393 3.09 +1.610 3.11 +1.937 3.17 + +wl k +0.188 1.35 +0.192 1.37 +0.195 1.39 +0.199 1.40 +0.203 1.40 +0.207 1.41 +0.212 1.43 +0.216 1.44 +0.221 1.47 +0.226 1.49 +0.231 1.53 +0.237 1.57 +0.243 1.61 +0.249 1.66 +0.255 1.70 +0.262 1.75 +0.269 1.79 +0.276 1.84 +0.284 1.88 +0.292 1.94 +0.301 2.00 +0.311 2.06 +0.320 2.12 +0.332 2.19 +0.342 2.27 +0.354 2.35 +0.368 2.43 +0.381 2.50 +0.397 2.58 +0.413 2.65 +0.431 2.71 +0.451 2.77 +0.471 2.82 +0.496 2.88 +0.521 2.91 +0.549 2.93 +0.582 2.99 +0.617 3.05 +0.659 3.10 +0.704 3.19 +0.756 3.28 +0.821 3.39 +0.892 3.56 +0.984 3.79 +1.088 4.06 +1.216 4.39 +1.393 4.83 +1.610 5.39 +1.937 6.12 diff --git a/tools/specular-color/data/platinum.txt b/tools/specular-color/data/platinum.txt index 9339af8de3..1ddeee4cee 100644 --- a/tools/specular-color/data/platinum.txt +++ b/tools/specular-color/data/platinum.txt @@ -1,403 +1,403 @@ -wl n -2.4797e-01 1.4979e+00 -2.5289e-01 1.4800e+00 -2.5791e-01 1.4657e+00 -2.6303e-01 1.4552e+00 -2.6825e-01 1.4484e+00 -2.7358e-01 1.4451e+00 -2.7901e-01 1.4452e+00 -2.8455e-01 1.4483e+00 -2.9020e-01 1.4543e+00 -2.9596e-01 1.4628e+00 -3.0184e-01 1.4734e+00 -3.0783e-01 1.4860e+00 -3.1394e-01 1.5003e+00 -3.2017e-01 1.5158e+00 -3.2653e-01 1.5325e+00 -3.3301e-01 1.5501e+00 -3.3962e-01 1.5683e+00 -3.4637e-01 1.5870e+00 -3.5324e-01 1.6061e+00 -3.6025e-01 1.6254e+00 -3.6741e-01 1.6448e+00 -3.7470e-01 1.6643e+00 -3.8214e-01 1.6838e+00 -3.8973e-01 1.7032e+00 -3.9746e-01 1.7225e+00 -4.0535e-01 1.7418e+00 -4.1340e-01 1.7611e+00 -4.2161e-01 1.7804e+00 -4.2998e-01 1.7998e+00 -4.3852e-01 1.8193e+00 -4.4722e-01 1.8390e+00 -4.5610e-01 1.8591e+00 -4.6515e-01 1.8796e+00 -4.7439e-01 1.9006e+00 -4.8381e-01 1.9222e+00 -4.9341e-01 1.9445e+00 -5.0321e-01 1.9676e+00 -5.1320e-01 1.9916e+00 -5.2339e-01 2.0166e+00 -5.3378e-01 2.0427e+00 -5.4437e-01 2.0699e+00 -5.5518e-01 2.0984e+00 -5.6620e-01 2.1281e+00 -5.7744e-01 2.1592e+00 -5.8891e-01 2.1917e+00 -6.0060e-01 2.2255e+00 -6.1252e-01 2.2607e+00 -6.2468e-01 2.2974e+00 -6.3709e-01 2.3354e+00 -6.4973e-01 2.3748e+00 -6.6263e-01 2.4155e+00 -6.7579e-01 2.4574e+00 -6.8920e-01 2.5006e+00 -7.0289e-01 2.5449e+00 -7.1684e-01 2.5903e+00 -7.3107e-01 2.6366e+00 -7.4559e-01 2.6837e+00 -7.6039e-01 2.7317e+00 -7.7549e-01 2.7802e+00 -7.9088e-01 2.8294e+00 -8.0658e-01 2.8789e+00 -8.2260e-01 2.9288e+00 -8.3893e-01 2.9790e+00 -8.5558e-01 3.0294e+00 -8.7257e-01 3.0800e+00 -8.8989e-01 3.1306e+00 -9.0756e-01 3.1814e+00 -9.2557e-01 3.2324e+00 -9.4395e-01 3.2835e+00 -9.6269e-01 3.3350e+00 -9.8180e-01 3.3871e+00 -1.0013e+00 3.4398e+00 -1.0212e+00 3.4934e+00 -1.0414e+00 3.5483e+00 -1.0621e+00 3.6049e+00 -1.0832e+00 3.6634e+00 -1.1047e+00 3.7245e+00 -1.1266e+00 3.7885e+00 -1.1490e+00 3.8560e+00 -1.1718e+00 3.9275e+00 -1.1951e+00 4.0035e+00 -1.2188e+00 4.0844e+00 -1.2430e+00 4.1706e+00 -1.2677e+00 4.2623e+00 -1.2929e+00 4.3595e+00 -1.3185e+00 4.4621e+00 -1.3447e+00 4.5695e+00 -1.3714e+00 4.6810e+00 -1.3986e+00 4.7954e+00 -1.4264e+00 4.9111e+00 -1.4547e+00 5.0264e+00 -1.4836e+00 5.1391e+00 -1.5130e+00 5.2469e+00 -1.5431e+00 5.3473e+00 -1.5737e+00 5.4381e+00 -1.6050e+00 5.5170e+00 -1.6368e+00 5.5820e+00 -1.6693e+00 5.6314e+00 -1.7025e+00 5.6640e+00 -1.7363e+00 5.6790e+00 -1.7707e+00 5.6762e+00 -1.8059e+00 5.6555e+00 -1.8417e+00 5.6176e+00 -1.8783e+00 5.5630e+00 -1.9156e+00 5.4931e+00 -1.9536e+00 5.4090e+00 -1.9924e+00 5.3124e+00 -2.0319e+00 5.2048e+00 -2.0723e+00 5.0880e+00 -2.1134e+00 4.9639e+00 -2.1554e+00 4.8343e+00 -2.1982e+00 4.7012e+00 -2.2418e+00 4.5664e+00 -2.2863e+00 4.4316e+00 -2.3317e+00 4.2987e+00 -2.3780e+00 4.1689e+00 -2.4252e+00 4.0438e+00 -2.4734e+00 3.9244e+00 -2.5225e+00 3.8115e+00 -2.5725e+00 3.7059e+00 -2.6236e+00 3.6080e+00 -2.6757e+00 3.5181e+00 -2.7288e+00 3.4365e+00 -2.7830e+00 3.3629e+00 -2.8383e+00 3.2975e+00 -2.8946e+00 3.2401e+00 -2.9521e+00 3.1904e+00 -3.0107e+00 3.1483e+00 -3.0704e+00 3.1134e+00 -3.1314e+00 3.0856e+00 -3.1936e+00 3.0646e+00 -3.2570e+00 3.0502e+00 -3.3216e+00 3.0421e+00 -3.3876e+00 3.0402e+00 -3.4548e+00 3.0442e+00 -3.5234e+00 3.0540e+00 -3.5934e+00 3.0694e+00 -3.6647e+00 3.0904e+00 -3.7375e+00 3.1168e+00 -3.8117e+00 3.1484e+00 -3.8873e+00 3.1853e+00 -3.9645e+00 3.2273e+00 -4.0432e+00 3.2744e+00 -4.1235e+00 3.3265e+00 -4.2053e+00 3.3837e+00 -4.2888e+00 3.4460e+00 -4.3740e+00 3.5132e+00 -4.4608e+00 3.5855e+00 -4.5494e+00 3.6628e+00 -4.6397e+00 3.7453e+00 -4.7318e+00 3.8328e+00 -4.8257e+00 3.9255e+00 -4.9216e+00 4.0235e+00 -5.0193e+00 4.1267e+00 -5.1189e+00 4.2353e+00 -5.2205e+00 4.3494e+00 -5.3242e+00 4.4690e+00 -5.4299e+00 4.5941e+00 -5.5377e+00 4.7250e+00 -5.6476e+00 4.8617e+00 -5.7597e+00 5.0042e+00 -5.8741e+00 5.1528e+00 -5.9907e+00 5.3076e+00 -6.1096e+00 5.4685e+00 -6.2309e+00 5.6358e+00 -6.3546e+00 5.8096e+00 -6.4808e+00 5.9901e+00 -6.6094e+00 6.1772e+00 -6.7407e+00 6.3713e+00 -6.8745e+00 6.5723e+00 -7.0110e+00 6.7805e+00 -7.1502e+00 6.9959e+00 -7.2921e+00 7.2188e+00 -7.4369e+00 7.4492e+00 -7.5845e+00 7.6874e+00 -7.7351e+00 7.9333e+00 -7.8887e+00 8.1872e+00 -8.0453e+00 8.4493e+00 -8.2050e+00 8.7195e+00 -8.3679e+00 8.9982e+00 -8.5340e+00 9.2853e+00 -8.7034e+00 9.5811e+00 -8.8762e+00 9.8857e+00 -9.0524e+00 1.0199e+01 -9.2322e+00 1.0522e+01 -9.4154e+00 1.0853e+01 -9.6024e+00 1.1194e+01 -9.7930e+00 1.1544e+01 -9.9874e+00 1.1904e+01 -1.0186e+01 1.2273e+01 -1.0388e+01 1.2652e+01 -1.0594e+01 1.3041e+01 -1.0804e+01 1.3439e+01 -1.1019e+01 1.3848e+01 -1.1238e+01 1.4266e+01 -1.1461e+01 1.4694e+01 -1.1688e+01 1.5133e+01 -1.1920e+01 1.5582e+01 -1.2157e+01 1.6040e+01 -1.2398e+01 1.6510e+01 - -wl k -2.4797e-01 1.6810e+00 -2.5289e-01 1.7252e+00 -2.5791e-01 1.7720e+00 -2.6303e-01 1.8208e+00 -2.6825e-01 1.8711e+00 -2.7358e-01 1.9223e+00 -2.7901e-01 1.9740e+00 -2.8455e-01 2.0259e+00 -2.9020e-01 2.0776e+00 -2.9596e-01 2.1290e+00 -3.0184e-01 2.1798e+00 -3.0783e-01 2.2299e+00 -3.1394e-01 2.2793e+00 -3.2017e-01 2.3279e+00 -3.2653e-01 2.3758e+00 -3.3301e-01 2.4229e+00 -3.3962e-01 2.4694e+00 -3.4637e-01 2.5154e+00 -3.5324e-01 2.5610e+00 -3.6025e-01 2.6062e+00 -3.6741e-01 2.6513e+00 -3.7470e-01 2.6963e+00 -3.8214e-01 2.7414e+00 -3.8973e-01 2.7867e+00 -3.9746e-01 2.8323e+00 -4.0535e-01 2.8785e+00 -4.1340e-01 2.9253e+00 -4.2161e-01 2.9727e+00 -4.2998e-01 3.0210e+00 -4.3852e-01 3.0702e+00 -4.4722e-01 3.1204e+00 -4.5610e-01 3.1717e+00 -4.6515e-01 3.2240e+00 -4.7439e-01 3.2774e+00 -4.8381e-01 3.3320e+00 -4.9341e-01 3.3878e+00 -5.0321e-01 3.4447e+00 -5.1320e-01 3.5027e+00 -5.2339e-01 3.5618e+00 -5.3378e-01 3.6219e+00 -5.4437e-01 3.6830e+00 -5.5518e-01 3.7451e+00 -5.6620e-01 3.8079e+00 -5.7744e-01 3.8715e+00 -5.8891e-01 3.9358e+00 -6.0060e-01 4.0007e+00 -6.1252e-01 4.0661e+00 -6.2468e-01 4.1318e+00 -6.3709e-01 4.1979e+00 -6.4973e-01 4.2641e+00 -6.6263e-01 4.3305e+00 -6.7579e-01 4.3969e+00 -6.8920e-01 4.4633e+00 -7.0289e-01 4.5297e+00 -7.1684e-01 4.5958e+00 -7.3107e-01 4.6618e+00 -7.4559e-01 4.7276e+00 -7.6039e-01 4.7932e+00 -7.7549e-01 4.8586e+00 -7.9088e-01 4.9238e+00 -8.0658e-01 4.9889e+00 -8.2260e-01 5.0540e+00 -8.3893e-01 5.1191e+00 -8.5558e-01 5.1843e+00 -8.7257e-01 5.2498e+00 -8.8989e-01 5.3158e+00 -9.0756e-01 5.3823e+00 -9.2557e-01 5.4496e+00 -9.4395e-01 5.5178e+00 -9.6269e-01 5.5871e+00 -9.8180e-01 5.6577e+00 -1.0013e+00 5.7297e+00 -1.0212e+00 5.8033e+00 -1.0414e+00 5.8785e+00 -1.0621e+00 5.9554e+00 -1.0832e+00 6.0341e+00 -1.1047e+00 6.1143e+00 -1.1266e+00 6.1960e+00 -1.1490e+00 6.2788e+00 -1.1718e+00 6.3623e+00 -1.1951e+00 6.4460e+00 -1.2188e+00 6.5291e+00 -1.2430e+00 6.6107e+00 -1.2677e+00 6.6899e+00 -1.2929e+00 6.7653e+00 -1.3185e+00 6.8357e+00 -1.3447e+00 6.8998e+00 -1.3714e+00 6.9560e+00 -1.3986e+00 7.0031e+00 -1.4264e+00 7.0399e+00 -1.4547e+00 7.0655e+00 -1.4836e+00 7.0792e+00 -1.5130e+00 7.0810e+00 -1.5431e+00 7.0710e+00 -1.5737e+00 7.0502e+00 -1.6050e+00 7.0198e+00 -1.6368e+00 6.9815e+00 -1.6693e+00 6.9375e+00 -1.7025e+00 6.8899e+00 -1.7363e+00 6.8415e+00 -1.7707e+00 6.7946e+00 -1.8059e+00 6.7518e+00 -1.8417e+00 6.7156e+00 -1.8783e+00 6.6881e+00 -1.9156e+00 6.6714e+00 -1.9536e+00 6.6674e+00 -1.9924e+00 6.6776e+00 -2.0319e+00 6.7034e+00 -2.0723e+00 6.7457e+00 -2.1134e+00 6.8054e+00 -2.1554e+00 6.8830e+00 -2.1982e+00 6.9789e+00 -2.2418e+00 7.0930e+00 -2.2863e+00 7.2252e+00 -2.3317e+00 7.3748e+00 -2.3780e+00 7.5413e+00 -2.4252e+00 7.7237e+00 -2.4734e+00 7.9211e+00 -2.5225e+00 8.1325e+00 -2.5725e+00 8.3567e+00 -2.6236e+00 8.5928e+00 -2.6757e+00 8.8395e+00 -2.7288e+00 9.0961e+00 -2.7830e+00 9.3617e+00 -2.8383e+00 9.6354e+00 -2.8946e+00 9.9165e+00 -2.9521e+00 1.0205e+01 -3.0107e+00 1.0499e+01 -3.0704e+00 1.0800e+01 -3.1314e+00 1.1106e+01 -3.1936e+00 1.1417e+01 -3.2570e+00 1.1734e+01 -3.3216e+00 1.2056e+01 -3.3876e+00 1.2383e+01 -3.4548e+00 1.2714e+01 -3.5234e+00 1.3050e+01 -3.5934e+00 1.3391e+01 -3.6647e+00 1.3737e+01 -3.7375e+00 1.4087e+01 -3.8117e+00 1.4442e+01 -3.8873e+00 1.4801e+01 -3.9645e+00 1.5165e+01 -4.0432e+00 1.5534e+01 -4.1235e+00 1.5908e+01 -4.2053e+00 1.6287e+01 -4.2888e+00 1.6670e+01 -4.3740e+00 1.7059e+01 -4.4608e+00 1.7452e+01 -4.5494e+00 1.7851e+01 -4.6397e+00 1.8254e+01 -4.7318e+00 1.8663e+01 -4.8257e+00 1.9078e+01 -4.9216e+00 1.9497e+01 -5.0193e+00 1.9922e+01 -5.1189e+00 2.0352e+01 -5.2205e+00 2.0788e+01 -5.3242e+00 2.1229e+01 -5.4299e+00 2.1676e+01 -5.5377e+00 2.2129e+01 -5.6476e+00 2.2587e+01 -5.7597e+00 2.3051e+01 -5.8741e+00 2.3520e+01 -5.9907e+00 2.3996e+01 -6.1096e+00 2.4477e+01 -6.2309e+00 2.4964e+01 -6.3546e+00 2.5457e+01 -6.4808e+00 2.5955e+01 -6.6094e+00 2.6460e+01 -6.7407e+00 2.6970e+01 -6.8745e+00 2.7486e+01 -7.0110e+00 2.8008e+01 -7.1502e+00 2.8536e+01 -7.2921e+00 2.9070e+01 -7.4369e+00 2.9609e+01 -7.5845e+00 3.0154e+01 -7.7351e+00 3.0705e+01 -7.8887e+00 3.1262e+01 -8.0453e+00 3.1824e+01 -8.2050e+00 3.2392e+01 -8.3679e+00 3.2965e+01 -8.5340e+00 3.3544e+01 -8.7034e+00 3.4128e+01 -8.8762e+00 3.4717e+01 -9.0524e+00 3.5311e+01 -9.2322e+00 3.5911e+01 -9.4154e+00 3.6516e+01 -9.6024e+00 3.7125e+01 -9.7930e+00 3.7740e+01 -9.9874e+00 3.8359e+01 -1.0186e+01 3.8983e+01 -1.0388e+01 3.9611e+01 -1.0594e+01 4.0244e+01 -1.0804e+01 4.0881e+01 -1.1019e+01 4.1522e+01 -1.1238e+01 4.2167e+01 -1.1461e+01 4.2816e+01 -1.1688e+01 4.3469e+01 -1.1920e+01 4.4125e+01 -1.2157e+01 4.4785e+01 -1.2398e+01 4.5448e+01 +wl n +2.4797e-01 1.4979e+00 +2.5289e-01 1.4800e+00 +2.5791e-01 1.4657e+00 +2.6303e-01 1.4552e+00 +2.6825e-01 1.4484e+00 +2.7358e-01 1.4451e+00 +2.7901e-01 1.4452e+00 +2.8455e-01 1.4483e+00 +2.9020e-01 1.4543e+00 +2.9596e-01 1.4628e+00 +3.0184e-01 1.4734e+00 +3.0783e-01 1.4860e+00 +3.1394e-01 1.5003e+00 +3.2017e-01 1.5158e+00 +3.2653e-01 1.5325e+00 +3.3301e-01 1.5501e+00 +3.3962e-01 1.5683e+00 +3.4637e-01 1.5870e+00 +3.5324e-01 1.6061e+00 +3.6025e-01 1.6254e+00 +3.6741e-01 1.6448e+00 +3.7470e-01 1.6643e+00 +3.8214e-01 1.6838e+00 +3.8973e-01 1.7032e+00 +3.9746e-01 1.7225e+00 +4.0535e-01 1.7418e+00 +4.1340e-01 1.7611e+00 +4.2161e-01 1.7804e+00 +4.2998e-01 1.7998e+00 +4.3852e-01 1.8193e+00 +4.4722e-01 1.8390e+00 +4.5610e-01 1.8591e+00 +4.6515e-01 1.8796e+00 +4.7439e-01 1.9006e+00 +4.8381e-01 1.9222e+00 +4.9341e-01 1.9445e+00 +5.0321e-01 1.9676e+00 +5.1320e-01 1.9916e+00 +5.2339e-01 2.0166e+00 +5.3378e-01 2.0427e+00 +5.4437e-01 2.0699e+00 +5.5518e-01 2.0984e+00 +5.6620e-01 2.1281e+00 +5.7744e-01 2.1592e+00 +5.8891e-01 2.1917e+00 +6.0060e-01 2.2255e+00 +6.1252e-01 2.2607e+00 +6.2468e-01 2.2974e+00 +6.3709e-01 2.3354e+00 +6.4973e-01 2.3748e+00 +6.6263e-01 2.4155e+00 +6.7579e-01 2.4574e+00 +6.8920e-01 2.5006e+00 +7.0289e-01 2.5449e+00 +7.1684e-01 2.5903e+00 +7.3107e-01 2.6366e+00 +7.4559e-01 2.6837e+00 +7.6039e-01 2.7317e+00 +7.7549e-01 2.7802e+00 +7.9088e-01 2.8294e+00 +8.0658e-01 2.8789e+00 +8.2260e-01 2.9288e+00 +8.3893e-01 2.9790e+00 +8.5558e-01 3.0294e+00 +8.7257e-01 3.0800e+00 +8.8989e-01 3.1306e+00 +9.0756e-01 3.1814e+00 +9.2557e-01 3.2324e+00 +9.4395e-01 3.2835e+00 +9.6269e-01 3.3350e+00 +9.8180e-01 3.3871e+00 +1.0013e+00 3.4398e+00 +1.0212e+00 3.4934e+00 +1.0414e+00 3.5483e+00 +1.0621e+00 3.6049e+00 +1.0832e+00 3.6634e+00 +1.1047e+00 3.7245e+00 +1.1266e+00 3.7885e+00 +1.1490e+00 3.8560e+00 +1.1718e+00 3.9275e+00 +1.1951e+00 4.0035e+00 +1.2188e+00 4.0844e+00 +1.2430e+00 4.1706e+00 +1.2677e+00 4.2623e+00 +1.2929e+00 4.3595e+00 +1.3185e+00 4.4621e+00 +1.3447e+00 4.5695e+00 +1.3714e+00 4.6810e+00 +1.3986e+00 4.7954e+00 +1.4264e+00 4.9111e+00 +1.4547e+00 5.0264e+00 +1.4836e+00 5.1391e+00 +1.5130e+00 5.2469e+00 +1.5431e+00 5.3473e+00 +1.5737e+00 5.4381e+00 +1.6050e+00 5.5170e+00 +1.6368e+00 5.5820e+00 +1.6693e+00 5.6314e+00 +1.7025e+00 5.6640e+00 +1.7363e+00 5.6790e+00 +1.7707e+00 5.6762e+00 +1.8059e+00 5.6555e+00 +1.8417e+00 5.6176e+00 +1.8783e+00 5.5630e+00 +1.9156e+00 5.4931e+00 +1.9536e+00 5.4090e+00 +1.9924e+00 5.3124e+00 +2.0319e+00 5.2048e+00 +2.0723e+00 5.0880e+00 +2.1134e+00 4.9639e+00 +2.1554e+00 4.8343e+00 +2.1982e+00 4.7012e+00 +2.2418e+00 4.5664e+00 +2.2863e+00 4.4316e+00 +2.3317e+00 4.2987e+00 +2.3780e+00 4.1689e+00 +2.4252e+00 4.0438e+00 +2.4734e+00 3.9244e+00 +2.5225e+00 3.8115e+00 +2.5725e+00 3.7059e+00 +2.6236e+00 3.6080e+00 +2.6757e+00 3.5181e+00 +2.7288e+00 3.4365e+00 +2.7830e+00 3.3629e+00 +2.8383e+00 3.2975e+00 +2.8946e+00 3.2401e+00 +2.9521e+00 3.1904e+00 +3.0107e+00 3.1483e+00 +3.0704e+00 3.1134e+00 +3.1314e+00 3.0856e+00 +3.1936e+00 3.0646e+00 +3.2570e+00 3.0502e+00 +3.3216e+00 3.0421e+00 +3.3876e+00 3.0402e+00 +3.4548e+00 3.0442e+00 +3.5234e+00 3.0540e+00 +3.5934e+00 3.0694e+00 +3.6647e+00 3.0904e+00 +3.7375e+00 3.1168e+00 +3.8117e+00 3.1484e+00 +3.8873e+00 3.1853e+00 +3.9645e+00 3.2273e+00 +4.0432e+00 3.2744e+00 +4.1235e+00 3.3265e+00 +4.2053e+00 3.3837e+00 +4.2888e+00 3.4460e+00 +4.3740e+00 3.5132e+00 +4.4608e+00 3.5855e+00 +4.5494e+00 3.6628e+00 +4.6397e+00 3.7453e+00 +4.7318e+00 3.8328e+00 +4.8257e+00 3.9255e+00 +4.9216e+00 4.0235e+00 +5.0193e+00 4.1267e+00 +5.1189e+00 4.2353e+00 +5.2205e+00 4.3494e+00 +5.3242e+00 4.4690e+00 +5.4299e+00 4.5941e+00 +5.5377e+00 4.7250e+00 +5.6476e+00 4.8617e+00 +5.7597e+00 5.0042e+00 +5.8741e+00 5.1528e+00 +5.9907e+00 5.3076e+00 +6.1096e+00 5.4685e+00 +6.2309e+00 5.6358e+00 +6.3546e+00 5.8096e+00 +6.4808e+00 5.9901e+00 +6.6094e+00 6.1772e+00 +6.7407e+00 6.3713e+00 +6.8745e+00 6.5723e+00 +7.0110e+00 6.7805e+00 +7.1502e+00 6.9959e+00 +7.2921e+00 7.2188e+00 +7.4369e+00 7.4492e+00 +7.5845e+00 7.6874e+00 +7.7351e+00 7.9333e+00 +7.8887e+00 8.1872e+00 +8.0453e+00 8.4493e+00 +8.2050e+00 8.7195e+00 +8.3679e+00 8.9982e+00 +8.5340e+00 9.2853e+00 +8.7034e+00 9.5811e+00 +8.8762e+00 9.8857e+00 +9.0524e+00 1.0199e+01 +9.2322e+00 1.0522e+01 +9.4154e+00 1.0853e+01 +9.6024e+00 1.1194e+01 +9.7930e+00 1.1544e+01 +9.9874e+00 1.1904e+01 +1.0186e+01 1.2273e+01 +1.0388e+01 1.2652e+01 +1.0594e+01 1.3041e+01 +1.0804e+01 1.3439e+01 +1.1019e+01 1.3848e+01 +1.1238e+01 1.4266e+01 +1.1461e+01 1.4694e+01 +1.1688e+01 1.5133e+01 +1.1920e+01 1.5582e+01 +1.2157e+01 1.6040e+01 +1.2398e+01 1.6510e+01 + +wl k +2.4797e-01 1.6810e+00 +2.5289e-01 1.7252e+00 +2.5791e-01 1.7720e+00 +2.6303e-01 1.8208e+00 +2.6825e-01 1.8711e+00 +2.7358e-01 1.9223e+00 +2.7901e-01 1.9740e+00 +2.8455e-01 2.0259e+00 +2.9020e-01 2.0776e+00 +2.9596e-01 2.1290e+00 +3.0184e-01 2.1798e+00 +3.0783e-01 2.2299e+00 +3.1394e-01 2.2793e+00 +3.2017e-01 2.3279e+00 +3.2653e-01 2.3758e+00 +3.3301e-01 2.4229e+00 +3.3962e-01 2.4694e+00 +3.4637e-01 2.5154e+00 +3.5324e-01 2.5610e+00 +3.6025e-01 2.6062e+00 +3.6741e-01 2.6513e+00 +3.7470e-01 2.6963e+00 +3.8214e-01 2.7414e+00 +3.8973e-01 2.7867e+00 +3.9746e-01 2.8323e+00 +4.0535e-01 2.8785e+00 +4.1340e-01 2.9253e+00 +4.2161e-01 2.9727e+00 +4.2998e-01 3.0210e+00 +4.3852e-01 3.0702e+00 +4.4722e-01 3.1204e+00 +4.5610e-01 3.1717e+00 +4.6515e-01 3.2240e+00 +4.7439e-01 3.2774e+00 +4.8381e-01 3.3320e+00 +4.9341e-01 3.3878e+00 +5.0321e-01 3.4447e+00 +5.1320e-01 3.5027e+00 +5.2339e-01 3.5618e+00 +5.3378e-01 3.6219e+00 +5.4437e-01 3.6830e+00 +5.5518e-01 3.7451e+00 +5.6620e-01 3.8079e+00 +5.7744e-01 3.8715e+00 +5.8891e-01 3.9358e+00 +6.0060e-01 4.0007e+00 +6.1252e-01 4.0661e+00 +6.2468e-01 4.1318e+00 +6.3709e-01 4.1979e+00 +6.4973e-01 4.2641e+00 +6.6263e-01 4.3305e+00 +6.7579e-01 4.3969e+00 +6.8920e-01 4.4633e+00 +7.0289e-01 4.5297e+00 +7.1684e-01 4.5958e+00 +7.3107e-01 4.6618e+00 +7.4559e-01 4.7276e+00 +7.6039e-01 4.7932e+00 +7.7549e-01 4.8586e+00 +7.9088e-01 4.9238e+00 +8.0658e-01 4.9889e+00 +8.2260e-01 5.0540e+00 +8.3893e-01 5.1191e+00 +8.5558e-01 5.1843e+00 +8.7257e-01 5.2498e+00 +8.8989e-01 5.3158e+00 +9.0756e-01 5.3823e+00 +9.2557e-01 5.4496e+00 +9.4395e-01 5.5178e+00 +9.6269e-01 5.5871e+00 +9.8180e-01 5.6577e+00 +1.0013e+00 5.7297e+00 +1.0212e+00 5.8033e+00 +1.0414e+00 5.8785e+00 +1.0621e+00 5.9554e+00 +1.0832e+00 6.0341e+00 +1.1047e+00 6.1143e+00 +1.1266e+00 6.1960e+00 +1.1490e+00 6.2788e+00 +1.1718e+00 6.3623e+00 +1.1951e+00 6.4460e+00 +1.2188e+00 6.5291e+00 +1.2430e+00 6.6107e+00 +1.2677e+00 6.6899e+00 +1.2929e+00 6.7653e+00 +1.3185e+00 6.8357e+00 +1.3447e+00 6.8998e+00 +1.3714e+00 6.9560e+00 +1.3986e+00 7.0031e+00 +1.4264e+00 7.0399e+00 +1.4547e+00 7.0655e+00 +1.4836e+00 7.0792e+00 +1.5130e+00 7.0810e+00 +1.5431e+00 7.0710e+00 +1.5737e+00 7.0502e+00 +1.6050e+00 7.0198e+00 +1.6368e+00 6.9815e+00 +1.6693e+00 6.9375e+00 +1.7025e+00 6.8899e+00 +1.7363e+00 6.8415e+00 +1.7707e+00 6.7946e+00 +1.8059e+00 6.7518e+00 +1.8417e+00 6.7156e+00 +1.8783e+00 6.6881e+00 +1.9156e+00 6.6714e+00 +1.9536e+00 6.6674e+00 +1.9924e+00 6.6776e+00 +2.0319e+00 6.7034e+00 +2.0723e+00 6.7457e+00 +2.1134e+00 6.8054e+00 +2.1554e+00 6.8830e+00 +2.1982e+00 6.9789e+00 +2.2418e+00 7.0930e+00 +2.2863e+00 7.2252e+00 +2.3317e+00 7.3748e+00 +2.3780e+00 7.5413e+00 +2.4252e+00 7.7237e+00 +2.4734e+00 7.9211e+00 +2.5225e+00 8.1325e+00 +2.5725e+00 8.3567e+00 +2.6236e+00 8.5928e+00 +2.6757e+00 8.8395e+00 +2.7288e+00 9.0961e+00 +2.7830e+00 9.3617e+00 +2.8383e+00 9.6354e+00 +2.8946e+00 9.9165e+00 +2.9521e+00 1.0205e+01 +3.0107e+00 1.0499e+01 +3.0704e+00 1.0800e+01 +3.1314e+00 1.1106e+01 +3.1936e+00 1.1417e+01 +3.2570e+00 1.1734e+01 +3.3216e+00 1.2056e+01 +3.3876e+00 1.2383e+01 +3.4548e+00 1.2714e+01 +3.5234e+00 1.3050e+01 +3.5934e+00 1.3391e+01 +3.6647e+00 1.3737e+01 +3.7375e+00 1.4087e+01 +3.8117e+00 1.4442e+01 +3.8873e+00 1.4801e+01 +3.9645e+00 1.5165e+01 +4.0432e+00 1.5534e+01 +4.1235e+00 1.5908e+01 +4.2053e+00 1.6287e+01 +4.2888e+00 1.6670e+01 +4.3740e+00 1.7059e+01 +4.4608e+00 1.7452e+01 +4.5494e+00 1.7851e+01 +4.6397e+00 1.8254e+01 +4.7318e+00 1.8663e+01 +4.8257e+00 1.9078e+01 +4.9216e+00 1.9497e+01 +5.0193e+00 1.9922e+01 +5.1189e+00 2.0352e+01 +5.2205e+00 2.0788e+01 +5.3242e+00 2.1229e+01 +5.4299e+00 2.1676e+01 +5.5377e+00 2.2129e+01 +5.6476e+00 2.2587e+01 +5.7597e+00 2.3051e+01 +5.8741e+00 2.3520e+01 +5.9907e+00 2.3996e+01 +6.1096e+00 2.4477e+01 +6.2309e+00 2.4964e+01 +6.3546e+00 2.5457e+01 +6.4808e+00 2.5955e+01 +6.6094e+00 2.6460e+01 +6.7407e+00 2.6970e+01 +6.8745e+00 2.7486e+01 +7.0110e+00 2.8008e+01 +7.1502e+00 2.8536e+01 +7.2921e+00 2.9070e+01 +7.4369e+00 2.9609e+01 +7.5845e+00 3.0154e+01 +7.7351e+00 3.0705e+01 +7.8887e+00 3.1262e+01 +8.0453e+00 3.1824e+01 +8.2050e+00 3.2392e+01 +8.3679e+00 3.2965e+01 +8.5340e+00 3.3544e+01 +8.7034e+00 3.4128e+01 +8.8762e+00 3.4717e+01 +9.0524e+00 3.5311e+01 +9.2322e+00 3.5911e+01 +9.4154e+00 3.6516e+01 +9.6024e+00 3.7125e+01 +9.7930e+00 3.7740e+01 +9.9874e+00 3.8359e+01 +1.0186e+01 3.8983e+01 +1.0388e+01 3.9611e+01 +1.0594e+01 4.0244e+01 +1.0804e+01 4.0881e+01 +1.1019e+01 4.1522e+01 +1.1238e+01 4.2167e+01 +1.1461e+01 4.2816e+01 +1.1688e+01 4.3469e+01 +1.1920e+01 4.4125e+01 +1.2157e+01 4.4785e+01 +1.2398e+01 4.5448e+01 diff --git a/tools/specular-color/data/silver.txt b/tools/specular-color/data/silver.txt index 56f58c3282..6b2683fd26 100644 --- a/tools/specular-color/data/silver.txt +++ b/tools/specular-color/data/silver.txt @@ -1,403 +1,403 @@ -wl n -2.4797e-01 8.4863e-01 -2.5289e-01 8.2493e-01 -2.5791e-01 7.9699e-01 -2.6303e-01 8.0009e-01 -2.6825e-01 8.7536e-01 -2.7358e-01 1.0320e+00 -2.7901e-01 1.2351e+00 -2.8455e-01 1.4245e+00 -2.9020e-01 1.5424e+00 -2.9596e-01 1.5549e+00 -3.0184e-01 1.4594e+00 -3.0783e-01 1.2767e+00 -3.1394e-01 1.0361e+00 -3.2017e-01 7.6783e-01 -3.2653e-01 5.2213e-01 -3.3301e-01 3.6378e-01 -3.3962e-01 2.7960e-01 -3.4637e-01 2.3178e-01 -3.5324e-01 2.0172e-01 -3.6025e-01 1.8151e-01 -3.6741e-01 1.6741e-01 -3.7470e-01 1.5739e-01 -3.8214e-01 1.5021e-01 -3.8973e-01 1.4506e-01 -3.9746e-01 1.4141e-01 -4.0535e-01 1.3887e-01 -4.1340e-01 1.3716e-01 -4.2161e-01 1.3609e-01 -4.2998e-01 1.3550e-01 -4.3852e-01 1.3529e-01 -4.4722e-01 1.3537e-01 -4.5610e-01 1.3569e-01 -4.6515e-01 1.3621e-01 -4.7439e-01 1.3687e-01 -4.8381e-01 1.3767e-01 -4.9341e-01 1.3857e-01 -5.0321e-01 1.3958e-01 -5.1320e-01 1.4067e-01 -5.2339e-01 1.4184e-01 -5.3378e-01 1.4308e-01 -5.4437e-01 1.4440e-01 -5.5518e-01 1.4578e-01 -5.6620e-01 1.4723e-01 -5.7744e-01 1.4875e-01 -5.8891e-01 1.5034e-01 -6.0060e-01 1.5200e-01 -6.1252e-01 1.5373e-01 -6.2468e-01 1.5554e-01 -6.3709e-01 1.5742e-01 -6.4973e-01 1.5939e-01 -6.6263e-01 1.6143e-01 -6.7579e-01 1.6356e-01 -6.8920e-01 1.6579e-01 -7.0289e-01 1.6810e-01 -7.1684e-01 1.7051e-01 -7.3107e-01 1.7303e-01 -7.4559e-01 1.7565e-01 -7.6039e-01 1.7838e-01 -7.7549e-01 1.8123e-01 -7.9088e-01 1.8420e-01 -8.0658e-01 1.8729e-01 -8.2260e-01 1.9051e-01 -8.3893e-01 1.9387e-01 -8.5558e-01 1.9737e-01 -8.7257e-01 2.0102e-01 -8.8989e-01 2.0482e-01 -9.0756e-01 2.0878e-01 -9.2557e-01 2.1291e-01 -9.4395e-01 2.1721e-01 -9.6269e-01 2.2169e-01 -9.8180e-01 2.2636e-01 -1.0013e+00 2.3122e-01 -1.0212e+00 2.3628e-01 -1.0414e+00 2.4155e-01 -1.0621e+00 2.4705e-01 -1.0832e+00 2.5277e-01 -1.1047e+00 2.5872e-01 -1.1266e+00 2.6493e-01 -1.1490e+00 2.7138e-01 -1.1718e+00 2.7811e-01 -1.1951e+00 2.8511e-01 -1.2188e+00 2.9239e-01 -1.2430e+00 2.9998e-01 -1.2677e+00 3.0788e-01 -1.2929e+00 3.1609e-01 -1.3185e+00 3.2465e-01 -1.3447e+00 3.3355e-01 -1.3714e+00 3.4281e-01 -1.3986e+00 3.5245e-01 -1.4264e+00 3.6249e-01 -1.4547e+00 3.7292e-01 -1.4836e+00 3.8379e-01 -1.5130e+00 3.9509e-01 -1.5431e+00 4.0684e-01 -1.5737e+00 4.1908e-01 -1.6050e+00 4.3180e-01 -1.6368e+00 4.4504e-01 -1.6693e+00 4.5882e-01 -1.7025e+00 4.7314e-01 -1.7363e+00 4.8805e-01 -1.7707e+00 5.0355e-01 -1.8059e+00 5.1967e-01 -1.8417e+00 5.3644e-01 -1.8783e+00 5.5389e-01 -1.9156e+00 5.7203e-01 -1.9536e+00 5.9090e-01 -1.9924e+00 6.1053e-01 -2.0319e+00 6.3094e-01 -2.0723e+00 6.5216e-01 -2.1134e+00 6.7424e-01 -2.1554e+00 6.9719e-01 -2.1982e+00 7.2106e-01 -2.2418e+00 7.4588e-01 -2.2863e+00 7.7170e-01 -2.3317e+00 7.9854e-01 -2.3780e+00 8.2645e-01 -2.4252e+00 8.5546e-01 -2.4734e+00 8.8564e-01 -2.5225e+00 9.1701e-01 -2.5725e+00 9.4962e-01 -2.6236e+00 9.8353e-01 -2.6757e+00 1.0188e+00 -2.7288e+00 1.0554e+00 -2.7830e+00 1.0935e+00 -2.8383e+00 1.1332e+00 -2.8946e+00 1.1743e+00 -2.9521e+00 1.2171e+00 -3.0107e+00 1.2616e+00 -3.0704e+00 1.3079e+00 -3.1314e+00 1.3560e+00 -3.1936e+00 1.4060e+00 -3.2570e+00 1.4579e+00 -3.3216e+00 1.5119e+00 -3.3876e+00 1.5680e+00 -3.4548e+00 1.6263e+00 -3.5234e+00 1.6869e+00 -3.5934e+00 1.7499e+00 -3.6647e+00 1.8153e+00 -3.7375e+00 1.8833e+00 -3.8117e+00 1.9540e+00 -3.8873e+00 2.0274e+00 -3.9645e+00 2.1036e+00 -4.0432e+00 2.1829e+00 -4.1235e+00 2.2652e+00 -4.2053e+00 2.3507e+00 -4.2888e+00 2.4396e+00 -4.3740e+00 2.5319e+00 -4.4608e+00 2.6277e+00 -4.5494e+00 2.7273e+00 -4.6397e+00 2.8307e+00 -4.7318e+00 2.9381e+00 -4.8257e+00 3.0496e+00 -4.9216e+00 3.1654e+00 -5.0193e+00 3.2856e+00 -5.1189e+00 3.4104e+00 -5.2205e+00 3.5400e+00 -5.3242e+00 3.6745e+00 -5.4299e+00 3.8141e+00 -5.5377e+00 3.9591e+00 -5.6476e+00 4.1095e+00 -5.7597e+00 4.2656e+00 -5.8741e+00 4.4275e+00 -5.9907e+00 4.5956e+00 -6.1096e+00 4.7699e+00 -6.2309e+00 4.9508e+00 -6.3546e+00 5.1384e+00 -6.4808e+00 5.3329e+00 -6.6094e+00 5.5347e+00 -6.7407e+00 5.7439e+00 -6.8745e+00 5.9609e+00 -7.0110e+00 6.1857e+00 -7.1502e+00 6.4188e+00 -7.2921e+00 6.6604e+00 -7.4369e+00 6.9107e+00 -7.5845e+00 7.1701e+00 -7.7351e+00 7.4389e+00 -7.8887e+00 7.7172e+00 -8.0453e+00 8.0055e+00 -8.2050e+00 8.3040e+00 -8.3679e+00 8.6131e+00 -8.5340e+00 8.9330e+00 -8.7034e+00 9.2642e+00 -8.8762e+00 9.6068e+00 -9.0524e+00 9.9614e+00 -9.2322e+00 1.0328e+01 -9.4154e+00 1.0707e+01 -9.6024e+00 1.1100e+01 -9.7930e+00 1.1505e+01 -9.9874e+00 1.1924e+01 -1.0186e+01 1.2357e+01 -1.0388e+01 1.2805e+01 -1.0594e+01 1.3267e+01 -1.0804e+01 1.3744e+01 -1.1019e+01 1.4237e+01 -1.1238e+01 1.4746e+01 -1.1461e+01 1.5270e+01 -1.1688e+01 1.5812e+01 -1.1920e+01 1.6370e+01 -1.2157e+01 1.6946e+01 -1.2398e+01 1.7540e+01 - -wl k -2.4797e-01 1.1920e+00 -2.5289e-01 1.2193e+00 -2.5791e-01 1.2844e+00 -2.6303e-01 1.3955e+00 -2.6825e-01 1.5246e+00 -2.7358e-01 1.6142e+00 -2.7901e-01 1.6125e+00 -2.8455e-01 1.5017e+00 -2.9020e-01 1.3028e+00 -2.9596e-01 1.0631e+00 -3.0184e-01 8.3581e-01 -3.0783e-01 6.6203e-01 -3.1394e-01 5.6621e-01 -3.2017e-01 5.6549e-01 -3.2653e-01 6.7421e-01 -3.3301e-01 8.4735e-01 -3.3962e-01 1.0142e+00 -3.4637e-01 1.1589e+00 -3.5324e-01 1.2860e+00 -3.6025e-01 1.4005e+00 -3.6741e-01 1.5059e+00 -3.7470e-01 1.6045e+00 -3.8214e-01 1.6979e+00 -3.8973e-01 1.7873e+00 -3.9746e-01 1.8736e+00 -4.0535e-01 1.9574e+00 -4.1340e-01 2.0394e+00 -4.2161e-01 2.1200e+00 -4.2998e-01 2.1995e+00 -4.3852e-01 2.2782e+00 -4.4722e-01 2.3564e+00 -4.5610e-01 2.4344e+00 -4.6515e-01 2.5122e+00 -4.7439e-01 2.5901e+00 -4.8381e-01 2.6682e+00 -4.9341e-01 2.7466e+00 -5.0321e-01 2.8254e+00 -5.1320e-01 2.9048e+00 -5.2339e-01 2.9848e+00 -5.3378e-01 3.0656e+00 -5.4437e-01 3.1471e+00 -5.5518e-01 3.2295e+00 -5.6620e-01 3.3128e+00 -5.7744e-01 3.3971e+00 -5.8891e-01 3.4825e+00 -6.0060e-01 3.5690e+00 -6.1252e-01 3.6567e+00 -6.2468e-01 3.7455e+00 -6.3709e-01 3.8357e+00 -6.4973e-01 3.9272e+00 -6.6263e-01 4.0200e+00 -6.7579e-01 4.1143e+00 -6.8920e-01 4.2100e+00 -7.0289e-01 4.3072e+00 -7.1684e-01 4.4061e+00 -7.3107e-01 4.5065e+00 -7.4559e-01 4.6085e+00 -7.6039e-01 4.7123e+00 -7.7549e-01 4.8178e+00 -7.9088e-01 4.9251e+00 -8.0658e-01 5.0343e+00 -8.2260e-01 5.1453e+00 -8.3893e-01 5.2583e+00 -8.5558e-01 5.3732e+00 -8.7257e-01 5.4902e+00 -8.8989e-01 5.6093e+00 -9.0756e-01 5.7304e+00 -9.2557e-01 5.8538e+00 -9.4395e-01 5.9793e+00 -9.6269e-01 6.1072e+00 -9.8180e-01 6.2373e+00 -1.0013e+00 6.3699e+00 -1.0212e+00 6.5048e+00 -1.0414e+00 6.6423e+00 -1.0621e+00 6.7823e+00 -1.0832e+00 6.9248e+00 -1.1047e+00 7.0700e+00 -1.1266e+00 7.2179e+00 -1.1490e+00 7.3686e+00 -1.1718e+00 7.5221e+00 -1.1951e+00 7.6785e+00 -1.2188e+00 7.8378e+00 -1.2430e+00 8.0001e+00 -1.2677e+00 8.1654e+00 -1.2929e+00 8.3339e+00 -1.3185e+00 8.5056e+00 -1.3447e+00 8.6805e+00 -1.3714e+00 8.8587e+00 -1.3986e+00 9.0403e+00 -1.4264e+00 9.2254e+00 -1.4547e+00 9.4140e+00 -1.4836e+00 9.6062e+00 -1.5130e+00 9.8021e+00 -1.5431e+00 1.0002e+01 -1.5737e+00 1.0205e+01 -1.6050e+00 1.0412e+01 -1.6368e+00 1.0624e+01 -1.6693e+00 1.0839e+01 -1.7025e+00 1.1059e+01 -1.7363e+00 1.1282e+01 -1.7707e+00 1.1510e+01 -1.8059e+00 1.1743e+01 -1.8417e+00 1.1979e+01 -1.8783e+00 1.2221e+01 -1.9156e+00 1.2467e+01 -1.9536e+00 1.2718e+01 -1.9924e+00 1.2973e+01 -2.0319e+00 1.3234e+01 -2.0723e+00 1.3499e+01 -2.1134e+00 1.3770e+01 -2.1554e+00 1.4046e+01 -2.1982e+00 1.4327e+01 -2.2418e+00 1.4614e+01 -2.2863e+00 1.4906e+01 -2.3317e+00 1.5203e+01 -2.3780e+00 1.5507e+01 -2.4252e+00 1.5816e+01 -2.4734e+00 1.6131e+01 -2.5225e+00 1.6453e+01 -2.5725e+00 1.6780e+01 -2.6236e+00 1.7114e+01 -2.6757e+00 1.7454e+01 -2.7288e+00 1.7801e+01 -2.7830e+00 1.8154e+01 -2.8383e+00 1.8514e+01 -2.8946e+00 1.8881e+01 -2.9521e+00 1.9255e+01 -3.0107e+00 1.9636e+01 -3.0704e+00 2.0025e+01 -3.1314e+00 2.0421e+01 -3.1936e+00 2.0824e+01 -3.2570e+00 2.1235e+01 -3.3216e+00 2.1654e+01 -3.3876e+00 2.2081e+01 -3.4548e+00 2.2516e+01 -3.5234e+00 2.2959e+01 -3.5934e+00 2.3410e+01 -3.6647e+00 2.3870e+01 -3.7375e+00 2.4339e+01 -3.8117e+00 2.4817e+01 -3.8873e+00 2.5303e+01 -3.9645e+00 2.5799e+01 -4.0432e+00 2.6304e+01 -4.1235e+00 2.6818e+01 -4.2053e+00 2.7342e+01 -4.2888e+00 2.7876e+01 -4.3740e+00 2.8419e+01 -4.4608e+00 2.8973e+01 -4.5494e+00 2.9537e+01 -4.6397e+00 3.0111e+01 -4.7318e+00 3.0696e+01 -4.8257e+00 3.1291e+01 -4.9216e+00 3.1898e+01 -5.0193e+00 3.2515e+01 -5.1189e+00 3.3143e+01 -5.2205e+00 3.3783e+01 -5.3242e+00 3.4435e+01 -5.4299e+00 3.5098e+01 -5.5377e+00 3.5773e+01 -5.6476e+00 3.6460e+01 -5.7597e+00 3.7159e+01 -5.8741e+00 3.7870e+01 -5.9907e+00 3.8594e+01 -6.1096e+00 3.9331e+01 -6.2309e+00 4.0080e+01 -6.3546e+00 4.0842e+01 -6.4808e+00 4.1618e+01 -6.6094e+00 4.2407e+01 -6.7407e+00 4.3209e+01 -6.8745e+00 4.4025e+01 -7.0110e+00 4.4854e+01 -7.1502e+00 4.5697e+01 -7.2921e+00 4.6555e+01 -7.4369e+00 4.7426e+01 -7.5845e+00 4.8312e+01 -7.7351e+00 4.9212e+01 -7.8887e+00 5.0126e+01 -8.0453e+00 5.1055e+01 -8.2050e+00 5.1999e+01 -8.3679e+00 5.2958e+01 -8.5340e+00 5.3931e+01 -8.7034e+00 5.4920e+01 -8.8762e+00 5.5923e+01 -9.0524e+00 5.6942e+01 -9.2322e+00 5.7976e+01 -9.4154e+00 5.9025e+01 -9.6024e+00 6.0090e+01 -9.7930e+00 6.1170e+01 -9.9874e+00 6.2265e+01 -1.0186e+01 6.3376e+01 -1.0388e+01 6.4502e+01 -1.0594e+01 6.5643e+01 -1.0804e+01 6.6800e+01 -1.1019e+01 6.7973e+01 -1.1238e+01 6.9160e+01 -1.1461e+01 7.0363e+01 -1.1688e+01 7.1581e+01 -1.1920e+01 7.2814e+01 -1.2157e+01 7.4063e+01 -1.2398e+01 7.5326e+01 +wl n +2.4797e-01 8.4863e-01 +2.5289e-01 8.2493e-01 +2.5791e-01 7.9699e-01 +2.6303e-01 8.0009e-01 +2.6825e-01 8.7536e-01 +2.7358e-01 1.0320e+00 +2.7901e-01 1.2351e+00 +2.8455e-01 1.4245e+00 +2.9020e-01 1.5424e+00 +2.9596e-01 1.5549e+00 +3.0184e-01 1.4594e+00 +3.0783e-01 1.2767e+00 +3.1394e-01 1.0361e+00 +3.2017e-01 7.6783e-01 +3.2653e-01 5.2213e-01 +3.3301e-01 3.6378e-01 +3.3962e-01 2.7960e-01 +3.4637e-01 2.3178e-01 +3.5324e-01 2.0172e-01 +3.6025e-01 1.8151e-01 +3.6741e-01 1.6741e-01 +3.7470e-01 1.5739e-01 +3.8214e-01 1.5021e-01 +3.8973e-01 1.4506e-01 +3.9746e-01 1.4141e-01 +4.0535e-01 1.3887e-01 +4.1340e-01 1.3716e-01 +4.2161e-01 1.3609e-01 +4.2998e-01 1.3550e-01 +4.3852e-01 1.3529e-01 +4.4722e-01 1.3537e-01 +4.5610e-01 1.3569e-01 +4.6515e-01 1.3621e-01 +4.7439e-01 1.3687e-01 +4.8381e-01 1.3767e-01 +4.9341e-01 1.3857e-01 +5.0321e-01 1.3958e-01 +5.1320e-01 1.4067e-01 +5.2339e-01 1.4184e-01 +5.3378e-01 1.4308e-01 +5.4437e-01 1.4440e-01 +5.5518e-01 1.4578e-01 +5.6620e-01 1.4723e-01 +5.7744e-01 1.4875e-01 +5.8891e-01 1.5034e-01 +6.0060e-01 1.5200e-01 +6.1252e-01 1.5373e-01 +6.2468e-01 1.5554e-01 +6.3709e-01 1.5742e-01 +6.4973e-01 1.5939e-01 +6.6263e-01 1.6143e-01 +6.7579e-01 1.6356e-01 +6.8920e-01 1.6579e-01 +7.0289e-01 1.6810e-01 +7.1684e-01 1.7051e-01 +7.3107e-01 1.7303e-01 +7.4559e-01 1.7565e-01 +7.6039e-01 1.7838e-01 +7.7549e-01 1.8123e-01 +7.9088e-01 1.8420e-01 +8.0658e-01 1.8729e-01 +8.2260e-01 1.9051e-01 +8.3893e-01 1.9387e-01 +8.5558e-01 1.9737e-01 +8.7257e-01 2.0102e-01 +8.8989e-01 2.0482e-01 +9.0756e-01 2.0878e-01 +9.2557e-01 2.1291e-01 +9.4395e-01 2.1721e-01 +9.6269e-01 2.2169e-01 +9.8180e-01 2.2636e-01 +1.0013e+00 2.3122e-01 +1.0212e+00 2.3628e-01 +1.0414e+00 2.4155e-01 +1.0621e+00 2.4705e-01 +1.0832e+00 2.5277e-01 +1.1047e+00 2.5872e-01 +1.1266e+00 2.6493e-01 +1.1490e+00 2.7138e-01 +1.1718e+00 2.7811e-01 +1.1951e+00 2.8511e-01 +1.2188e+00 2.9239e-01 +1.2430e+00 2.9998e-01 +1.2677e+00 3.0788e-01 +1.2929e+00 3.1609e-01 +1.3185e+00 3.2465e-01 +1.3447e+00 3.3355e-01 +1.3714e+00 3.4281e-01 +1.3986e+00 3.5245e-01 +1.4264e+00 3.6249e-01 +1.4547e+00 3.7292e-01 +1.4836e+00 3.8379e-01 +1.5130e+00 3.9509e-01 +1.5431e+00 4.0684e-01 +1.5737e+00 4.1908e-01 +1.6050e+00 4.3180e-01 +1.6368e+00 4.4504e-01 +1.6693e+00 4.5882e-01 +1.7025e+00 4.7314e-01 +1.7363e+00 4.8805e-01 +1.7707e+00 5.0355e-01 +1.8059e+00 5.1967e-01 +1.8417e+00 5.3644e-01 +1.8783e+00 5.5389e-01 +1.9156e+00 5.7203e-01 +1.9536e+00 5.9090e-01 +1.9924e+00 6.1053e-01 +2.0319e+00 6.3094e-01 +2.0723e+00 6.5216e-01 +2.1134e+00 6.7424e-01 +2.1554e+00 6.9719e-01 +2.1982e+00 7.2106e-01 +2.2418e+00 7.4588e-01 +2.2863e+00 7.7170e-01 +2.3317e+00 7.9854e-01 +2.3780e+00 8.2645e-01 +2.4252e+00 8.5546e-01 +2.4734e+00 8.8564e-01 +2.5225e+00 9.1701e-01 +2.5725e+00 9.4962e-01 +2.6236e+00 9.8353e-01 +2.6757e+00 1.0188e+00 +2.7288e+00 1.0554e+00 +2.7830e+00 1.0935e+00 +2.8383e+00 1.1332e+00 +2.8946e+00 1.1743e+00 +2.9521e+00 1.2171e+00 +3.0107e+00 1.2616e+00 +3.0704e+00 1.3079e+00 +3.1314e+00 1.3560e+00 +3.1936e+00 1.4060e+00 +3.2570e+00 1.4579e+00 +3.3216e+00 1.5119e+00 +3.3876e+00 1.5680e+00 +3.4548e+00 1.6263e+00 +3.5234e+00 1.6869e+00 +3.5934e+00 1.7499e+00 +3.6647e+00 1.8153e+00 +3.7375e+00 1.8833e+00 +3.8117e+00 1.9540e+00 +3.8873e+00 2.0274e+00 +3.9645e+00 2.1036e+00 +4.0432e+00 2.1829e+00 +4.1235e+00 2.2652e+00 +4.2053e+00 2.3507e+00 +4.2888e+00 2.4396e+00 +4.3740e+00 2.5319e+00 +4.4608e+00 2.6277e+00 +4.5494e+00 2.7273e+00 +4.6397e+00 2.8307e+00 +4.7318e+00 2.9381e+00 +4.8257e+00 3.0496e+00 +4.9216e+00 3.1654e+00 +5.0193e+00 3.2856e+00 +5.1189e+00 3.4104e+00 +5.2205e+00 3.5400e+00 +5.3242e+00 3.6745e+00 +5.4299e+00 3.8141e+00 +5.5377e+00 3.9591e+00 +5.6476e+00 4.1095e+00 +5.7597e+00 4.2656e+00 +5.8741e+00 4.4275e+00 +5.9907e+00 4.5956e+00 +6.1096e+00 4.7699e+00 +6.2309e+00 4.9508e+00 +6.3546e+00 5.1384e+00 +6.4808e+00 5.3329e+00 +6.6094e+00 5.5347e+00 +6.7407e+00 5.7439e+00 +6.8745e+00 5.9609e+00 +7.0110e+00 6.1857e+00 +7.1502e+00 6.4188e+00 +7.2921e+00 6.6604e+00 +7.4369e+00 6.9107e+00 +7.5845e+00 7.1701e+00 +7.7351e+00 7.4389e+00 +7.8887e+00 7.7172e+00 +8.0453e+00 8.0055e+00 +8.2050e+00 8.3040e+00 +8.3679e+00 8.6131e+00 +8.5340e+00 8.9330e+00 +8.7034e+00 9.2642e+00 +8.8762e+00 9.6068e+00 +9.0524e+00 9.9614e+00 +9.2322e+00 1.0328e+01 +9.4154e+00 1.0707e+01 +9.6024e+00 1.1100e+01 +9.7930e+00 1.1505e+01 +9.9874e+00 1.1924e+01 +1.0186e+01 1.2357e+01 +1.0388e+01 1.2805e+01 +1.0594e+01 1.3267e+01 +1.0804e+01 1.3744e+01 +1.1019e+01 1.4237e+01 +1.1238e+01 1.4746e+01 +1.1461e+01 1.5270e+01 +1.1688e+01 1.5812e+01 +1.1920e+01 1.6370e+01 +1.2157e+01 1.6946e+01 +1.2398e+01 1.7540e+01 + +wl k +2.4797e-01 1.1920e+00 +2.5289e-01 1.2193e+00 +2.5791e-01 1.2844e+00 +2.6303e-01 1.3955e+00 +2.6825e-01 1.5246e+00 +2.7358e-01 1.6142e+00 +2.7901e-01 1.6125e+00 +2.8455e-01 1.5017e+00 +2.9020e-01 1.3028e+00 +2.9596e-01 1.0631e+00 +3.0184e-01 8.3581e-01 +3.0783e-01 6.6203e-01 +3.1394e-01 5.6621e-01 +3.2017e-01 5.6549e-01 +3.2653e-01 6.7421e-01 +3.3301e-01 8.4735e-01 +3.3962e-01 1.0142e+00 +3.4637e-01 1.1589e+00 +3.5324e-01 1.2860e+00 +3.6025e-01 1.4005e+00 +3.6741e-01 1.5059e+00 +3.7470e-01 1.6045e+00 +3.8214e-01 1.6979e+00 +3.8973e-01 1.7873e+00 +3.9746e-01 1.8736e+00 +4.0535e-01 1.9574e+00 +4.1340e-01 2.0394e+00 +4.2161e-01 2.1200e+00 +4.2998e-01 2.1995e+00 +4.3852e-01 2.2782e+00 +4.4722e-01 2.3564e+00 +4.5610e-01 2.4344e+00 +4.6515e-01 2.5122e+00 +4.7439e-01 2.5901e+00 +4.8381e-01 2.6682e+00 +4.9341e-01 2.7466e+00 +5.0321e-01 2.8254e+00 +5.1320e-01 2.9048e+00 +5.2339e-01 2.9848e+00 +5.3378e-01 3.0656e+00 +5.4437e-01 3.1471e+00 +5.5518e-01 3.2295e+00 +5.6620e-01 3.3128e+00 +5.7744e-01 3.3971e+00 +5.8891e-01 3.4825e+00 +6.0060e-01 3.5690e+00 +6.1252e-01 3.6567e+00 +6.2468e-01 3.7455e+00 +6.3709e-01 3.8357e+00 +6.4973e-01 3.9272e+00 +6.6263e-01 4.0200e+00 +6.7579e-01 4.1143e+00 +6.8920e-01 4.2100e+00 +7.0289e-01 4.3072e+00 +7.1684e-01 4.4061e+00 +7.3107e-01 4.5065e+00 +7.4559e-01 4.6085e+00 +7.6039e-01 4.7123e+00 +7.7549e-01 4.8178e+00 +7.9088e-01 4.9251e+00 +8.0658e-01 5.0343e+00 +8.2260e-01 5.1453e+00 +8.3893e-01 5.2583e+00 +8.5558e-01 5.3732e+00 +8.7257e-01 5.4902e+00 +8.8989e-01 5.6093e+00 +9.0756e-01 5.7304e+00 +9.2557e-01 5.8538e+00 +9.4395e-01 5.9793e+00 +9.6269e-01 6.1072e+00 +9.8180e-01 6.2373e+00 +1.0013e+00 6.3699e+00 +1.0212e+00 6.5048e+00 +1.0414e+00 6.6423e+00 +1.0621e+00 6.7823e+00 +1.0832e+00 6.9248e+00 +1.1047e+00 7.0700e+00 +1.1266e+00 7.2179e+00 +1.1490e+00 7.3686e+00 +1.1718e+00 7.5221e+00 +1.1951e+00 7.6785e+00 +1.2188e+00 7.8378e+00 +1.2430e+00 8.0001e+00 +1.2677e+00 8.1654e+00 +1.2929e+00 8.3339e+00 +1.3185e+00 8.5056e+00 +1.3447e+00 8.6805e+00 +1.3714e+00 8.8587e+00 +1.3986e+00 9.0403e+00 +1.4264e+00 9.2254e+00 +1.4547e+00 9.4140e+00 +1.4836e+00 9.6062e+00 +1.5130e+00 9.8021e+00 +1.5431e+00 1.0002e+01 +1.5737e+00 1.0205e+01 +1.6050e+00 1.0412e+01 +1.6368e+00 1.0624e+01 +1.6693e+00 1.0839e+01 +1.7025e+00 1.1059e+01 +1.7363e+00 1.1282e+01 +1.7707e+00 1.1510e+01 +1.8059e+00 1.1743e+01 +1.8417e+00 1.1979e+01 +1.8783e+00 1.2221e+01 +1.9156e+00 1.2467e+01 +1.9536e+00 1.2718e+01 +1.9924e+00 1.2973e+01 +2.0319e+00 1.3234e+01 +2.0723e+00 1.3499e+01 +2.1134e+00 1.3770e+01 +2.1554e+00 1.4046e+01 +2.1982e+00 1.4327e+01 +2.2418e+00 1.4614e+01 +2.2863e+00 1.4906e+01 +2.3317e+00 1.5203e+01 +2.3780e+00 1.5507e+01 +2.4252e+00 1.5816e+01 +2.4734e+00 1.6131e+01 +2.5225e+00 1.6453e+01 +2.5725e+00 1.6780e+01 +2.6236e+00 1.7114e+01 +2.6757e+00 1.7454e+01 +2.7288e+00 1.7801e+01 +2.7830e+00 1.8154e+01 +2.8383e+00 1.8514e+01 +2.8946e+00 1.8881e+01 +2.9521e+00 1.9255e+01 +3.0107e+00 1.9636e+01 +3.0704e+00 2.0025e+01 +3.1314e+00 2.0421e+01 +3.1936e+00 2.0824e+01 +3.2570e+00 2.1235e+01 +3.3216e+00 2.1654e+01 +3.3876e+00 2.2081e+01 +3.4548e+00 2.2516e+01 +3.5234e+00 2.2959e+01 +3.5934e+00 2.3410e+01 +3.6647e+00 2.3870e+01 +3.7375e+00 2.4339e+01 +3.8117e+00 2.4817e+01 +3.8873e+00 2.5303e+01 +3.9645e+00 2.5799e+01 +4.0432e+00 2.6304e+01 +4.1235e+00 2.6818e+01 +4.2053e+00 2.7342e+01 +4.2888e+00 2.7876e+01 +4.3740e+00 2.8419e+01 +4.4608e+00 2.8973e+01 +4.5494e+00 2.9537e+01 +4.6397e+00 3.0111e+01 +4.7318e+00 3.0696e+01 +4.8257e+00 3.1291e+01 +4.9216e+00 3.1898e+01 +5.0193e+00 3.2515e+01 +5.1189e+00 3.3143e+01 +5.2205e+00 3.3783e+01 +5.3242e+00 3.4435e+01 +5.4299e+00 3.5098e+01 +5.5377e+00 3.5773e+01 +5.6476e+00 3.6460e+01 +5.7597e+00 3.7159e+01 +5.8741e+00 3.7870e+01 +5.9907e+00 3.8594e+01 +6.1096e+00 3.9331e+01 +6.2309e+00 4.0080e+01 +6.3546e+00 4.0842e+01 +6.4808e+00 4.1618e+01 +6.6094e+00 4.2407e+01 +6.7407e+00 4.3209e+01 +6.8745e+00 4.4025e+01 +7.0110e+00 4.4854e+01 +7.1502e+00 4.5697e+01 +7.2921e+00 4.6555e+01 +7.4369e+00 4.7426e+01 +7.5845e+00 4.8312e+01 +7.7351e+00 4.9212e+01 +7.8887e+00 5.0126e+01 +8.0453e+00 5.1055e+01 +8.2050e+00 5.1999e+01 +8.3679e+00 5.2958e+01 +8.5340e+00 5.3931e+01 +8.7034e+00 5.4920e+01 +8.8762e+00 5.5923e+01 +9.0524e+00 5.6942e+01 +9.2322e+00 5.7976e+01 +9.4154e+00 5.9025e+01 +9.6024e+00 6.0090e+01 +9.7930e+00 6.1170e+01 +9.9874e+00 6.2265e+01 +1.0186e+01 6.3376e+01 +1.0388e+01 6.4502e+01 +1.0594e+01 6.5643e+01 +1.0804e+01 6.6800e+01 +1.1019e+01 6.7973e+01 +1.1238e+01 6.9160e+01 +1.1461e+01 7.0363e+01 +1.1688e+01 7.1581e+01 +1.1920e+01 7.2814e+01 +1.2157e+01 7.4063e+01 +1.2398e+01 7.5326e+01 diff --git a/tools/specular-color/data/titanium.txt b/tools/specular-color/data/titanium.txt index 49407ed26f..eb870b3662 100644 --- a/tools/specular-color/data/titanium.txt +++ b/tools/specular-color/data/titanium.txt @@ -1,101 +1,101 @@ -wl n -0.188 1.10 -0.192 1.16 -0.195 1.22 -0.199 1.25 -0.203 1.27 -0.207 1.31 -0.212 1.31 -0.216 1.32 -0.221 1.32 -0.226 1.32 -0.231 1.31 -0.237 1.30 -0.243 1.28 -0.249 1.27 -0.255 1.26 -0.262 1.27 -0.269 1.27 -0.276 1.30 -0.284 1.35 -0.292 1.40 -0.301 1.45 -0.311 1.50 -0.320 1.55 -0.332 1.61 -0.342 1.72 -0.354 1.82 -0.368 1.90 -0.381 1.99 -0.397 2.08 -0.413 2.14 -0.431 2.21 -0.451 2.27 -0.471 2.32 -0.496 2.36 -0.521 2.44 -0.549 2.54 -0.582 2.60 -0.617 2.67 -0.659 2.76 -0.704 2.86 -0.756 3.00 -0.821 3.21 -0.892 3.29 -0.984 3.35 -1.088 3.50 -1.216 3.62 -1.393 3.67 -1.610 3.69 -1.937 3.51 - -wl k -0.188 1.62 -0.192 1.64 -0.195 1.66 -0.199 1.68 -0.203 1.69 -0.207 1.69 -0.212 1.68 -0.216 1.67 -0.221 1.66 -0.226 1.66 -0.231 1.68 -0.237 1.72 -0.243 1.77 -0.249 1.83 -0.255 1.91 -0.262 1.99 -0.269 2.07 -0.276 2.17 -0.284 2.26 -0.292 2.36 -0.301 2.46 -0.311 2.57 -0.320 2.66 -0.332 2.74 -0.342 2.82 -0.354 2.87 -0.368 2.90 -0.381 2.93 -0.397 2.95 -0.413 2.98 -0.431 3.01 -0.451 3.04 -0.471 3.10 -0.496 3.19 -0.521 3.30 -0.549 3.43 -0.582 3.58 -0.617 3.72 -0.659 3.84 -0.704 3.96 -0.756 4.01 -0.821 4.01 -0.892 3.96 -0.984 3.97 -1.088 4.02 -1.216 4.15 -1.393 4.37 -1.610 4.70 -1.937 5.19 +wl n +0.188 1.10 +0.192 1.16 +0.195 1.22 +0.199 1.25 +0.203 1.27 +0.207 1.31 +0.212 1.31 +0.216 1.32 +0.221 1.32 +0.226 1.32 +0.231 1.31 +0.237 1.30 +0.243 1.28 +0.249 1.27 +0.255 1.26 +0.262 1.27 +0.269 1.27 +0.276 1.30 +0.284 1.35 +0.292 1.40 +0.301 1.45 +0.311 1.50 +0.320 1.55 +0.332 1.61 +0.342 1.72 +0.354 1.82 +0.368 1.90 +0.381 1.99 +0.397 2.08 +0.413 2.14 +0.431 2.21 +0.451 2.27 +0.471 2.32 +0.496 2.36 +0.521 2.44 +0.549 2.54 +0.582 2.60 +0.617 2.67 +0.659 2.76 +0.704 2.86 +0.756 3.00 +0.821 3.21 +0.892 3.29 +0.984 3.35 +1.088 3.50 +1.216 3.62 +1.393 3.67 +1.610 3.69 +1.937 3.51 + +wl k +0.188 1.62 +0.192 1.64 +0.195 1.66 +0.199 1.68 +0.203 1.69 +0.207 1.69 +0.212 1.68 +0.216 1.67 +0.221 1.66 +0.226 1.66 +0.231 1.68 +0.237 1.72 +0.243 1.77 +0.249 1.83 +0.255 1.91 +0.262 1.99 +0.269 2.07 +0.276 2.17 +0.284 2.26 +0.292 2.36 +0.301 2.46 +0.311 2.57 +0.320 2.66 +0.332 2.74 +0.342 2.82 +0.354 2.87 +0.368 2.90 +0.381 2.93 +0.397 2.95 +0.413 2.98 +0.431 3.01 +0.451 3.04 +0.471 3.10 +0.496 3.19 +0.521 3.30 +0.549 3.43 +0.582 3.58 +0.617 3.72 +0.659 3.84 +0.704 3.96 +0.756 4.01 +0.821 4.01 +0.892 3.96 +0.984 3.97 +1.088 4.02 +1.216 4.15 +1.393 4.37 +1.610 4.70 +1.937 5.19