diff --git a/Binaries/SharpSoundDevice/v1.5.1 - readme.txt b/Binaries/SharpSoundDevice/v1.5.1 - readme.txt deleted file mode 100644 index 7ae5457..0000000 --- a/Binaries/SharpSoundDevice/v1.5.1 - readme.txt +++ /dev/null @@ -1 +0,0 @@ -Download the 1.5.0.1 release from https://github.com/ValdemarOrn/SharpSoundDevice \ No newline at end of file diff --git a/Build.bat b/Build.bat deleted file mode 100644 index 0ced13d..0000000 --- a/Build.bat +++ /dev/null @@ -1,23 +0,0 @@ -rd /S /Q Builds\Current -set ts=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2% - -:: Build 64 Bit -rd /S /Q Builds\Current -rd /s /q CloudSeed\bin\Release -msbuild CloudSeed.sln /p:Configuration=Release,Platform=x64 - -mkdir Builds\Current -xcopy CloudSeed\bin\Release\*.dll Builds\Current\CloudSeed\ /s /e /h - - -:: Create Bridge dlls -cd Builds\Current -..\..\Binaries\SharpSoundDevice\x64\Release\BridgeGenerator.exe CloudSeed\CloudSeed.dll CloudSeed.dll - -:: Copy In Factory Presets -xcopy "..\..\Factory Programs" "CloudSeed\Programs\Factory Programs\" /s /e /h - -del ..\CloudSeed-%ts%-NoInstall.zip -7z a ..\CloudSeed-%ts%-NoInstall.zip -r *.* -cd.. -cd.. diff --git a/Builds/CloudSeed-v0.9.0-2016-11-23.zip b/Builds/CloudSeed-v0.9.0-2016-11-23.zip deleted file mode 100644 index 39e9ccf..0000000 Binary files a/Builds/CloudSeed-v0.9.0-2016-11-23.zip and /dev/null differ diff --git a/Builds/CloudSeed-v1.0-2018-04-25-NoInstall.zip b/Builds/CloudSeed-v1.0-2018-04-25-NoInstall.zip deleted file mode 100644 index 268e0d5..0000000 Binary files a/Builds/CloudSeed-v1.0-2018-04-25-NoInstall.zip and /dev/null differ diff --git a/Builds/CloudSeed-v1.0.1-2018-04-26-NoInstall.zip b/Builds/CloudSeed-v1.0.1-2018-04-26-NoInstall.zip deleted file mode 100644 index 8fcc9f3..0000000 Binary files a/Builds/CloudSeed-v1.0.1-2018-04-26-NoInstall.zip and /dev/null differ diff --git a/CloudSeed Overview.3dm b/CloudSeed Overview.3dm deleted file mode 100644 index ea30930..0000000 Binary files a/CloudSeed Overview.3dm and /dev/null differ diff --git a/CloudSeed.Native/AllpassDiffuser.h b/CloudSeed.Native/AllpassDiffuser.h deleted file mode 100644 index d7b00ae..0000000 --- a/CloudSeed.Native/AllpassDiffuser.h +++ /dev/null @@ -1,163 +0,0 @@ - -#pragma once - -#include -#include "ModulatedAllpass.h" -#include "AudioLib\ShaRandom.h" - -using namespace std; - -namespace CloudSeed -{ - class AllpassDiffuser - { - public: - static const int MaxStageCount = 8; - - private: - int samplerate; - - vector filters; - int delay; - double modRate; - vector seedValues; - int seed; - double crossSeed; - - public: - int Stages; - - AllpassDiffuser(int samplerate, int delayBufferLengthMillis) - { - auto delayBufferSize = samplerate * ((double)delayBufferLengthMillis / 1000.0); - for (int i = 0; i < MaxStageCount; i++) - { - filters.push_back(new ModulatedAllpass((int)delayBufferSize, 100)); - } - - crossSeed = 0.0; - seed = 23456; - UpdateSeeds(); - Stages = 1; - - SetSamplerate(samplerate); - } - - ~AllpassDiffuser() - { - for (auto filter : filters) - delete filter; - } - - int GetSamplerate() - { - return samplerate; - } - - void SetSamplerate(int samplerate) - { - this->samplerate = samplerate; - SetModRate(modRate); - } - - void SetSeed(int seed) - { - this->seed = seed; - UpdateSeeds(); - } - - void SetCrossSeed(double crossSeed) - { - this->crossSeed = crossSeed; - UpdateSeeds(); - } - - - bool GetModulationEnabled() - { - return filters[0]->ModulationEnabled; - } - - void SetModulationEnabled(bool value) - { - for (auto filter : filters) - filter->ModulationEnabled = value; - } - - void SetInterpolationEnabled(bool enabled) - { - for (auto filter : filters) - filter->InterpolationEnabled = enabled; - } - - double* GetOutput() - { - return filters[Stages - 1]->GetOutput(); - } - - - void SetDelay(int delaySamples) - { - delay = delaySamples; - Update(); - } - - void SetFeedback(double feedback) - { - for (auto filter : filters) - filter->Feedback = feedback; - } - - void SetModAmount(double amount) - { - for (int i = 0; i < filters.size(); i++) - { - filters[i]->ModAmount = amount * (0.85 + 0.3 * seedValues[MaxStageCount + i]); - } - } - - void SetModRate(double rate) - { - modRate = rate; - - for (size_t i = 0; i < filters.size(); i++) - filters[i]->ModRate = rate * (0.85 + 0.3 * seedValues[MaxStageCount * 2 + i]) / samplerate; - } - - void Process(double* input, int sampleCount) - { - ModulatedAllpass** filterPtr = &filters[0]; - - filterPtr[0]->Process(input, sampleCount); - - for (int i = 1; i < Stages; i++) - { - filterPtr[i]->Process(filterPtr[i - 1]->GetOutput(), sampleCount); - } - } - - void ClearBuffers() - { - for (size_t i = 0; i < filters.size(); i++) - filters[i]->ClearBuffers(); - } - - private: - void Update() - { - for (size_t i = 0; i < filters.size(); i++) - { - auto r = seedValues[i]; - auto d = std::pow(10, r) * 0.1; // 0.1 ... 1.0 - filters[i]->SampleDelay = (int)(delay * d); - } - } - - void UpdateSeeds() - { - this->seedValues = AudioLib::ShaRandom::Generate(seed, MaxStageCount * 3, crossSeed); - Update(); - } - - }; -} diff --git a/CloudSeed.Native/AudioLib/Biquad.cpp b/CloudSeed.Native/AudioLib/Biquad.cpp deleted file mode 100644 index 642d0a6..0000000 --- a/CloudSeed.Native/AudioLib/Biquad.cpp +++ /dev/null @@ -1,189 +0,0 @@ -#define _USE_MATH_DEFINES -#include -#include "Biquad.h" - -namespace AudioLib -{ - Biquad::Biquad() - { - ClearBuffers(); - } - - Biquad::Biquad(FilterType filterType, double samplerate) - { - Type = filterType; - SetSamplerate(samplerate); - - SetGainDb(0.0); - Frequency = samplerate / 4; - SetQ(0.5); - ClearBuffers(); - } - - Biquad::~Biquad() - { - - } - - - double Biquad::GetSamplerate() - { - return samplerate; - } - - void Biquad::SetSamplerate(double value) - { - samplerate = value; - Update(); - } - - double Biquad::GetGainDb() - { - return std::log10(gain) * 20; - } - - void Biquad::SetGainDb(double value) - { - SetGain(std::pow(10, value / 20)); - } - - double Biquad::GetGain() - { - return gain; - } - - void Biquad::SetGain(double value) - { - if (value == 0) - value = 0.001; // -60dB - - gain = value; - } - - double Biquad::GetQ() - { - return _q; - } - - void Biquad::SetQ(double value) - { - if (value == 0) - value = 1e-12; - _q = value; - } - - vector Biquad::GetA() - { - return vector({ 1, a1, a2 }); - } - - vector Biquad::GetB() - { - return vector({ b0, b1, b2 }); - } - - - void Biquad::Update() - { - double omega = 2 * M_PI * Frequency / samplerate; - double sinOmega = std::sin(omega); - double cosOmega = std::cos(omega); - - double sqrtGain = 0.0; - double alpha = 0.0; - - if (Type == FilterType::LowShelf || Type == FilterType::HighShelf) - { - alpha = sinOmega / 2 * std::sqrt((gain + 1 / gain) * (1 / Slope - 1) + 2); - sqrtGain = std::sqrt(gain); - } - else - { - alpha = sinOmega / (2 * _q); - } - - switch (Type) - { - case FilterType::LowPass: - b0 = (1 - cosOmega) / 2; - b1 = 1 - cosOmega; - b2 = (1 - cosOmega) / 2; - a0 = 1 + alpha; - a1 = -2 * cosOmega; - a2 = 1 - alpha; - break; - case FilterType::HighPass: - b0 = (1 + cosOmega) / 2; - b1 = -(1 + cosOmega); - b2 = (1 + cosOmega) / 2; - a0 = 1 + alpha; - a1 = -2 * cosOmega; - a2 = 1 - alpha; - break; - case FilterType::BandPass: - b0 = alpha; - b1 = 0; - b2 = -alpha; - a0 = 1 + alpha; - a1 = -2 * cosOmega; - a2 = 1 - alpha; - break; - case FilterType::Notch: - b0 = 1; - b1 = -2 * cosOmega; - b2 = 1; - a0 = 1 + alpha; - a1 = -2 * cosOmega; - a2 = 1 - alpha; - break; - case FilterType::Peak: - b0 = 1 + (alpha * gain); - b1 = -2 * cosOmega; - b2 = 1 - (alpha * gain); - a0 = 1 + (alpha / gain); - a1 = -2 * cosOmega; - a2 = 1 - (alpha / gain); - break; - case FilterType::LowShelf: - b0 = gain * ((gain + 1) - (gain - 1) * cosOmega + 2 * sqrtGain * alpha); - b1 = 2 * gain * ((gain - 1) - (gain + 1) * cosOmega); - b2 = gain * ((gain + 1) - (gain - 1) * cosOmega - 2 * sqrtGain * alpha); - a0 = (gain + 1) + (gain - 1) * cosOmega + 2 * sqrtGain * alpha; - a1 = -2 * ((gain - 1) + (gain + 1) * cosOmega); - a2 = (gain + 1) + (gain - 1) * cosOmega - 2 * sqrtGain * alpha; - break; - case FilterType::HighShelf: - b0 = gain * ((gain + 1) + (gain - 1) * cosOmega + 2 * sqrtGain * alpha); - b1 = -2 * gain * ((gain - 1) + (gain + 1) * cosOmega); - b2 = gain * ((gain + 1) + (gain - 1) * cosOmega - 2 * sqrtGain * alpha); - a0 = (gain + 1) - (gain - 1) * cosOmega + 2 * sqrtGain * alpha; - a1 = 2 * ((gain - 1) - (gain + 1) * cosOmega); - a2 = (gain + 1) - (gain - 1) * cosOmega - 2 * sqrtGain * alpha; - break; - } - - double g = 1 / a0; - - b0 = b0 * g; - b1 = b1 * g; - b2 = b2 * g; - a1 = a1 * g; - a2 = a2 * g; - } - - double Biquad::GetResponse(double freq) - { - double phi = std::pow((std::sin(2 * M_PI * freq / (2.0 * samplerate))), 2); - return (std::pow(b0 + b1 + b2, 2.0) - 4.0 * (b0 * b1 + 4.0 * b0 * b2 + b1 * b2) * phi + 16.0 * b0 * b2 * phi * phi) / (std::pow(1.0 + a1 + a2, 2.0) - 4.0 * (a1 + 4.0 * a2 + a1 * a2) * phi + 16.0 * a2 * phi * phi); - } - - void Biquad::ClearBuffers() - { - y = 0; - x2 = 0; - y2 = 0; - x1 = 0; - y1 = 0; - } - -} \ No newline at end of file diff --git a/CloudSeed.Native/AudioLib/Biquad.h b/CloudSeed.Native/AudioLib/Biquad.h deleted file mode 100644 index d636afb..0000000 --- a/CloudSeed.Native/AudioLib/Biquad.h +++ /dev/null @@ -1,77 +0,0 @@ -#ifndef BIQUAD -#define BIQUAD - -#include -using namespace std; - -namespace AudioLib -{ - class Biquad - { - public: - enum class FilterType - { - LowPass = 0, - HighPass, - BandPass, - Notch, - Peak, - LowShelf, - HighShelf - }; - - private: - double samplerate; - double _gainDb; - double _q; - double a0, a1, a2, b0, b1, b2; - double x1, x2, y, y1, y2; - double gain; - - public: - FilterType Type; - double Output; - double Frequency; - double Slope; - - Biquad(); - Biquad(FilterType filterType, double samplerate); - ~Biquad(); - - double GetSamplerate(); - void SetSamplerate(double samplerate); - double GetGainDb(); - void SetGainDb(double value); - double GetGain(); - void SetGain(double value); - double GetQ(); - void SetQ(double value); - vector GetA(); - vector GetB(); - - void Update(); - double GetResponse(double freq); - - double inline Process(double x) - { - y = b0 * x + b1 * x1 + b2 * x2 - a1 * y1 - a2 * y2; - x2 = x1; - y2 = y1; - x1 = x; - y1 = y; - - Output = y; - return Output; - } - - void inline Process(double* input, double* output, int len) - { - for (int i = 0; i < len; i++) - output[i] = Process(input[i]); - } - - void ClearBuffers(); - }; -} - -#endif \ No newline at end of file diff --git a/CloudSeed.Native/AudioLib/Hp1.h b/CloudSeed.Native/AudioLib/Hp1.h deleted file mode 100644 index 331aa4f..0000000 --- a/CloudSeed.Native/AudioLib/Hp1.h +++ /dev/null @@ -1,81 +0,0 @@ -#pragma once - -#include -#define PI 3.141592653589793238462643383 - -namespace AudioLib -{ - class Hp1 - { - private: - double fs; - double b0, a1; - double lpOut; - double cutoffHz; - - public: - double Output; - - public: - Hp1(double fs) - { - this->fs = fs; - } - - double GetSamplerate() - { - return fs; - } - - void SetSamplerate(double samplerate) - { - fs = samplerate; - } - - double GetCutoffHz() - { - return cutoffHz; - } - - void SetCutoffHz(double hz) - { - cutoffHz = hz; - Update(); - } - - void Update() - { - // Prevent going over the Nyquist frequency - if (cutoffHz >= fs * 0.5) - cutoffHz = fs * 0.499; - - auto x = 2 * PI * cutoffHz / fs; - auto nn = (2 - cos(x)); - auto alpha = nn - sqrt(nn * nn - 1); - - a1 = alpha; - b0 = 1 - alpha; - } - - double Process(double input) - { - if (input == 0 && lpOut < 0.000000000001) - { - Output = 0; - } - else - { - lpOut = b0 * input + a1 * lpOut; - Output = input - lpOut; - } - - return Output; - } - - void Process(double* input, double* output, int len) - { - for (int i = 0; i < len; i++) - output[i] = Process(input[i]); - } - }; -} diff --git a/CloudSeed.Native/AudioLib/Lp1.h b/CloudSeed.Native/AudioLib/Lp1.h deleted file mode 100644 index 7eec78b..0000000 --- a/CloudSeed.Native/AudioLib/Lp1.h +++ /dev/null @@ -1,83 +0,0 @@ -#pragma once - -#include - -#define PI 3.141592653589793238462643383 - -namespace AudioLib -{ - using namespace std; - - class Lp1 - { - public: - double Output; - - public: - Lp1(double fs) - { - this->fs = fs; - } - - double GetSamplerate() - { - return fs; - } - - void SetSamplerate(double samplerate) - { - fs = samplerate; - } - - double GetCutoffHz() - { - return cutoffHz; - } - - void SetCutoffHz(double hz) - { - cutoffHz = hz; - Update(); - } - - void Update() - { - // Prevent going over the Nyquist frequency - if (cutoffHz >= fs * 0.5) - cutoffHz = fs * 0.499; - - auto x = 2 * PI * cutoffHz / fs; - auto nn = (2 - cos(x)); - auto alpha = nn - sqrt(nn * nn - 1); - - a1 = alpha; - b0 = 1 - alpha; - } - - double Process(double input) - { - if (input == 0 && Output < 0.000000000001) - { - Output = 0; - } - else - { - Output = b0 * input + a1 * Output; - } - return Output; - } - - void Process(double* input, double* output, int len) - { - for (int i = 0; i < len; i++) - output[i] = Process(input[i]); - } - - - private: - double fs; - double b0, a1; - double cutoffHz; - }; -} - diff --git a/CloudSeed.Native/AudioLib/MathDefs.h b/CloudSeed.Native/AudioLib/MathDefs.h deleted file mode 100644 index 20c671b..0000000 --- a/CloudSeed.Native/AudioLib/MathDefs.h +++ /dev/null @@ -1,17 +0,0 @@ - - -// shitty _USE_MATH_DEFINES is impossible to track! - -#define M_E 2.71828182845904523536 // e -#define M_LOG2E 1.44269504088896340736 // log2(e) -#define M_LOG10E 0.434294481903251827651 // log10(e) -#define M_LN2 0.693147180559945309417 // ln(2) -#define M_LN10 2.30258509299404568402 // ln(10) -#define M_PI 3.14159265358979323846 // pi -#define M_PI_2 1.57079632679489661923 // pi/2 -#define M_PI_4 0.785398163397448309616 // pi/4 -#define M_1_PI 0.318309886183790671538 // 1/pi -#define M_2_PI 0.636619772367581343076 // 2/pi -#define M_2_SQRTPI 1.12837916709551257390 // 2/sqrt(pi) -#define M_SQRT2 1.41421356237309504880 // sqrt(2) -#define M_SQRT1_2 0.707106781186547524401 // 1/sqrt(2) diff --git a/CloudSeed.Native/AudioLib/ShaRandom.cpp b/CloudSeed.Native/AudioLib/ShaRandom.cpp deleted file mode 100644 index f8c1454..0000000 --- a/CloudSeed.Native/AudioLib/ShaRandom.cpp +++ /dev/null @@ -1,50 +0,0 @@ - -#include -#include "ShaRandom.h" -#include "../Utils/Sha256.h" - -namespace AudioLib -{ - using namespace std; - - vector ShaRandom::Generate(long long seed, int count) - { - vector byteList; - auto iterations = count * sizeof(unsigned int) / (256 / 8) + 1; - auto byteArr = (unsigned char*)&seed; - vector bytes(byteArr, byteArr + 8); - - for (size_t i = 0; i < iterations; i++) - { - bytes = sha256(&bytes[0], 8); - for (auto b : bytes) - byteList.push_back(b); - } - - auto intArray = (unsigned int*)(&byteList[0]); - vector output; - - for (int i = 0; i < count; i++) - { - unsigned int val = intArray[i]; - double doubleVal = val / (double)UINT_MAX; - output.push_back(doubleVal); - } - - return output; - } - - vector ShaRandom::Generate(long long seed, int count, double crossSeed) - { - auto seedA = seed; - auto seedB = ~seed; - auto seriesA = Generate(seedA, count); - auto seriesB = Generate(seedB, count); - - vector output; - for (int i = 0; i < count; i++) - output.push_back(seriesA[i] * (1 - crossSeed) + seriesB[i] * crossSeed); - - return output; - } -} \ No newline at end of file diff --git a/CloudSeed.Native/AudioLib/ShaRandom.h b/CloudSeed.Native/AudioLib/ShaRandom.h deleted file mode 100644 index e9ef7b0..0000000 --- a/CloudSeed.Native/AudioLib/ShaRandom.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef SHARANDOM -#define SHARANDOM - -#include - -namespace AudioLib -{ - class ShaRandom - { - public: - static std::vector Generate(long long seed, int count); - static std::vector Generate(long long seed, int count, double crossSeed); - }; -} - -#endif diff --git a/CloudSeed.Native/AudioLib/ValueTables.cpp b/CloudSeed.Native/AudioLib/ValueTables.cpp deleted file mode 100644 index a27f915..0000000 --- a/CloudSeed.Native/AudioLib/ValueTables.cpp +++ /dev/null @@ -1,84 +0,0 @@ - -#include -#include "ValueTables.h" - -namespace AudioLib -{ - double ValueTables::Sqrt[TableSize]; - double ValueTables::Sqrt3[TableSize]; - double ValueTables::Pow1_5[TableSize]; - double ValueTables::Pow2[TableSize]; - double ValueTables::Pow3[TableSize]; - double ValueTables::Pow4[TableSize]; - double ValueTables::x2Pow3[TableSize]; - - // octave response. value double every step (2,3,4,5 or 6 steps) - double ValueTables::Response2Oct[TableSize]; - double ValueTables::Response3Oct[TableSize]; - double ValueTables::Response4Oct[TableSize]; - double ValueTables::Response5Oct[TableSize]; - double ValueTables::Response6Oct[TableSize]; - - // decade response, value multiplies by 10 every step - double ValueTables::Response2Dec[TableSize]; - double ValueTables::Response3Dec[TableSize]; - double ValueTables::Response4Dec[TableSize]; - - void ValueTables::Init() - { - // Initialize tables - - for (int i = 0; i <= 4000; i++) - { - double x = i / 4000.0; - - Sqrt[i] = std::sqrt(x); - Sqrt3[i] = std::pow(x, 1.0 / 3.0); - Pow1_5[i] = std::pow(x, 1.5); - Pow2[i] = std::pow(x, 2.0); - Pow3[i] = std::pow(x, 3.0); - Pow4[i] = std::pow(x, 4.0); - - x2Pow3[i] = std::pow(2 * x, 3.0); - Response2Oct[i] = (std::pow(4, x) - 1.0) / 4.0 + 0.25; - Response3Oct[i] = (std::pow(8, x) - 1.0) / 8.0 + 0.125; - Response4Oct[i] = (std::pow(16, x) - 1.0) / 16.0 + 0.125 / 2.0; - Response5Oct[i] = (std::pow(32, x) - 1.0) / 32.0 + 0.125 / 4.0; - Response6Oct[i] = (std::pow(64, x) - 1.0) / 64.0 + 0.125 / 8.0; - - Response2Dec[i] = std::pow(100, x) / 100.0; - Response3Dec[i] = std::pow(1000, x) / 1000.0; - Response4Dec[i] = std::pow(10000, x) / 10000.0; - } - - for (int i = 1; i <= 4000; i++) - { - Response2Oct[i] = (Response2Oct[i] - Response2Oct[0]) / (1 - Response2Oct[0]); - Response3Oct[i] = (Response3Oct[i] - Response3Oct[0]) / (1 - Response3Oct[0]); - Response4Oct[i] = (Response4Oct[i] - Response4Oct[0]) / (1 - Response4Oct[0]); - Response5Oct[i] = (Response5Oct[i] - Response5Oct[0]) / (1 - Response5Oct[0]); - Response6Oct[i] = (Response6Oct[i] - Response6Oct[0]) / (1 - Response6Oct[0]); - Response2Dec[i] = (Response2Dec[i] - Response2Dec[0]) / (1 - Response2Dec[0]); - Response3Dec[i] = (Response3Dec[i] - Response3Dec[0]) / (1 - Response3Dec[0]); - Response4Dec[i] = (Response4Dec[i] - Response4Dec[0]) / (1 - Response4Dec[0]); - } - - Response2Oct[0] = 0; - Response3Oct[0] = 0; - Response4Oct[0] = 0; - Response5Oct[0] = 0; - Response6Oct[0] = 0; - Response2Dec[0] = 0; - Response3Dec[0] = 0; - Response4Dec[0] = 0; - } - - double ValueTables::Get(double index, double* table) - { - if (table == nullptr) - return index; - - int idx = (int)(index * 4000.999); - return table[idx]; - } -} diff --git a/CloudSeed.Native/AudioLib/ValueTables.h b/CloudSeed.Native/AudioLib/ValueTables.h deleted file mode 100644 index 1a5cc8c..0000000 --- a/CloudSeed.Native/AudioLib/ValueTables.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef AUDIOLIB_VALUETABLES -#define AUDIOLIB_VALUETABLES - -namespace AudioLib -{ - class ValueTables - { - public: - static const int TableSize = 4001; - - static double Sqrt[TableSize]; - static double Sqrt3[TableSize]; - static double Pow1_5[TableSize]; - static double Pow2[TableSize]; - static double Pow3[TableSize]; - static double Pow4[TableSize]; - static double x2Pow3[TableSize]; - - // octave response. value double every step (2,3,4,5 or 6 steps) - static double Response2Oct[TableSize]; - static double Response3Oct[TableSize]; - static double Response4Oct[TableSize]; - static double Response5Oct[TableSize]; - static double Response6Oct[TableSize]; - - // decade response, value multiplies by 10 every step - static double Response2Dec[TableSize]; - static double Response3Dec[TableSize]; - static double Response4Dec[TableSize]; - - static void Init(); - static double Get(double index, double* table); - }; -} - -#endif diff --git a/CloudSeed.Native/CloudSeed.Native.vcxproj b/CloudSeed.Native/CloudSeed.Native.vcxproj deleted file mode 100644 index cb09422..0000000 --- a/CloudSeed.Native/CloudSeed.Native.vcxproj +++ /dev/null @@ -1,203 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {71460306-FE20-4720-A7D8-3D13B1739B17} - CloudSeedNative - 10.0.16299.0 - - - - DynamicLibrary - true - v140 - MultiByte - - - DynamicLibrary - true - v141 - MultiByte - false - - - DynamicLibrary - false - v140 - true - MultiByte - - - DynamicLibrary - false - v141 - true - MultiByte - - - - - - - - - - - - - - - - - - - bin\$(Platform)\$(Configuration)\ - bin\$(Platform)\$(Configuration)\ - - - bin\$(Platform)\$(Configuration)\ - bin\$(Platform)\$(Configuration)\ - - - bin\$(Platform)\$(Configuration)\ - bin\$(Platform)\$(Configuration)\ - - - bin\$(Platform)\$(Configuration)\ - bin\$(Platform)\$(Configuration)\ - - - - Level3 - Disabled - true - DEBUG;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - - - true - true - - - copy $(TargetDir)$(TargetFileName) $(SolutionDir)CloudSeed\bin\$(Configuration)\$(TargetFileName) -copy $(TargetDir)$(TargetFileName) $(SolutionDir)CloudSeed.Tests\bin\$(PlatformTarget)\$(Configuration)\$(TargetFileName) -copy $(TargetDir)$(TargetFileName) $(SolutionDir)CloudSeed.Ui.Dev\bin\$(PlatformTarget)\$(Configuration)\$(TargetFileName) - - - - - Level3 - Disabled - true - DEBUG;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - - - true - true - - - copy $(TargetDir)$(TargetFileName) $(SolutionDir)CloudSeed\bin\$(Configuration)\$(TargetFileName) -copy $(TargetDir)$(TargetFileName) $(SolutionDir)CloudSeed.Tests\bin\$(PlatformTarget)\$(Configuration)\$(TargetFileName) - - - - - Level3 - MaxSpeed - true - true - true - AnySuitable - Speed - false - false - StreamingSIMDExtensions2 - Fast - MultiThreadedDLL - - - true - true - true - - - copy $(TargetDir)$(TargetFileName) $(SolutionDir)CloudSeed\bin\$(Configuration)\$(TargetFileName) -copy $(TargetDir)$(TargetFileName) $(SolutionDir)CloudSeed.Tests\bin\$(PlatformTarget)\$(Configuration)\$(TargetFileName) -copy $(TargetDir)$(TargetFileName) $(SolutionDir)CloudSeed.Ui.Dev\bin\$(PlatformTarget)\$(Configuration)\$(TargetFileName) - - - - - Level3 - MaxSpeed - true - true - true - AnySuitable - Speed - false - false - StreamingSIMDExtensions2 - Fast - MultiThreadedDLL - - - true - true - true - - - copy $(TargetDir)$(TargetFileName) $(SolutionDir)CloudSeed\bin\$(Configuration)\$(TargetFileName) -copy $(TargetDir)$(TargetFileName) $(SolutionDir)CloudSeed.Tests\bin\$(PlatformTarget)\$(Configuration)\$(TargetFileName) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/CloudSeed.Native/CloudSeed.Native.vcxproj.filters b/CloudSeed.Native/CloudSeed.Native.vcxproj.filters deleted file mode 100644 index ebb1823..0000000 --- a/CloudSeed.Native/CloudSeed.Native.vcxproj.filters +++ /dev/null @@ -1,95 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - {dbfb8845-4920-4335-b646-703c46dad011} - - - {e90233f2-634b-43dd-9327-4a8ebd7e032b} - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files\AudioLib - - - Source Files\AudioLib - - - Source Files\AudioLib - - - Source Files\AudioLib - - - Source Files\AudioLib - - - Source Files\AudioLib - - - Source Files\Utils - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Source Files\AudioLib - - - Source Files - - - Source Files\Utils - - - Source Files\AudioLib - - - Source Files\AudioLib - - - Source Files - - - \ No newline at end of file diff --git a/CloudSeed.Native/Default.h b/CloudSeed.Native/Default.h deleted file mode 100644 index cc032a0..0000000 --- a/CloudSeed.Native/Default.h +++ /dev/null @@ -1,17 +0,0 @@ - -#ifndef DEFAULT_INCLUDE -#define DEFAULT_INCLUDE - -typedef unsigned char byte; -typedef unsigned int uint; -typedef unsigned long long ulong; - -#define __dllexport __declspec(dllexport) - -#ifdef DEBUG - #define __inline_always inline -#else - #define __inline_always __forceinline -#endif - -#endif diff --git a/CloudSeed.Native/DelayLine.h b/CloudSeed.Native/DelayLine.h deleted file mode 100644 index 9310433..0000000 --- a/CloudSeed.Native/DelayLine.h +++ /dev/null @@ -1,255 +0,0 @@ -#ifndef DELAYLINE -#define DELAYLINE - -#include "AudioLib\Lp1.h" -#include "ModulatedDelay.h" -#include "AllpassDiffuser.h" -#include "AudioLib\Biquad.h" - -using namespace AudioLib; - -namespace CloudSeed -{ - class DelayLine - { - private: - ModulatedDelay delay; - AllpassDiffuser diffuser; - Biquad lowShelf; - Biquad highShelf; - AudioLib::Lp1 lowPass; - double* tempBuffer; - double* mixedBuffer; - double* filterOutputBuffer; - int bufferSize; - double feedback; - int samplerate; - - public: - - bool DiffuserEnabled; - bool LowShelfEnabled; - bool HighShelfEnabled; - bool CutoffEnabled; - bool LateStageTap; - - DelayLine(int bufferSize, int samplerate) - : lowPass(samplerate) - , delay(bufferSize, samplerate * 2, 10000) // 2 second buffer, to prevent buffer overflow with modulation and randomness added (Which may increase effective delay) - , diffuser(samplerate, 150) // 150ms buffer - , lowShelf(AudioLib::Biquad::FilterType::LowShelf, samplerate) - , highShelf(AudioLib::Biquad::FilterType::HighShelf, samplerate) - { - this->bufferSize = bufferSize; - tempBuffer = new double[bufferSize]; - mixedBuffer = new double[bufferSize]; - filterOutputBuffer = new double[bufferSize]; - - lowShelf.Slope = 1.0; - lowShelf.SetGainDb(-20); - lowShelf.Frequency = 20; - - highShelf.Slope = 1.0; - highShelf.SetGainDb(-20); - highShelf.Frequency = 19000; - - lowPass.SetCutoffHz(1000); - lowShelf.Update(); - highShelf.Update(); - SetSamplerate(samplerate); - - SetDiffuserSeed(1, 0.0); - } - - ~DelayLine() - { - delete tempBuffer; - delete mixedBuffer; - delete filterOutputBuffer; - } - - - int GetSamplerate() - { - return samplerate; - } - - void SetSamplerate(int samplerate) - { - this->samplerate = samplerate; - diffuser.SetSamplerate(samplerate); - lowPass.SetSamplerate(samplerate); - lowShelf.SetSamplerate(samplerate); - highShelf.SetSamplerate(samplerate); - } - - void SetDiffuserSeed(int seed, double crossSeed) - { - diffuser.SetSeed(seed); - diffuser.SetCrossSeed(crossSeed); - } - - void SetDelay(int delaySamples) - { - delay.SampleDelay = delaySamples; - } - - void SetFeedback(double feedb) - { - feedback = feedb; - } - - void SetDiffuserDelay(int delaySamples) - { - diffuser.SetDelay(delaySamples); - } - - void SetDiffuserFeedback(double feedb) - { - diffuser.SetFeedback(feedb); - } - - void SetDiffuserStages(int stages) - { - diffuser.Stages = stages; - } - - void SetLowShelfGain(double gain) - { - lowShelf.SetGain(gain); - lowShelf.Update(); - } - - void SetLowShelfFrequency(double frequency) - { - lowShelf.Frequency = frequency; - lowShelf.Update(); - } - - void SetHighShelfGain(double gain) - { - highShelf.SetGain(gain); - highShelf.Update(); - } - - void SetHighShelfFrequency(double frequency) - { - highShelf.Frequency = frequency; - highShelf.Update(); - } - - void SetCutoffFrequency(double frequency) - { - lowPass.SetCutoffHz(frequency); - } - - void SetLineModAmount(double amount) - { - delay.ModAmount = amount; - } - - void SetLineModRate(double rate) - { - delay.ModRate = rate; - } - - void SetDiffuserModAmount(double amount) - { - diffuser.SetModulationEnabled(amount > 0.0); - diffuser.SetModAmount(amount); - } - - void SetDiffuserModRate(double rate) - { - diffuser.SetModRate(rate); - } - - void SetInterpolationEnabled(bool value) - { - diffuser.SetInterpolationEnabled(value); - } - - - double* GetOutput() - { - if (LateStageTap) - { - if (DiffuserEnabled) - return diffuser.GetOutput(); - else - return mixedBuffer; - } - else - { - return delay.GetOutput(); - } - } - - void Process(double* input, int sampleCount) - { - for (int i = 0; i < sampleCount; i++) - mixedBuffer[i] = input[i] + filterOutputBuffer[i] * feedback; - - if (LateStageTap) - { - if (DiffuserEnabled) - { - diffuser.Process(mixedBuffer, sampleCount); - delay.Process(diffuser.GetOutput(), sampleCount); - } - else - { - delay.Process(mixedBuffer, sampleCount); - } - - Utils::Copy(delay.GetOutput(), tempBuffer, sampleCount); - } - else - { - - if (DiffuserEnabled) - { - delay.Process(mixedBuffer, sampleCount); - diffuser.Process(delay.GetOutput(), sampleCount); - Utils::Copy(diffuser.GetOutput(), tempBuffer, sampleCount); - } - else - { - delay.Process(mixedBuffer, sampleCount); - Utils::Copy(delay.GetOutput(), tempBuffer, sampleCount); - } - } - - if (LowShelfEnabled) - lowShelf.Process(tempBuffer, tempBuffer, sampleCount); - if (HighShelfEnabled) - highShelf.Process(tempBuffer, tempBuffer, sampleCount); - if (CutoffEnabled) - lowPass.Process(tempBuffer, tempBuffer, sampleCount); - - Utils::Copy(tempBuffer, filterOutputBuffer, sampleCount); - } - - void ClearDiffuserBuffer() - { - diffuser.ClearBuffers(); - } - - void ClearBuffers() - { - delay.ClearBuffers(); - diffuser.ClearBuffers(); - lowShelf.ClearBuffers(); - highShelf.ClearBuffers(); - lowPass.Output = 0; - - for (int i = 0; i < bufferSize; i++) - { - tempBuffer[i] = 0.0; - filterOutputBuffer[i] = 0.0; - } - } - }; -} - -#endif \ No newline at end of file diff --git a/CloudSeed.Native/Exports.cpp b/CloudSeed.Native/Exports.cpp deleted file mode 100644 index 6ae0ba4..0000000 --- a/CloudSeed.Native/Exports.cpp +++ /dev/null @@ -1,68 +0,0 @@ - -#include "Default.h" -#include "ReverbController.h" -#include "FastSin.h" -#include "AudioLib\ValueTables.h" - -using namespace CloudSeed; -bool isInitialized = false; - -extern "C" -{ - __dllexport ReverbController* Create(int samplerate) - { - if (!isInitialized) - { - AudioLib::ValueTables::Init(); - FastSin::Init(); - isInitialized = true; - } - - return new ReverbController(samplerate); - } - - __dllexport void Delete(ReverbController* item) - { - delete item; - } - - __dllexport int GetSamplerate(ReverbController* item) - { - return item->GetSamplerate(); - } - - __dllexport void SetSamplerate(ReverbController* item, int samplerate) - { - return item->SetSamplerate(samplerate); - } - - __dllexport int GetParameterCount(ReverbController* item) - { - return item->GetParameterCount(); - } - - __dllexport double* GetAllParameters(ReverbController* item) - { - return item->GetAllParameters(); - } - - __dllexport double GetScaledParameter(ReverbController* item, Parameter param) - { - return item->GetScaledParameter(param); - } - - __dllexport void SetParameter(ReverbController* item, Parameter param, double value) - { - item->SetParameter(param, value); - } - - __dllexport void ClearBuffers(ReverbController* item) - { - item->ClearBuffers(); - } - - __dllexport void Process(ReverbController* item, double** input, double** output, int bufferSize) - { - item->Process(input, output, bufferSize); - } -} diff --git a/CloudSeed.Native/FastSin.cpp b/CloudSeed.Native/FastSin.cpp deleted file mode 100644 index ca9a7b0..0000000 --- a/CloudSeed.Native/FastSin.cpp +++ /dev/null @@ -1,10 +0,0 @@ - -#define _USE_MATH_DEFINES -#include -#include "Default.h" -#include "FastSin.h" - -namespace CloudSeed -{ - double FastSin::data[FastSin::DataSize]; -} diff --git a/CloudSeed.Native/FastSin.h b/CloudSeed.Native/FastSin.h deleted file mode 100644 index 6acf035..0000000 --- a/CloudSeed.Native/FastSin.h +++ /dev/null @@ -1,31 +0,0 @@ -#pragma once - -#include -#include "AudioLib/MathDefs.h" -#include "FastSin.h" - -namespace CloudSeed -{ - class FastSin - { - private: - static const int DataSize = 32768; - static double data[DataSize]; - - public: - static void ZeroBuffer(double* buffer, int len); - static void Init() - { - for (int i = 0; i < DataSize; i++) - { - data[i] = std::sin(2 * M_PI * i / (double)DataSize); - } - } - - static double Get(double index) - { - return data[(int)(index * 32767.99999)]; - } - }; -} - diff --git a/CloudSeed.Native/ModulatedAllpass.h b/CloudSeed.Native/ModulatedAllpass.h deleted file mode 100644 index f44d566..0000000 --- a/CloudSeed.Native/ModulatedAllpass.h +++ /dev/null @@ -1,177 +0,0 @@ -#ifndef MODULATEDALLPASS -#define MODULATEDALLPASS - -#include "ModulatedAllpass.h" -#include "FastSin.h" -#include "Utils.h" - -namespace CloudSeed -{ - class ModulatedAllpass - { - public: - const int DelayBufferSamples = 19200; // 100ms at 192Khz - static const int ModulationUpdateRate = 8; - - private: - double* delayBuffer; - double* output; - int bufferSize; - int index; - unsigned int samplesProcessed; - - double modPhase; - int delayA; - int delayB; - double gainA; - double gainB; - - public: - - int SampleDelay; - double Feedback; - double ModAmount; - double ModRate; - - bool InterpolationEnabled; - bool ModulationEnabled; - - ModulatedAllpass(int bufferSize, int sampleDelay) - { - this->InterpolationEnabled = true; - this->bufferSize = bufferSize; - delayBuffer = new double[DelayBufferSamples]; - output = new double[bufferSize]; - SampleDelay = sampleDelay; - index = DelayBufferSamples - 1; - modPhase = 0.01 + 0.98 * std::rand() / (double)RAND_MAX; - ModRate = 0.0; - ModAmount = 0.0; - Update(); - } - - ~ModulatedAllpass() - { - delete delayBuffer; - delete output; - } - - - __forceinline double* GetOutput() - { - return output; - } - - void ClearBuffers() - { - Utils::ZeroBuffer(delayBuffer, DelayBufferSamples); - Utils::ZeroBuffer(output, bufferSize); - } - - void Process(double* input, int sampleCount) - { - if (ModulationEnabled) - ProcessWithMod(input, sampleCount); - else - ProcessNoMod(input, sampleCount); - } - - - private: - void ProcessNoMod(double* input, int sampleCount) - { - auto delayedIndex = index - SampleDelay; - if (delayedIndex < 0) delayedIndex += DelayBufferSamples; - - for (int i = 0; i < sampleCount; i++) - { - auto bufOut = delayBuffer[delayedIndex]; - auto inVal = input[i] + bufOut * Feedback; - - delayBuffer[index] = inVal; - output[i] = bufOut - inVal * Feedback; - - index++; - delayedIndex++; - if (index >= DelayBufferSamples) index -= DelayBufferSamples; - if (delayedIndex >= DelayBufferSamples) delayedIndex -= DelayBufferSamples; - samplesProcessed++; - } - } - - void ProcessWithMod(double* input, int sampleCount) - { - for (int i = 0; i < sampleCount; i++) - { - if (samplesProcessed >= ModulationUpdateRate) - Update(); - - double bufOut; - - if (InterpolationEnabled) - { - int idxA = index - delayA; - int idxB = index - delayB; - idxA += DelayBufferSamples * (idxA < 0); // modulo - idxB += DelayBufferSamples * (idxB < 0); // modulo - - bufOut = delayBuffer[idxA] * gainA + delayBuffer[idxB] * gainB; - } - else - { - int idxA = index - delayA; - idxA += DelayBufferSamples * (idxA < 0); // modulo - bufOut = delayBuffer[idxA]; - } - - auto inVal = input[i] + bufOut * Feedback; - delayBuffer[index] = inVal; - output[i] = bufOut - inVal * Feedback; - - index++; - if (index >= DelayBufferSamples) index -= DelayBufferSamples; - samplesProcessed++; - } - } - - __forceinline double Get(int delay) - { - int idx = index - delay; - if (idx < 0) - idx += DelayBufferSamples; - - return delayBuffer[idx]; - } - - void Update() - { - modPhase += ModRate * ModulationUpdateRate; - if (modPhase > 1) - modPhase = std::fmod(modPhase, 1.0); - - auto mod = FastSin::Get(modPhase); - - if (ModAmount >= SampleDelay) // don't modulate to negative value - ModAmount = SampleDelay - 1; - - - auto totalDelay = SampleDelay + ModAmount * mod; - - if (totalDelay <= 0) // should no longer be required - totalDelay = 1; - - delayA = (int)totalDelay; - delayB = (int)totalDelay + 1; - - auto partial = totalDelay - delayA; - - gainA = 1 - partial; - gainB = partial; - - samplesProcessed = 0; - } - - }; -} - -#endif \ No newline at end of file diff --git a/CloudSeed.Native/ModulatedDelay.h b/CloudSeed.Native/ModulatedDelay.h deleted file mode 100644 index ece3439..0000000 --- a/CloudSeed.Native/ModulatedDelay.h +++ /dev/null @@ -1,115 +0,0 @@ -#ifndef MODULATEDDELAY -#define MODULATEDDELAY - -#include "ModulatedDelay.h" -#include "Utils.h" -#include "FastSin.h" - -namespace CloudSeed -{ - class ModulatedDelay - { - private: - - const int ModulationUpdateRate = 8; - - double* delayBuffer; - double* output; - int bufferSize; - int writeIndex; - int readIndexA; - int readIndexB; - int samplesProcessed; - int delayBufferSizeSamples; - - double modPhase; - double gainA; - double gainB; - - public: - int SampleDelay; - - double ModAmount; - double ModRate; - - ModulatedDelay(int bufferSize, int delayBufferSizeSamples, int sampleDelay) - { - this->delayBufferSizeSamples = delayBufferSizeSamples; - this->bufferSize = bufferSize; - this->delayBuffer = new double[delayBufferSizeSamples]; - this->output = new double[bufferSize]; - this->SampleDelay = sampleDelay; - writeIndex = 0; - modPhase = 0.01 + 0.98 * (std::rand() / (double)RAND_MAX); - ModRate = 0.0; - ModAmount = 0.0; - Update(); - } - - ~ModulatedDelay() - { - delete delayBuffer; - delete output; - } - - double* GetOutput() - { - return output; - } - - void Process(double* input, int sampleCount) - { - for (int i = 0; i < sampleCount; i++) - { - if (samplesProcessed == ModulationUpdateRate) - Update(); - - delayBuffer[writeIndex] = input[i]; - output[i] = delayBuffer[readIndexA] * gainA + delayBuffer[readIndexB] * gainB; - - writeIndex++; - readIndexA++; - readIndexB++; - if (writeIndex >= delayBufferSizeSamples) writeIndex -= delayBufferSizeSamples; - if (readIndexA >= delayBufferSizeSamples) readIndexA -= delayBufferSizeSamples; - if (readIndexB >= delayBufferSizeSamples) readIndexB -= delayBufferSizeSamples; - samplesProcessed++; - } - } - - void ClearBuffers() - { - Utils::ZeroBuffer(delayBuffer, delayBufferSizeSamples); - Utils::ZeroBuffer(output, bufferSize); - } - - - private: - void Update() - { - modPhase += ModRate * ModulationUpdateRate; - if (modPhase > 1) - modPhase = std::fmod(modPhase, 1.0); - - auto mod = FastSin::Get(modPhase); - auto totalDelay = SampleDelay + ModAmount * mod; - - auto delayA = (int)totalDelay; - auto delayB = (int)totalDelay + 1; - - auto partial = totalDelay - delayA; - - gainA = 1 - partial; - gainB = partial; - - readIndexA = writeIndex - delayA; - readIndexB = writeIndex - delayB; - if (readIndexA < 0) readIndexA += delayBufferSizeSamples; - if (readIndexB < 0) readIndexB += delayBufferSizeSamples; - - samplesProcessed = 0; - } - }; -} - -#endif \ No newline at end of file diff --git a/CloudSeed.Native/MultitapDiffuser.h b/CloudSeed.Native/MultitapDiffuser.h deleted file mode 100644 index 4bddf19..0000000 --- a/CloudSeed.Native/MultitapDiffuser.h +++ /dev/null @@ -1,208 +0,0 @@ -#ifndef MULTITAPDIFFUSER -#define MULTITAPDIFFUSER - -#include -#include -#include -#include "MultitapDiffuser.h" -#include "Utils.h" -#include "AudioLib/ShaRandom.h" - -namespace CloudSeed -{ - using namespace std; - - class MultitapDiffuser - { - public: - static const int MaxTaps = 50; - - private: - double* buffer; - double* output; - int len; - - int index; - vector tapGains; - vector tapPosition; - vector seedValues; - int seed; - double crossSeed; - int count; - double length; - double gain; - double decay; - - bool isDirty; - vector tapGainsTemp; - vector tapPositionTemp; - int countTemp; - - public: - MultitapDiffuser(int delayBufferSize) - { - len = delayBufferSize; - buffer = new double[delayBufferSize]; - output = new double[delayBufferSize]; - index = 0; - count = 1; - length = 1; - gain = 1.0; - decay = 0.0; - crossSeed = 0.0; - UpdateSeeds(); - } - - ~MultitapDiffuser() - { - delete buffer; - delete output; - } - - - void SetSeed(int seed) - { - this->seed = seed; - UpdateSeeds(); - } - - void SetCrossSeed(double crossSeed) - { - this->crossSeed = crossSeed; - UpdateSeeds(); - } - - double* GetOutput() - { - return output; - } - - void SetTapCount(int tapCount) - { - count = tapCount; - Update(); - } - - void SetTapLength(int tapLength) - { - length = tapLength; - Update(); - } - - void SetTapDecay(double tapDecay) - { - decay = tapDecay; - Update(); - } - - void SetTapGain(double tapGain) - { - gain = tapGain; - Update(); - } - - void Process(double* input, int sampleCount) - { - // prevents race condition when parameters are updated from Gui - if (isDirty) - { - tapGainsTemp = tapGains; - tapPositionTemp = tapPosition; - countTemp = count; - isDirty = false; - } - - int* const tapPos = &tapPositionTemp[0]; - double* const tapGain = &tapGainsTemp[0]; - const int cnt = countTemp; - - for (int i = 0; i < sampleCount; i++) - { - if (index < 0) index += len; - buffer[index] = input[i]; - output[i] = 0.0; - - for (int j = 0; j < cnt; j++) - { - auto idx = (index + tapPos[j]) % len; - output[i] += buffer[idx] * tapGain[j]; - } - - index--; - } - } - - void ClearBuffers() - { - Utils::ZeroBuffer(buffer, len); - Utils::ZeroBuffer(output, len); - } - - - private: - void Update() - { - vector newTapGains; - vector newTapPosition; - - int s = 0; - auto rand = [&]() {return seedValues[s++]; }; - - if (count < 1) - count = 1; - - if (length < count) - length = count; - - // used to adjust the volume of the overall output as it grows when we add more taps - double tapCountFactor = 1.0 / (1 + std::sqrt(count / MaxTaps)); - - newTapGains.resize(count); - newTapPosition.resize(count); - - vector tapData(count, 0.0); - - auto sumLengths = 0.0; - for (size_t i = 0; i < count; i++) - { - auto val = 0.1 + rand(); - tapData[i] = val; - sumLengths += val; - } - - auto scaleLength = length / sumLengths; - newTapPosition[0] = 0; - - for (int i = 1; i < count; i++) - { - newTapPosition[i] = newTapPosition[i - 1] + (int)(tapData[i] * scaleLength); - } - - double sumGains = 0.0; - double lastTapPos = newTapPosition[count - 1]; - for (int i = 0; i < count; i++) - { - // when decay set to 0, there is no decay, when set to 1, the gain at the last sample is 0.01 = -40dB - auto g = std::pow(10, -decay * 2 * newTapPosition[i] / (double)(lastTapPos + 1)); - - auto tap = (2 * rand() - 1) * tapCountFactor; - newTapGains[i] = tap * g * gain; - } - - // Set the tap vs. clean mix - newTapGains[0] = (1 - gain); - - this->tapGains = newTapGains; - this->tapPosition = newTapPosition; - isDirty = true; - } - - void UpdateSeeds() - { - this->seedValues = AudioLib::ShaRandom::Generate(seed, 100, crossSeed); - Update(); - } - }; -} - -#endif diff --git a/CloudSeed.Native/Parameter.h b/CloudSeed.Native/Parameter.h deleted file mode 100644 index 1db7629..0000000 --- a/CloudSeed.Native/Parameter.h +++ /dev/null @@ -1,89 +0,0 @@ -#ifndef PARAMETER -#define PARAMETER - -enum class Parameter -{ - // Input - - InputMix = 0, - PreDelay, - - HighPass, - LowPass, - - // Early - - TapCount, - TapLength, - TapGain, - TapDecay, - - DiffusionEnabled, - DiffusionStages, - DiffusionDelay, - DiffusionFeedback, - - // Late - - LineCount, - LineDelay, - LineDecay, - - - LateDiffusionEnabled, - LateDiffusionStages, - LateDiffusionDelay, - LateDiffusionFeedback, - - // Frequency Response - - PostLowShelfGain, - PostLowShelfFrequency, - PostHighShelfGain, - PostHighShelfFrequency, - PostCutoffFrequency, - - // Modulation - - EarlyDiffusionModAmount, - EarlyDiffusionModRate, - - LineModAmount, - LineModRate, - - LateDiffusionModAmount, - LateDiffusionModRate, - - // Seeds - - TapSeed, - DiffusionSeed, - DelaySeed, - PostDiffusionSeed, - - // Seed Mix - - CrossSeed, - - DryOut, - PredelayOut, - EarlyOut, - MainOut, - - // Switches - HiPassEnabled, - LowPassEnabled, - LowShelfEnabled, - HighShelfEnabled, - CutoffEnabled, - LateStageTap, - - // Effects - Interpolation, - - Count, - - Unused = 999 -}; - -#endif diff --git a/CloudSeed.Native/ReverbChannel.h b/CloudSeed.Native/ReverbChannel.h deleted file mode 100644 index a7cfa85..0000000 --- a/CloudSeed.Native/ReverbChannel.h +++ /dev/null @@ -1,487 +0,0 @@ - -#ifndef REVERBCHANNEL -#define REVERBCHANNEL - -#include -#include -#include "Parameter.h" -#include "ModulatedDelay.h" -#include "MultitapDiffuser.h" -#include "AudioLib/ShaRandom.h" -#include "AudioLib/Lp1.h" -#include "AudioLib/Hp1.h" -#include "DelayLine.h" -#include "AllpassDiffuser.h" - -#include -#include "ReverbChannel.h" -#include "AudioLib\ShaRandom.h" -#include "Utils.h" - -using namespace std; - -namespace CloudSeed -{ - enum class ChannelLR - { - Left, - Right - }; - - class ReverbChannel - { - private: - static const int TotalLineCount = 12; - - map parameters; - int samplerate; - int bufferSize; - - ModulatedDelay preDelay; - MultitapDiffuser multitap; - AllpassDiffuser diffuser; - vector lines; - AudioLib::ShaRandom rand; - AudioLib::Hp1 highPass; - AudioLib::Lp1 lowPass; - double* tempBuffer; - double* lineOutBuffer; - double* outBuffer; - int delayLineSeed; - int postDiffusionSeed; - - // Used the the main process loop - int lineCount; - - bool highPassEnabled; - bool lowPassEnabled; - bool diffuserEnabled; - double dryOut; - double predelayOut; - double earlyOut; - double lineOut; - double crossSeed; - ChannelLR channelLr; - - public: - - ReverbChannel(int bufferSize, int samplerate, ChannelLR leftOrRight) - : preDelay(bufferSize, (int)(samplerate * 1.0), 100) // 1 second delay buffer - , multitap(samplerate) // use samplerate = 1 second delay buffer - , highPass(samplerate) - , lowPass(samplerate) - , diffuser(samplerate, 150) // 150ms buffer, to allow for 100ms + modulation time - { - this->channelLr = leftOrRight; - - for (int i = 0; i < TotalLineCount; i++) - lines.push_back(new DelayLine(bufferSize, samplerate)); - - this->bufferSize = bufferSize; - - for (auto value = 0; value < (int)Parameter::Count; value++) - this->parameters[static_cast(value)] = 0.0; - - crossSeed = 0.0; - lineCount = 8; - diffuser.SetInterpolationEnabled(true); - highPass.SetCutoffHz(20); - lowPass.SetCutoffHz(20000); - - tempBuffer = new double[bufferSize]; - lineOutBuffer = new double[bufferSize]; - outBuffer = new double[bufferSize]; - - this->samplerate = samplerate; - } - - ~ReverbChannel() - { - for (auto line : lines) - delete line; - - delete tempBuffer; - delete lineOutBuffer; - delete outBuffer; - } - - int GetSamplerate() - { - return samplerate; - } - - void SetSamplerate(int samplerate) - { - this->samplerate = samplerate; - highPass.SetSamplerate(samplerate); - lowPass.SetSamplerate(samplerate); - - for (int i = 0; i < lines.size(); i++) - { - lines[i]->SetSamplerate(samplerate); - } - - auto update = [&](Parameter p) { SetParameter(p, parameters[p]); }; - update(Parameter::PreDelay); - update(Parameter::TapLength); - update(Parameter::DiffusionDelay); - update(Parameter::LineDelay); - update(Parameter::LateDiffusionDelay); - update(Parameter::EarlyDiffusionModRate); - update(Parameter::LineModRate); - update(Parameter::LateDiffusionModRate); - update(Parameter::LineModAmount); - UpdateLines(); - } - - double* GetOutput() - { - return outBuffer; - } - - double* GetLineOutput() - { - return lineOutBuffer; - } - - void SetParameter(Parameter para, double value) - { - parameters[para] = value; - - switch (para) - { - case Parameter::PreDelay: - preDelay.SampleDelay = (int)Ms2Samples(value); - break; - case Parameter::HighPass: - highPass.SetCutoffHz(value); - break; - case Parameter::LowPass: - lowPass.SetCutoffHz(value); - break; - - case Parameter::TapCount: - multitap.SetTapCount((int)value); - break; - case Parameter::TapLength: - multitap.SetTapLength((int)Ms2Samples(value)); - break; - case Parameter::TapGain: - multitap.SetTapGain(value); - break; - case Parameter::TapDecay: - multitap.SetTapDecay(value); - break; - - case Parameter::DiffusionEnabled: - { - auto newVal = value >= 0.5; - if (newVal != diffuserEnabled) - diffuser.ClearBuffers(); - diffuserEnabled = newVal; - break; - } - case Parameter::DiffusionStages: - diffuser.Stages = (int)value; - break; - case Parameter::DiffusionDelay: - diffuser.SetDelay((int)Ms2Samples(value)); - break; - case Parameter::DiffusionFeedback: - diffuser.SetFeedback(value); - break; - - case Parameter::LineCount: - lineCount = (int)value; - break; - case Parameter::LineDelay: - UpdateLines(); - break; - case Parameter::LineDecay: - UpdateLines(); - break; - - case Parameter::LateDiffusionEnabled: - for (auto line : lines) - { - auto newVal = value >= 0.5; - if (newVal != line->DiffuserEnabled) - line->ClearDiffuserBuffer(); - line->DiffuserEnabled = newVal; - } - break; - case Parameter::LateDiffusionStages: - for (auto line : lines) - line->SetDiffuserStages((int)value); - break; - case Parameter::LateDiffusionDelay: - for (auto line : lines) - line->SetDiffuserDelay((int)Ms2Samples(value)); - break; - case Parameter::LateDiffusionFeedback: - for (auto line : lines) - line->SetDiffuserFeedback(value); - break; - - case Parameter::PostLowShelfGain: - for (auto line : lines) - line->SetLowShelfGain(value); - break; - case Parameter::PostLowShelfFrequency: - for (auto line : lines) - line->SetLowShelfFrequency(value); - break; - case Parameter::PostHighShelfGain: - for (auto line : lines) - line->SetHighShelfGain(value); - break; - case Parameter::PostHighShelfFrequency: - for (auto line : lines) - line->SetHighShelfFrequency(value); - break; - case Parameter::PostCutoffFrequency: - for (auto line : lines) - line->SetCutoffFrequency(value); - break; - - case Parameter::EarlyDiffusionModAmount: - diffuser.SetModulationEnabled(value > 0.0); - diffuser.SetModAmount(Ms2Samples(value)); - break; - case Parameter::EarlyDiffusionModRate: - diffuser.SetModRate(value); - break; - case Parameter::LineModAmount: - UpdateLines(); - break; - case Parameter::LineModRate: - UpdateLines(); - break; - case Parameter::LateDiffusionModAmount: - UpdateLines(); - break; - case Parameter::LateDiffusionModRate: - UpdateLines(); - break; - - case Parameter::TapSeed: - multitap.SetSeed((int)value); - break; - case Parameter::DiffusionSeed: - diffuser.SetSeed((int)value); - break; - case Parameter::DelaySeed: - delayLineSeed = (int)value; - UpdateLines(); - break; - case Parameter::PostDiffusionSeed: - postDiffusionSeed = (int)value; - UpdatePostDiffusion(); - break; - - case Parameter::CrossSeed: - - crossSeed = channelLr == ChannelLR::Right ? value : 0; - multitap.SetCrossSeed(value); - diffuser.SetCrossSeed(value); - UpdateLines(); - UpdatePostDiffusion(); - break; - - case Parameter::DryOut: - dryOut = value; - break; - case Parameter::PredelayOut: - predelayOut = value; - break; - case Parameter::EarlyOut: - earlyOut = value; - break; - case Parameter::MainOut: - lineOut = value; - break; - - case Parameter::HiPassEnabled: - highPassEnabled = value >= 0.5; - break; - case Parameter::LowPassEnabled: - lowPassEnabled = value >= 0.5; - break; - case Parameter::LowShelfEnabled: - for (auto line : lines) - line->LowShelfEnabled = value >= 0.5; - break; - case Parameter::HighShelfEnabled: - for (auto line : lines) - line->HighShelfEnabled = value >= 0.5; - break; - case Parameter::CutoffEnabled: - for (auto line : lines) - line->CutoffEnabled = value >= 0.5; - break; - case Parameter::LateStageTap: - for (auto line : lines) - line->LateStageTap = value >= 0.5; - break; - - case Parameter::Interpolation: - for (auto line : lines) - line->SetInterpolationEnabled(value >= 0.5); - break; - } - } - - void Process(double* input, int sampleCount) - { - int len = sampleCount; - auto predelayOutput = preDelay.GetOutput(); - auto lowPassInput = highPassEnabled ? tempBuffer : input; - - if (highPassEnabled) - highPass.Process(input, tempBuffer, len); - if (lowPassEnabled) - lowPass.Process(lowPassInput, tempBuffer, len); - if (!lowPassEnabled && !highPassEnabled) - Utils::Copy(input, tempBuffer, len); - - // completely zero if no input present - // Previously, the very small values were causing some really strange CPU spikes - for (int i = 0; i < len; i++) - { - auto n = tempBuffer[i]; - if (n * n < 0.000000001) - tempBuffer[i] = 0; - } - - preDelay.Process(tempBuffer, len); - multitap.Process(preDelay.GetOutput(), len); - - auto earlyOutStage = diffuserEnabled ? diffuser.GetOutput() : multitap.GetOutput(); - - if (diffuserEnabled) - { - diffuser.Process(multitap.GetOutput(), len); - Utils::Copy(diffuser.GetOutput(), tempBuffer, len); - } - else - { - Utils::Copy(multitap.GetOutput(), tempBuffer, len); - } - - // mix in the feedback from the other channel - //for (int i = 0; i < len; i++) - // tempBuffer[i] += crossMix[i]; - - for (int i = 0; i < lineCount; i++) - lines[i]->Process(tempBuffer, len); - - for (int i = 0; i < lineCount; i++) - { - auto buf = lines[i]->GetOutput(); - - if (i == 0) - { - for (int j = 0; j < len; j++) - tempBuffer[j] = buf[j]; - } - else - { - for (int j = 0; j < len; j++) - tempBuffer[j] += buf[j]; - } - } - - auto perLineGain = GetPerLineGain(); - Utils::Gain(tempBuffer, perLineGain, len); - Utils::Copy(tempBuffer, lineOutBuffer, len); - - for (int i = 0; i < len; i++) - { - outBuffer[i] = - dryOut * input[i] + - predelayOut * predelayOutput[i] + - earlyOut * earlyOutStage[i] + - lineOut * tempBuffer[i]; - } - } - - void ClearBuffers() - { - for (int i = 0; i < bufferSize; i++) - { - tempBuffer[i] = 0.0; - lineOutBuffer[i] = 0.0; - outBuffer[i] = 0.0; - } - - lowPass.Output = 0; - highPass.Output = 0; - - preDelay.ClearBuffers(); - multitap.ClearBuffers(); - diffuser.ClearBuffers(); - for (auto line : lines) - line->ClearBuffers(); - } - - - private: - double GetPerLineGain() - { - return 1.0 / std::sqrt(lineCount); - } - - void UpdateLines() - { - auto lineDelaySamples = (int)Ms2Samples(parameters[Parameter::LineDelay]); - auto lineDecayMillis = parameters[Parameter::LineDecay] * 1000; - auto lineDecaySamples = Ms2Samples(lineDecayMillis); - - auto lineModAmount = Ms2Samples(parameters[Parameter::LineModAmount]); - auto lineModRate = parameters[Parameter::LineModRate]; - - auto lateDiffusionModAmount = Ms2Samples(parameters[Parameter::LateDiffusionModAmount]); - auto lateDiffusionModRate = parameters[Parameter::LateDiffusionModRate]; - - auto delayLineSeeds = ShaRandom::Generate(delayLineSeed, (int)lines.size() * 3, crossSeed); - int count = (int)lines.size(); - - for (int i = 0; i < count; i++) - { - auto modAmount = lineModAmount * (0.7 + 0.3 * delayLineSeeds[i + count]); - auto modRate = lineModRate * (0.7 + 0.3 * delayLineSeeds[i + 2 * count]) / samplerate; - - auto delaySamples = (0.5 + 1.0 * delayLineSeeds[i]) * lineDelaySamples; - if (delaySamples < modAmount + 2) // when the delay is set really short, and the modulation is very high - delaySamples = modAmount + 2; // the mod could actually take the delay time negative, prevent that! -- provide 2 extra sample as margin of safety - - auto dbAfter1Iteration = delaySamples / lineDecaySamples * (-60); // lineDecay is the time it takes to reach T60 - auto gainAfter1Iteration = Utils::DB2gain(dbAfter1Iteration); - - - - lines[i]->SetDelay((int)delaySamples); - lines[i]->SetFeedback(gainAfter1Iteration); - lines[i]->SetLineModAmount(modAmount); - lines[i]->SetLineModRate(modRate); - lines[i]->SetDiffuserModAmount(lateDiffusionModAmount); - lines[i]->SetDiffuserModRate(lateDiffusionModRate); - } - } - - void UpdatePostDiffusion() - { - for (int i = 0; i < lines.size(); i++) - lines[i]->SetDiffuserSeed(((long long)postDiffusionSeed) * (i + 1), crossSeed); - } - - double Ms2Samples(double value) - { - return value / 1000.0 * samplerate; - } - - }; - -} - -#endif diff --git a/CloudSeed.Native/ReverbController.h b/CloudSeed.Native/ReverbController.h deleted file mode 100644 index 138233f..0000000 --- a/CloudSeed.Native/ReverbController.h +++ /dev/null @@ -1,188 +0,0 @@ - -#ifndef REVERBCONTROLLER -#define REVERBCONTROLLER - -#include -#include "Default.h" -#include "Parameter.h" -#include "ReverbChannel.h" - -#include "ReverbController.h" -#include "AudioLib/ValueTables.h" -#include "AllpassDiffuser.h" -#include "MultitapDiffuser.h" -#include "Utils.h" - -namespace CloudSeed -{ - class ReverbController - { - private: - static const int bufferSize = 4096; // just make it huge by default... - int samplerate; - - ReverbChannel channelL; - ReverbChannel channelR; - double leftChannelIn[bufferSize]; - double rightChannelIn[bufferSize]; - double leftLineBuffer[bufferSize]; - double rightLineBuffer[bufferSize]; - double parameters[(int)Parameter::Count]; - - public: - ReverbController(int samplerate) - : channelL(bufferSize, samplerate, ChannelLR::Left) - , channelR(bufferSize, samplerate, ChannelLR::Right) - { - this->samplerate = samplerate; - } - - int GetSamplerate() - { - return samplerate; - } - - void SetSamplerate(int samplerate) - { - this->samplerate = samplerate; - - channelL.SetSamplerate(samplerate); - channelR.SetSamplerate(samplerate); - } - - int GetParameterCount() - { - return (int)Parameter::Count; - } - - double* GetAllParameters() - { - return parameters; - } - - double GetScaledParameter(Parameter param) - { - switch (param) - { - // Input - case Parameter::InputMix: return P(Parameter::InputMix); - case Parameter::PreDelay: return (int)(P(Parameter::PreDelay) * 1000); - - case Parameter::HighPass: return 20 + ValueTables::Get(P(Parameter::HighPass), ValueTables::Response4Oct) * 980; - case Parameter::LowPass: return 400 + ValueTables::Get(P(Parameter::LowPass), ValueTables::Response4Oct) * 19600; - - // Early - case Parameter::TapCount: return 1 + (int)(P(Parameter::TapCount) * (MultitapDiffuser::MaxTaps - 1)); - case Parameter::TapLength: return (int)(P(Parameter::TapLength) * 500); - case Parameter::TapGain: return ValueTables::Get(P(Parameter::TapGain), ValueTables::Response2Dec); - case Parameter::TapDecay: return P(Parameter::TapDecay); - - case Parameter::DiffusionEnabled: return P(Parameter::DiffusionEnabled) < 0.5 ? 0.0 : 1.0; - case Parameter::DiffusionStages: return 1 + (int)(P(Parameter::DiffusionStages) * (AllpassDiffuser::MaxStageCount - 0.001)); - case Parameter::DiffusionDelay: return (int)(10 + P(Parameter::DiffusionDelay) * 90); - case Parameter::DiffusionFeedback: return P(Parameter::DiffusionFeedback); - - // Late - case Parameter::LineCount: return 1 + (int)(P(Parameter::LineCount) * 11.999); - case Parameter::LineDelay: return (int)(20.0 + ValueTables::Get(P(Parameter::LineDelay), ValueTables::Response2Dec) * 980); - case Parameter::LineDecay: return 0.05 + ValueTables::Get(P(Parameter::LineDecay), ValueTables::Response3Dec) * 59.95; - - case Parameter::LateDiffusionEnabled: return P(Parameter::LateDiffusionEnabled) < 0.5 ? 0.0 : 1.0; - case Parameter::LateDiffusionStages: return 1 + (int)(P(Parameter::LateDiffusionStages) * (AllpassDiffuser::MaxStageCount - 0.001)); - case Parameter::LateDiffusionDelay: return (int)(10 + P(Parameter::LateDiffusionDelay) * 90); - case Parameter::LateDiffusionFeedback: return P(Parameter::LateDiffusionFeedback); - - // Frequency Response - case Parameter::PostLowShelfGain: return ValueTables::Get(P(Parameter::PostLowShelfGain), ValueTables::Response2Dec); - case Parameter::PostLowShelfFrequency: return 20 + ValueTables::Get(P(Parameter::PostLowShelfFrequency), ValueTables::Response4Oct) * 980; - case Parameter::PostHighShelfGain: return ValueTables::Get(P(Parameter::PostHighShelfGain), ValueTables::Response2Dec); - case Parameter::PostHighShelfFrequency: return 400 + ValueTables::Get(P(Parameter::PostHighShelfFrequency), ValueTables::Response4Oct) * 19600; - case Parameter::PostCutoffFrequency: return 400 + ValueTables::Get(P(Parameter::PostCutoffFrequency), ValueTables::Response4Oct) * 19600; - - // Modulation - case Parameter::EarlyDiffusionModAmount: return P(Parameter::EarlyDiffusionModAmount) * 2.5; - case Parameter::EarlyDiffusionModRate: return ValueTables::Get(P(Parameter::EarlyDiffusionModRate), ValueTables::Response2Dec) * 5; - case Parameter::LineModAmount: return P(Parameter::LineModAmount) * 2.5; - case Parameter::LineModRate: return ValueTables::Get(P(Parameter::LineModRate), ValueTables::Response2Dec) * 5; - case Parameter::LateDiffusionModAmount: return P(Parameter::LateDiffusionModAmount) * 2.5; - case Parameter::LateDiffusionModRate: return ValueTables::Get(P(Parameter::LateDiffusionModRate), ValueTables::Response2Dec) * 5; - - // Seeds - case Parameter::TapSeed: return (int)std::floor(P(Parameter::TapSeed) * 1000000 + 0.001); - case Parameter::DiffusionSeed: return (int)std::floor(P(Parameter::DiffusionSeed) * 1000000 + 0.001); - case Parameter::DelaySeed: return (int)std::floor(P(Parameter::DelaySeed) * 1000000 + 0.001); - case Parameter::PostDiffusionSeed: return (int)std::floor(P(Parameter::PostDiffusionSeed) * 1000000 + 0.001); - - // Output - case Parameter::CrossSeed: return P(Parameter::CrossSeed); - - case Parameter::DryOut: return ValueTables::Get(P(Parameter::DryOut), ValueTables::Response2Dec); - case Parameter::PredelayOut: return ValueTables::Get(P(Parameter::PredelayOut), ValueTables::Response2Dec); - case Parameter::EarlyOut: return ValueTables::Get(P(Parameter::EarlyOut), ValueTables::Response2Dec); - case Parameter::MainOut: return ValueTables::Get(P(Parameter::MainOut), ValueTables::Response2Dec); - - // Switches - case Parameter::HiPassEnabled: return P(Parameter::HiPassEnabled) < 0.5 ? 0.0 : 1.0; - case Parameter::LowPassEnabled: return P(Parameter::LowPassEnabled) < 0.5 ? 0.0 : 1.0; - case Parameter::LowShelfEnabled: return P(Parameter::LowShelfEnabled) < 0.5 ? 0.0 : 1.0; - case Parameter::HighShelfEnabled: return P(Parameter::HighShelfEnabled) < 0.5 ? 0.0 : 1.0; - case Parameter::CutoffEnabled: return P(Parameter::CutoffEnabled) < 0.5 ? 0.0 : 1.0; - case Parameter::LateStageTap: return P(Parameter::LateStageTap) < 0.5 ? 0.0 : 1.0; - - // Effects - case Parameter::Interpolation: return P(Parameter::Interpolation) < 0.5 ? 0.0 : 1.0; - - default: return 0.0; - } - - return 0.0; - } - - void SetParameter(Parameter param, double value) - { - parameters[(int)param] = value; - auto scaled = GetScaledParameter(param); - - channelL.SetParameter(param, scaled); - channelR.SetParameter(param, scaled); - } - - void ClearBuffers() - { - channelL.ClearBuffers(); - channelR.ClearBuffers(); - } - - void Process(double** input, double** output, int bufferSize) - { - auto len = bufferSize; - auto cm = GetScaledParameter(Parameter::InputMix) * 0.5; - auto cmi = (1 - cm); - - for (int i = 0; i < len; i++) - { - leftChannelIn[i] = input[0][i] * cmi + input[1][i] * cm; - rightChannelIn[i] = input[1][i] * cmi + input[0][i] * cm; - } - - channelL.Process(leftChannelIn, len); - channelR.Process(rightChannelIn, len); - auto leftOut = channelL.GetOutput(); - auto rightOut = channelR.GetOutput(); - - for (int i = 0; i < len; i++) - { - output[0][i] = leftOut[i]; - output[1][i] = rightOut[i]; - } - } - - private: - double P(Parameter para) - { - auto idx = (int)para; - return idx >= 0 && idx < (int)Parameter::Count ? parameters[idx] : 0.0; - } - }; -} -#endif diff --git a/CloudSeed.Native/Utils.h b/CloudSeed.Native/Utils.h deleted file mode 100644 index d16e7a1..0000000 --- a/CloudSeed.Native/Utils.h +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef UTILS -#define UTILS - -#include -#include - -namespace CloudSeed -{ - class Utils - { - public: - - static inline void ZeroBuffer(double* buffer, int len) - { - for (int i = 0; i < len; i++) - buffer[i] = 0.0; - } - - static inline void Copy(double* source, double* dest, int len) - { - std::memcpy(dest, source, len * sizeof(double)); - } - - static inline void Gain(double* buffer, double gain, int len) - { - for (int i = 0; i < len; i++) - { - buffer[i] *= gain; - } - } - - // perform bit crushing and undersampling - // undersampling: if set to 1, perfroms no effect, if set to 2, will undersample to 1/2 samplerate, etc... - // sampleResolution: if set to 32, will use 2^32 steps, if set to 8, will resude to 2^8 = 256 steps - // Currently Unused - static inline void BitcrushAndReduce(double* bufferIn, double* bufferOut, int len, int undersampling, int sampleResolution) - { - double sampleSteps = std::pow(2, sampleResolution); - double inverseSteps = 1.0 / sampleSteps; - - double sample = 0.0; - - for (int i = 0; i < len; i++) - { - if (i % undersampling == 0) - sample = ((long)(bufferIn[i] * sampleSteps)) * inverseSteps; - - bufferOut[i] = sample; - } - } - - template - static double DB2gain(T input) - { - return std::pow(10, input / 20.0); - } - - template - static double Gain2DB(T input) - { - if (input < 0.0000001) - return -100000; - - return 20.0f * std::log10(input); - } - }; -} - -#endif diff --git a/CloudSeed.Native/Utils/Sha256.cpp b/CloudSeed.Native/Utils/Sha256.cpp deleted file mode 100644 index 0dad5cb..0000000 --- a/CloudSeed.Native/Utils/Sha256.cpp +++ /dev/null @@ -1,169 +0,0 @@ -/* -* Updated to C++, zedwood.com 2012 -* Based on Olivier Gay's version -* See Modified BSD License below: -* -* FIPS 180-2 SHA-224/256/384/512 implementation -* Issue date: 04/30/2005 -* http://www.ouah.org/ogay/sha2/ -* -* Copyright (C) 2005, 2007 Olivier Gay -* All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* 3. Neither the name of the project nor the names of its contributors -* may be used to endorse or promote products derived from this software -* without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND -* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -* ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE -* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -* SUCH DAMAGE. -*/ - -#include -#include -#include -#include -#include "sha256.h" - -const unsigned int SHA256::sha256_k[64] = //UL = uint32 -{ 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, -0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, -0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, -0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, -0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, -0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, -0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, -0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, -0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, -0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, -0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, -0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, -0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, -0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, -0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, -0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 }; - -void SHA256::transform(const unsigned char *message, unsigned int block_nb) -{ - uint32 w[64]; - uint32 wv[8]; - uint32 t1, t2; - const unsigned char *sub_block; - int i; - int j; - for (i = 0; i < (int)block_nb; i++) { - sub_block = message + (i << 6); - for (j = 0; j < 16; j++) { - SHA2_PACK32(&sub_block[j << 2], &w[j]); - } - for (j = 16; j < 64; j++) { - w[j] = SHA256_F4(w[j - 2]) + w[j - 7] + SHA256_F3(w[j - 15]) + w[j - 16]; - } - for (j = 0; j < 8; j++) { - wv[j] = m_h[j]; - } - for (j = 0; j < 64; j++) { - t1 = wv[7] + SHA256_F2(wv[4]) + SHA2_CH(wv[4], wv[5], wv[6]) - + sha256_k[j] + w[j]; - t2 = SHA256_F1(wv[0]) + SHA2_MAJ(wv[0], wv[1], wv[2]); - wv[7] = wv[6]; - wv[6] = wv[5]; - wv[5] = wv[4]; - wv[4] = wv[3] + t1; - wv[3] = wv[2]; - wv[2] = wv[1]; - wv[1] = wv[0]; - wv[0] = t1 + t2; - } - for (j = 0; j < 8; j++) { - m_h[j] += wv[j]; - } - } -} - -void SHA256::init() -{ - m_h[0] = 0x6a09e667; - m_h[1] = 0xbb67ae85; - m_h[2] = 0x3c6ef372; - m_h[3] = 0xa54ff53a; - m_h[4] = 0x510e527f; - m_h[5] = 0x9b05688c; - m_h[6] = 0x1f83d9ab; - m_h[7] = 0x5be0cd19; - m_len = 0; - m_tot_len = 0; -} - -void SHA256::update(const unsigned char *message, unsigned int len) -{ - unsigned int block_nb; - unsigned int new_len, rem_len, tmp_len; - const unsigned char *shifted_message; - tmp_len = SHA224_256_BLOCK_SIZE - m_len; - rem_len = len < tmp_len ? len : tmp_len; - memcpy(&m_block[m_len], message, rem_len); - if (m_len + len < SHA224_256_BLOCK_SIZE) { - m_len += len; - return; - } - new_len = len - rem_len; - block_nb = new_len / SHA224_256_BLOCK_SIZE; - shifted_message = message + rem_len; - transform(m_block, 1); - transform(shifted_message, block_nb); - rem_len = new_len % SHA224_256_BLOCK_SIZE; - memcpy(m_block, &shifted_message[block_nb << 6], rem_len); - m_len = rem_len; - m_tot_len += (block_nb + 1) << 6; -} - -void SHA256::final(unsigned char *digest) -{ - unsigned int block_nb; - unsigned int pm_len; - unsigned int len_b; - int i; - block_nb = (1 + ((SHA224_256_BLOCK_SIZE - 9) - < (m_len % SHA224_256_BLOCK_SIZE))); - len_b = (m_tot_len + m_len) << 3; - pm_len = block_nb << 6; - memset(m_block + m_len, 0, pm_len - m_len); - m_block[m_len] = 0x80; - SHA2_UNPACK32(len_b, m_block + pm_len - 4); - transform(m_block, block_nb); - for (i = 0; i < 8; i++) { - SHA2_UNPACK32(m_h[i], &digest[i << 2]); - } -} - -std::vector sha256(unsigned char* input, int len) -{ - unsigned char digest[SHA256::DIGEST_SIZE]; - memset(digest, 0, SHA256::DIGEST_SIZE); - - SHA256 ctx; - ctx.init(); - ctx.update(input, len); - ctx.final(digest); - - std::vector output; - output.assign(digest, digest + SHA256::DIGEST_SIZE); - return output; -} diff --git a/CloudSeed.Native/Utils/Sha256.h b/CloudSeed.Native/Utils/Sha256.h deleted file mode 100644 index 6075551..0000000 --- a/CloudSeed.Native/Utils/Sha256.h +++ /dev/null @@ -1,90 +0,0 @@ -/* -* Updated to C++, zedwood.com 2012 -* Based on Olivier Gay's version -* See Modified BSD License below: -* -* FIPS 180-2 SHA-224/256/384/512 implementation -* Issue date: 04/30/2005 -* http://www.ouah.org/ogay/sha2/ -* -* Copyright (C) 2005, 2007 Olivier Gay -* All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* 1. Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* 2. Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* 3. Neither the name of the project nor the names of its contributors -* may be used to endorse or promote products derived from this software -* without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND -* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -* ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE -* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -* SUCH DAMAGE. -*/ - -#ifndef SHA256_H -#define SHA256_H -#include - -class SHA256 -{ -protected: - typedef unsigned char uint8; - typedef unsigned int uint32; - typedef unsigned long long uint64; - - const static uint32 sha256_k[]; - static const unsigned int SHA224_256_BLOCK_SIZE = (512 / 8); -public: - void init(); - void update(const unsigned char *message, unsigned int len); - void final(unsigned char *digest); - static const unsigned int DIGEST_SIZE = (256 / 8); - -protected: - void transform(const unsigned char *message, unsigned int block_nb); - unsigned int m_tot_len; - unsigned int m_len; - unsigned char m_block[2 * SHA224_256_BLOCK_SIZE]; - uint32 m_h[8]; -}; - -std::vector sha256(unsigned char* input, int len); - -#define SHA2_SHFR(x, n) (x >> n) -#define SHA2_ROTR(x, n) ((x >> n) | (x << ((sizeof(x) << 3) - n))) -#define SHA2_ROTL(x, n) ((x << n) | (x >> ((sizeof(x) << 3) - n))) -#define SHA2_CH(x, y, z) ((x & y) ^ (~x & z)) -#define SHA2_MAJ(x, y, z) ((x & y) ^ (x & z) ^ (y & z)) -#define SHA256_F1(x) (SHA2_ROTR(x, 2) ^ SHA2_ROTR(x, 13) ^ SHA2_ROTR(x, 22)) -#define SHA256_F2(x) (SHA2_ROTR(x, 6) ^ SHA2_ROTR(x, 11) ^ SHA2_ROTR(x, 25)) -#define SHA256_F3(x) (SHA2_ROTR(x, 7) ^ SHA2_ROTR(x, 18) ^ SHA2_SHFR(x, 3)) -#define SHA256_F4(x) (SHA2_ROTR(x, 17) ^ SHA2_ROTR(x, 19) ^ SHA2_SHFR(x, 10)) -#define SHA2_UNPACK32(x, str) \ -{ \ - *((str) + 3) = (uint8) ((x) ); \ - *((str) + 2) = (uint8) ((x) >> 8); \ - *((str) + 1) = (uint8) ((x) >> 16); \ - *((str) + 0) = (uint8) ((x) >> 24); \ -} -#define SHA2_PACK32(str, x) \ -{ \ - *(x) = ((uint32) *((str) + 3) ) \ - | ((uint32) *((str) + 2) << 8) \ - | ((uint32) *((str) + 1) << 16) \ - | ((uint32) *((str) + 0) << 24); \ -} -#endif \ No newline at end of file diff --git a/CloudSeed.Tests/BlockTests.cs b/CloudSeed.Tests/BlockTests.cs deleted file mode 100644 index 8c5e676..0000000 --- a/CloudSeed.Tests/BlockTests.cs +++ /dev/null @@ -1,62 +0,0 @@ -using System; -using Microsoft.VisualStudio.TestTools.UnitTesting; -using System.Collections.Generic; -using OxyPlot; -using OxyPlot.Series; -using AudioLib; -using System.Linq; - -namespace CloudSeed.Tests -{ - [TestClass] - public class BlockTests - { - [TestMethod] - public void TestMethod1() - { - var diff = new MultitapDiffuser(3000); - diff.SetTapCount(50); - diff.SetTapDecay(0.9); - diff.SetTapGain(1.0); - diff.SetTapLength((int)(2000)); - var inp = new double[3000]; - inp[0] = 1.0; - - diff.Process(inp, inp.Length); - var outp = diff.Output; - - var pm = new PlotModel(); - var series = new StemSeries(); - series.MarkerSize = 1.0; - series.Color = OxyColors.Black; - series.Points.AddRange(outp.ToDataPoints()); - pm.Series.Add(series); - pm.ToPng(@"e:\multitap.png", 800, 600); - } - - [TestMethod] - public void TestMethod2() - { - var diff = new AllpassDiffuser(3000, 48000); - diff.Seeds = new ShaRandom().Generate(652, 10000).ToArray(); - diff.SetDelay(100); - diff.Stages = 3; - diff.SetFeedback(0.7); - diff.SetModAmount(0.0); - var inp = new double[3000]; - inp[0] = 1.0; - - diff.Process(inp, inp.Length); - var outp = diff.Output; - - var pm = new PlotModel(); - var series = new StemSeries(); - series.MarkerSize = 1.0; - series.Color = OxyColors.Black; - series.Points.AddRange(outp.ToDataPoints()); - pm.Series.Add(series); - pm.ToPng(@"e:\allpass3.png", 800, 600); - } - - } -} diff --git a/CloudSeed.Tests/CloudSeed.Tests.csproj b/CloudSeed.Tests/CloudSeed.Tests.csproj deleted file mode 100644 index 762de33..0000000 --- a/CloudSeed.Tests/CloudSeed.Tests.csproj +++ /dev/null @@ -1,174 +0,0 @@ - - - - Debug - AnyCPU - {1352CDF5-006D-49E0-A2EE-D00DB02AB5FE} - Exe - Properties - CloudSeed.Tests - CloudSeed.Tests - v4.5 - 512 - {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 10.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages - False - UnitTest - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - false - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - false - - - true - bin\x86\Debug\ - DEBUG;TRACE - full - x86 - prompt - MinimumRecommendedRules.ruleset - false - true - false - - - bin\x86\Release\ - TRACE - true - pdbonly - x86 - prompt - MinimumRecommendedRules.ruleset - true - false - - - true - bin\x64\Debug\ - DEBUG;TRACE - full - x64 - prompt - MinimumRecommendedRules.ruleset - true - false - - - bin\x64\Release\ - TRACE - true - pdbonly - x64 - prompt - MinimumRecommendedRules.ruleset - true - false - - - - - - - ..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll - - - ..\packages\OxyPlot.Core.2014.1.546\lib\portable-net4+sl4+wp71+win8\OxyPlot.dll - True - - - ..\packages\OxyPlot.Wpf.2014.1.546\lib\net45\OxyPlot.Wpf.dll - True - - - ..\packages\OxyPlot.Wpf.2014.1.546\lib\net45\OxyPlot.Xps.dll - True - - - - - - - - - - - - - - - - - - False - - - - - - - - - - - - - - - {4905489d-6f81-4129-8780-744ced5b3269} - AudioLib - - - {9bb36904-5bf5-4929-86aa-fd9a884505de} - CloudSeed - - - - - - - - - - - False - - - False - - - False - - - False - - - - - - - - \ No newline at end of file diff --git a/CloudSeed.Tests/OxyPlotHelper.cs b/CloudSeed.Tests/OxyPlotHelper.cs deleted file mode 100644 index 9ec4db1..0000000 --- a/CloudSeed.Tests/OxyPlotHelper.cs +++ /dev/null @@ -1,157 +0,0 @@ -using OxyPlot; -using OxyPlot.Axes; -using OxyPlot.Series; -using OxyPlot.Wpf; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows; - -namespace CloudSeed.Tests -{ - public static class OxyPlotHelper - { - public class LineStyle - { - public OxyColor Color { get; set; } - public double Thickness { get; set; } - public OxyPlot.LineStyle Style { get; set; } - } - - public static IEnumerable ToScatterPoints(this IEnumerable values) - { - int x = 0; - foreach (var val in values) - yield return new ScatterPoint(x++, val); - } - - public static IEnumerable ToDataPoints(this IEnumerable values) - { - int x = 0; - foreach (var val in values) - yield return new DataPoint(x++, val); - } - - public static void Show(this PlotModel model, double width = 800, double height = 500, bool asDialog = true) - { - var w = new Window() { Title = model.Title ?? "", Width = width, Height = height }; - var plotView = new PlotView(); - plotView.Model = model; - w.Content = plotView; - if (asDialog) - w.ShowDialog(); - else - w.Show(); - } - - public static OxyPlot.Axes.Axis AddDateTimeAxis(this PlotModel model, string title, DateTimeIntervalType interval = DateTimeIntervalType.Auto) - { - var axis = new OxyPlot.Axes.DateTimeAxis - { - IntervalType = interval, - Position = AxisPosition.Bottom, - Title = title, - MajorTickSize = 3.0, - MinorTickSize = 1.0 - }; - model.Axes.Add(axis); - return axis; - } - - public static void SetLimitsX(this PlotModel model, double min, double max) - { - var axes = model.Axes.Where(x => - x.GetType() != typeof(OxyPlot.Axes.DateTimeAxis) && - x.IsHorizontal()) - .ToArray(); - - foreach (var axis in axes) - { - axis.Minimum = min; - axis.Maximum = max; - } - } - - public static void SetLimitsX(this PlotModel model, DateTime min, DateTime max) - { - var axes = model.Axes.Where(x => - x.GetType() == typeof(OxyPlot.Axes.DateTimeAxis) && - x.IsHorizontal()) - .ToArray(); - - foreach (var axis in axes) - { - axis.Minimum = OxyPlot.Axes.DateTimeAxis.ToDouble(min); - axis.Maximum = OxyPlot.Axes.DateTimeAxis.ToDouble(max); - } - } - - public static void SetLimitsY(this PlotModel model, double min, double max) - { - var axes = model.Axes.Where(x => x.IsVertical()).ToArray(); - - foreach (var axis in axes) - { - axis.Minimum = min; - axis.Maximum = max; - } - } - - public static void AddLine( - this PlotModel model, - IEnumerable data, - LineStyle lineStyle = null) - { - var data2 = data.Select((x, i) => new { Value = x, Index = i }).ToArray(); - AddLine(model, data2, x => x.Value, x => x.Index, lineStyle); - } - - public static void AddLine( - this PlotModel model, - IEnumerable data, - Func ySelector, - Func xSelector, - LineStyle lineStyle = null) - { - model.AddLine(data, ySelector, x => OxyPlot.Axes.DateTimeAxis.ToDouble(xSelector(x)), lineStyle); - } - - public static void AddLine( - this PlotModel model, - IEnumerable data, - Func ySelector, - Func xSelector = null, - LineStyle lineStyle = null) - { - var series = new OxyPlot.Series.LineSeries(); - - var dataList = data.ToList(); - for (int i = 0; i < dataList.Count; i++) - { - var item = dataList[i]; - var x = xSelector != null ? xSelector(item) : (double)i; - var y = ySelector(item); - series.Points.Add(new DataPoint(x, y)); - } - - if (lineStyle != null) - { - series.Color = lineStyle.Color; - series.StrokeThickness = lineStyle.Thickness; - series.LineStyle = lineStyle.Style; - } - - model.Series.Add(series); - } - - public static void ToPng(this PlotModel model, string filename, int width, int height, OxyColor? backgound = null) - { - using (var stream = System.IO.File.Create(filename)) - { - PngExporter.Export(model, stream, width, height, backgound ?? OxyColors.White); - } - } - } -} diff --git a/CloudSeed.Tests/Program.cs b/CloudSeed.Tests/Program.cs deleted file mode 100644 index dd759aa..0000000 --- a/CloudSeed.Tests/Program.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace CloudSeed.Tests -{ - class Program - { - public static void Main(string[] args) - { - new UnsafeReverbTests().TestSetProgram(); - Console.ReadLine(); - } - } -} diff --git a/CloudSeed.Tests/Properties/AssemblyInfo.cs b/CloudSeed.Tests/Properties/AssemblyInfo.cs deleted file mode 100644 index 3bffff2..0000000 --- a/CloudSeed.Tests/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("CloudSeed.Tests")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("CloudSeed.Tests")] -[assembly: AssemblyCopyright("Copyright © 2014")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("d64c7dea-20d4-4859-884f-e6dfedcf3e70")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CloudSeed.Tests/TestAllpass.cs b/CloudSeed.Tests/TestAllpass.cs deleted file mode 100644 index 621356d..0000000 --- a/CloudSeed.Tests/TestAllpass.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using Microsoft.VisualStudio.TestTools.UnitTesting; - -namespace CloudSeed.Tests -{ - [TestClass] - public class TestAllpass - { - [TestMethod] - public void TestAllpass1() - { - var ap = new ModulatedAllpass(200, 5); - ap.Feedback = 0.9; - var input = new double[200]; - input[0] = 1.0; - ap.Process(input, input.Length); - var output = ap.Output; - } - } -} diff --git a/CloudSeed.Tests/UnsafeReverbTests.cs b/CloudSeed.Tests/UnsafeReverbTests.cs deleted file mode 100644 index 317b998..0000000 --- a/CloudSeed.Tests/UnsafeReverbTests.cs +++ /dev/null @@ -1,174 +0,0 @@ -using System; -using Microsoft.VisualStudio.TestTools.UnitTesting; -using Newtonsoft.Json; -using System.Collections.Generic; - -namespace CloudSeed.Tests -{ - [TestClass] - public class UnsafeReverbTests - { - private const string programFail = @" -{ - ""InputMix"": 0.1549999862909317, - ""PreDelay"": 0.0, - ""HighPass"": 0.57999998331069946, - ""LowPass"": 0.84000009298324585, - ""TapCount"": 0.41499990224838257, - ""TapLength"": 0.43999996781349182, - ""TapGain"": 0.7300000786781311, - ""TapDecay"": 1.0, - ""DiffusionEnabled"": 1.0, - ""DiffusionStages"": 0.4285714328289032, - ""DiffusionDelay"": 0.27500024437904358, - ""DiffusionFeedback"": 0.660000205039978, - ""LineCount"": 0.72727274894714355, - ""LineDelay"": 0.22500017285346985, - ""LineDecay"": 0.80499988794326782, - ""LateDiffusionEnabled"": 1.0, - ""LateDiffusionStages"": 1.0, - ""LateDiffusionDelay"": 0.22999951243400574, - ""LateDiffusionFeedback"": 0.59499990940093994, - ""PostLowShelfGain"": 0.95999979972839355, - ""PostLowShelfFrequency"": 0.23999994993209839, - ""PostHighShelfGain"": 0.97000002861022949, - ""PostHighShelfFrequency"": 0.72000002861022949, - ""PostCutoffFrequency"": 0.87999981641769409, - ""EarlyDiffusionModAmount"": 0.13499999046325684, - ""EarlyDiffusionModRate"": 0.29000008106231689, - ""LineModAmount"": 0.53999996185302734, - ""LineModRate"": 0.44999989867210388, - ""LateDiffusionModAmount"": 0.17499998211860657, - ""LateDiffusionModRate"": 0.28500008583068848, - ""TapSeed"": 0.00048499999684281647, - ""DiffusionSeed"": 0.00020799999765586108, - ""CombSeed"": 0.00033499998971819878, - ""PostDiffusionSeed"": 0.00037200000951997936, - ""CrossSeed"": 0.800000011920929, - ""DryOut"": 1.0, - ""PredelayOut"": 0.0, - ""EarlyOut"": 0.8200000524520874, - ""MainOut"": 0.90500003099441528, - ""HiPassEnabled"": 1.0, - ""LowPassEnabled"": 1.0, - ""LowShelfEnabled"": 1.0, - ""HighShelfEnabled"": 1.0, - ""CutoffEnabled"": 1.0, - ""LateStageTap"": 1.0, - ""Interpolation"": 0.0 -}"; - - public const string program2 = @" -{ - ""InputMix"": 0.1549999862909317, - ""PreDelay"": 0.0, - ""HighPass"": 0.57999998331069946, - ""LowPass"": 0.84000009298324585, - ""TapCount"": 0.41499990224838257, - ""TapLength"": 0.43999996781349182, - ""TapGain"": 0.7300000786781311, - ""TapDecay"": 1.0, - ""DiffusionEnabled"": 1.0, - ""DiffusionStages"": 0.4285714328289032, - ""DiffusionDelay"": 0.27500024437904358, - ""DiffusionFeedback"": 0.660000205039978, - ""LineCount"": 0.72727274894714355, - ""LineDelay"": 0.22500017285346985, - ""LineDecay"": 0.80499988794326782, - ""LateDiffusionEnabled"": 0.0, - ""LateDiffusionStages"": 1.0, - ""LateDiffusionDelay"": 0.22999951243400574, - ""LateDiffusionFeedback"": 0.59499990940093994, - ""PostLowShelfGain"": 0.95999979972839355, - ""PostLowShelfFrequency"": 0.23999994993209839, - ""PostHighShelfGain"": 0.97000002861022949, - ""PostHighShelfFrequency"": 0.72000002861022949, - ""PostCutoffFrequency"": 0.87999981641769409, - ""EarlyDiffusionModAmount"": 0.13499999046325684, - ""EarlyDiffusionModRate"": 0.29000008106231689, - ""LineModAmount"": 0.53999996185302734, - ""LineModRate"": 0.44999989867210388, - ""LateDiffusionModAmount"": 0.17499998211860657, - ""LateDiffusionModRate"": 0.28500008583068848, - ""TapSeed"": 0.00048499999684281647, - ""DiffusionSeed"": 0.00020799999765586108, - ""CombSeed"": 0.00033499998971819878, - ""PostDiffusionSeed"": 0.00037200000951997936, - ""CrossSeed"": 0.800000011920929, - ""DryOut"": 1.0, - ""PredelayOut"": 0.0, - ""EarlyOut"": 0.8200000524520874, - ""MainOut"": 0.90500003099441528, - ""HiPassEnabled"": 1.0, - ""LowPassEnabled"": 1.0, - ""LowShelfEnabled"": 1.0, - ""HighShelfEnabled"": 1.0, - ""CutoffEnabled"": 1.0, - ""LateStageTap"": 1.0, - ""Interpolation"": 0.0 -}"; - - - [TestMethod] - public void TestCreate() - { - var rev = new UnsafeReverbController(48000); - rev.Dispose(); - } - - [TestMethod] - public void TestSetProgram() - { - var controller = new UnsafeReverbController(48000); - - var dict = JsonConvert.DeserializeObject>(program2); - //dict["DiffusionEnabled"] = 0.0; - - foreach (var kvp in dict) - { - Parameter param; - var ok = Enum.TryParse(kvp.Key, out param); - if (ok) - { - controller.SetParameter(param, kvp.Value); - } - } - controller.ClearBuffers(); - var inputLArr = new double[64]; - var inputRArr = new double[64]; - var outputLArr = new double[64]; - var outputRArr = new double[64]; - var input = new IntPtr[2]; - var output = new IntPtr[2]; - - unsafe - { - fixed (double* inL = inputLArr) - fixed (double* inR = inputLArr) - fixed (double* outL = outputLArr) - fixed (double* outR = outputRArr) - fixed (IntPtr* ins = input) - fixed (IntPtr* outs = output) - { - inL[0] = 1.0; - inR[0] = 1.0; - - ins[0] = (IntPtr)inL; - ins[1] = (IntPtr)inR; - - outs[0] = (IntPtr)outL; - outs[1] = (IntPtr)outR; - - for (int i = 0; i < 1; i++) - { - controller.Process((IntPtr)ins, (IntPtr)outs, 64); - inL[0] = 0.0; - inR[0] = 0.0; - } - } - } - Console.WriteLine("Disposing"); - controller.Dispose(); - } - } -} diff --git a/CloudSeed.Tests/app.config b/CloudSeed.Tests/app.config deleted file mode 100644 index 51278a4..0000000 --- a/CloudSeed.Tests/app.config +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/CloudSeed.Tests/packages.config b/CloudSeed.Tests/packages.config deleted file mode 100644 index d7d953d..0000000 --- a/CloudSeed.Tests/packages.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/CloudSeed.sln b/CloudSeed.sln deleted file mode 100644 index acfd04d..0000000 --- a/CloudSeed.sln +++ /dev/null @@ -1,43 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27428.2002 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CloudSeed", "CloudSeed\CloudSeed.csproj", "{9BB36904-5BF5-4929-86AA-FD9A884505DE}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CloudSeed.Native", "CloudSeed.Native\CloudSeed.Native.vcxproj", "{71460306-FE20-4720-A7D8-3D13B1739B17}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AudioLib", "..\AudioLib\AudioLib\AudioLib.csproj", "{4905489D-6F81-4129-8780-744CED5B3269}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CloudSeed.Tests", "CloudSeed.Tests\CloudSeed.Tests.csproj", "{1352CDF5-006D-49E0-A2EE-D00DB02AB5FE}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9BB36904-5BF5-4929-86AA-FD9A884505DE}.Debug|x64.ActiveCfg = Debug|Any CPU - {9BB36904-5BF5-4929-86AA-FD9A884505DE}.Debug|x64.Build.0 = Debug|Any CPU - {9BB36904-5BF5-4929-86AA-FD9A884505DE}.Release|x64.ActiveCfg = Release|Any CPU - {9BB36904-5BF5-4929-86AA-FD9A884505DE}.Release|x64.Build.0 = Release|Any CPU - {71460306-FE20-4720-A7D8-3D13B1739B17}.Debug|x64.ActiveCfg = Debug|x64 - {71460306-FE20-4720-A7D8-3D13B1739B17}.Debug|x64.Build.0 = Debug|x64 - {71460306-FE20-4720-A7D8-3D13B1739B17}.Release|x64.ActiveCfg = Release|x64 - {71460306-FE20-4720-A7D8-3D13B1739B17}.Release|x64.Build.0 = Release|x64 - {4905489D-6F81-4129-8780-744CED5B3269}.Debug|x64.ActiveCfg = Debug|Any CPU - {4905489D-6F81-4129-8780-744CED5B3269}.Debug|x64.Build.0 = Debug|Any CPU - {4905489D-6F81-4129-8780-744CED5B3269}.Release|x64.ActiveCfg = Release|Any CPU - {4905489D-6F81-4129-8780-744CED5B3269}.Release|x64.Build.0 = Release|Any CPU - {1352CDF5-006D-49E0-A2EE-D00DB02AB5FE}.Debug|x64.ActiveCfg = Debug|x64 - {1352CDF5-006D-49E0-A2EE-D00DB02AB5FE}.Debug|x64.Build.0 = Debug|x64 - {1352CDF5-006D-49E0-A2EE-D00DB02AB5FE}.Release|x64.ActiveCfg = Release|x64 - {1352CDF5-006D-49E0-A2EE-D00DB02AB5FE}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {F3EADD4C-B981-42D8-88F6-8B4475A50A61} - EndGlobalSection -EndGlobal diff --git a/CloudSeed/AllpassDiffuser.cs b/CloudSeed/AllpassDiffuser.cs deleted file mode 100644 index 8c1b3d7..0000000 --- a/CloudSeed/AllpassDiffuser.cs +++ /dev/null @@ -1,117 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using AudioLib; - -namespace CloudSeed -{ - public class AllpassDiffuser - { - public const int MaxStageCount = 8; - - private readonly ModulatedAllpass[] filters; - private double[] output; - private int delay; - private double modRate; - private int samplerate; - private double[] seeds; - - public int Stages; - - public AllpassDiffuser(int bufferSize, int samplerate) - { - filters = Enumerable.Range(0, MaxStageCount).Select(x => new ModulatedAllpass(bufferSize, 100)).ToArray(); - output = new double[bufferSize]; - Seeds = new ShaRandom().Generate(23456, MaxStageCount * 3).ToArray(); - Stages = 1; - - Samplerate = samplerate; - } - - public int Samplerate - { - get { return samplerate; } - set - { - samplerate = value; - SetModRate(modRate); - } - } - - public double[] Seeds - { - get { return seeds; } - set - { - seeds = value; - Update(); - } - } - - public bool ModulationEnabled - { - get { return filters[0].ModulationEnabled; } - set - { - foreach (var filter in filters) - filter.ModulationEnabled = value; - } - } - - public double[] Output { get { return output; } } - - - - public void SetDelay(int delaySamples) - { - delay = delaySamples; - Update(); - } - - public void SetFeedback(double feedback) - { - for (int i = 0; i < filters.Length; i++) - filters[i].Feedback = feedback; - } - - public void SetModAmount(double amount) - { - for (int i = 0; i < filters.Length; i++) - filters[i].ModAmount = amount * (0.8 + 0.2 * Seeds[MaxStageCount + i]); - } - - public void SetModRate(double rate) - { - modRate = rate; - - for (int i = 0; i < filters.Length; i++) - filters[i].ModRate = rate * (0.5 + 0.5 * Seeds[MaxStageCount * 2 + i]) / samplerate; - } - - private void Update() - { - for (int i = 0; i < filters.Length; i++) - filters[i].SampleDelay = (int)(delay * (0.5 + 1.0 * Seeds[i])); - } - - public void Process(double[] input, int sampleCount) - { - filters[0].Process(input, sampleCount); - - for (int i = 1; i < Stages; i++) - { - filters[i].Process(filters[i - 1].Output, sampleCount); - } - - output = filters[Stages - 1].Output; - } - - public void ClearBuffers() - { - for (int i = 0; i < filters.Length; i++) - filters[i].Clear(); - } - } -} diff --git a/CloudSeed/CloudSeed.csproj b/CloudSeed/CloudSeed.csproj deleted file mode 100644 index 9d35853..0000000 --- a/CloudSeed/CloudSeed.csproj +++ /dev/null @@ -1,141 +0,0 @@ - - - - - Debug - AnyCPU - {9BB36904-5BF5-4929-86AA-FD9A884505DE} - Library - Properties - CloudSeed - CloudSeed - v4.5 - 512 - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - - - - true - bin\Debug\ - DEBUG;TRACE - true - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset - false - - - bin\Release\ - TRACE - true - true - pdbonly - AnyCPU - prompt - MinimumRecommendedRules.ruleset - false - - - false - - - false - - - false - - - false - - - - ..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll - - - - - ..\Binaries\SharpSoundDevice\x64\Release\SharpSoundDevice.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AboutDialog.xaml - - - RenameProgramDialog.xaml - - - - CloudSeedView.xaml - - - - - - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - - - {4905489d-6f81-4129-8780-744ced5b3269} - AudioLib - - - - - - - - - - - - \ No newline at end of file diff --git a/CloudSeed/CloudSeedPlugin.cs b/CloudSeed/CloudSeedPlugin.cs deleted file mode 100644 index ffa8fc4..0000000 --- a/CloudSeed/CloudSeedPlugin.cs +++ /dev/null @@ -1,292 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using System.Runtime.InteropServices; -using System.Text; -using Newtonsoft.Json; -using SharpSoundDevice; -using System.Globalization; -using CloudSeed.UI; -using System.Threading; - -namespace CloudSeed -{ - public class CloudSeedPlugin : IAudioDevice - { - // --------------- IAudioDevice Properties --------------- - - private DeviceInfo devInfo; - - private readonly IReverbController controller; - private CloudSeedView view; - private System.Windows.Window window; - private volatile bool isDisposing; - - public double Samplerate; - public DeviceInfo DeviceInfo { get { return devInfo; } } - public SharpSoundDevice.Parameter[] ParameterInfo { get; private set; } - public Port[] PortInfo { get; private set; } - public int CurrentProgram { get; private set; } - public int DeviceId { get; set; } - public IHostInfo HostInfo { get; set; } - - [DllImport("kernel32.dll", SetLastError = true)] - internal static extern int AllocConsole(); - - public CloudSeedPlugin() - { - //AllocConsole(); - controller = new UnsafeReverbController(48000); - controller.Samplerate = 48000; - - Samplerate = 48000; - devInfo = new DeviceInfo(); - ParameterInfo = new SharpSoundDevice.Parameter[controller.GetParameterCount()]; - PortInfo = new Port[2]; - } - - public void InitializeDevice() - { -#if DEBUG - devInfo.DeviceID = "Low Profile - CloudSeed - DEV"; -#else - devInfo.DeviceID = "Low Profile - CloudSeed"; -# endif - if (!Environment.Is64BitOperatingSystem) - { - // solves possible conflict when both 32 and 64 bit plugins are available in Reaper - devInfo.DeviceID = DeviceInfo.DeviceID + " x86"; - } - - devInfo.Developer = "Valdemar Erlingsson"; - devInfo.EditorWidth = 995; - devInfo.EditorHeight = 386; - devInfo.HasEditor = true; - devInfo.Name = "CloudSeed Algorithmic Reverb"; - devInfo.ProgramCount = 1; - devInfo.Type = DeviceType.Effect; - devInfo.Version = 1501; - devInfo.UnsafeProcessing = controller is IUnsafeReverbController; - devInfo.VstId = DeviceUtilities.GenerateIntegerId(devInfo.DeviceID); - - PortInfo[0].Direction = PortDirection.Input; - PortInfo[0].Name = "Stereo Input"; - PortInfo[0].NumberOfChannels = 2; - - PortInfo[1].Direction = PortDirection.Output; - PortInfo[1].Name = "Stereo Output"; - PortInfo[1].NumberOfChannels = 2; - - for (int i = 0; i < controller.GetParameterCount(); i++) - { - var p = new SharpSoundDevice.Parameter(); - p.Display = GetDisplay(0.0); - p.Index = (uint)i; - p.Name = i < Parameter.Count.Value() ? ((Parameter)i).Name() : "Parameter " + i; - p.Steps = 0; - p.Value = 0.0; - ParameterInfo[i] = p; - } - - ViewModel = new CloudSeedViewModel(this); - controller.ClearBuffers(); - - var prog = ProgramBanks.Bank.FactoryPrograms.Any() - ? ProgramBanks.Bank.FactoryPrograms.First() - : new ProgramBanks.PluginProgram { Name = "Default Program", Data = "{}" }; - - SetPluginProgram(prog); - } - - public CloudSeedViewModel ViewModel { get; private set; } - - public void DisposeDevice() - { - isDisposing = true; - Thread.Sleep(200); // wait for processing to stop - - var disposable = controller as IDisposable; - if (disposable != null) - disposable.Dispose(); - } - - public void Start() - { - controller.ClearBuffers(); - } - - public void Stop() { } - - public void ProcessSample(double[][] input, double[][] output, uint bufferSize) - { - if (isDisposing) - return; - - ((IManagedReverbController)controller).Process(input, output); - } - - public void ProcessSample(IntPtr input, IntPtr output, uint inChannelCount, uint outChannelCount, uint bufferSize) - { - if (bufferSize > 4096) - throw new Exception("Buffer size is >1024 sample. CloudSeed does no support buffers this large"); - if (inChannelCount != 2) - throw new Exception("InChannelCount for CloudSeed must be 2"); - if (outChannelCount != 2) - throw new Exception("OutChannelCount for CloudSeed must be 2"); - - ((IUnsafeReverbController)controller).Process(input, output, (int)bufferSize); - } - - public void OpenEditor(IntPtr parentWindow) - { - System.Threading.Tasks.Task.Run(() => ProgramBanks.Bank.ReloadPrograms()); - - view = new CloudSeedView(ViewModel); - devInfo.EditorWidth = (int)view.Width; - devInfo.EditorHeight = (int)view.Height; - HostInfo.SendEvent(DeviceId, new Event { Data = null, EventIndex = 0, Type = EventType.WindowSize }); - window = new System.Windows.Window() { Content = view }; - window.Width = view.Width; - window.Height = view.Height; - DeviceUtilities.DockWpfWindow(window, parentWindow); - window.Show(); - } - - public void CloseEditor() - { - window.Close(); - } - - public bool SendEvent(Event ev) - { - if (ev.Type == EventType.Parameter) - { - if (ev.EventIndex >= 0 && ev.EventIndex < controller.GetParameterCount()) - { - var i = ev.EventIndex; - var value = (double)ev.Data; - SetParameter((Parameter)i, value, true, false); - } - } - - return false; - } - - public void SetParameter(Parameter param, double value) - { - SetParameter(param, value, false, true); - } - - private void SetParameter(Parameter param, double value, bool updateUi, bool updateHost) - { - controller.SetParameter(param, value); - ParameterInfo[param.Value()].Value = value; - ParameterInfo[param.Value()].Display = GetDisplay(param); - - if (updateUi && ViewModel != null) - ViewModel.UpdateParameterAsync(param, value); - - if (updateHost && HostInfo != null) - { - HostInfo.SendEvent(DeviceId, new Event - { - Data = value, - EventIndex = param.Value(), - Type = EventType.Parameter - }); - } - } - - public string GetDisplay(Parameter param) - { - var propVal = controller.GetScaledParameter(param); - return param.Formatter()(propVal); - } - - #region SharpSoundDevice Programs - - public void SetProgramData(Program program, int index) - { - try - { - var jsonData = Encoding.UTF8.GetString(program.Data); - var newProgram = new ProgramBanks.PluginProgram - { - Data = jsonData, - Name = program.Name - }; - SetPluginProgram(newProgram); - } - catch - { - // Nothing we can do except crash or ignore - } - } - - public Program GetProgramData(int index) - { - var output = new Program(); - var jsonData = GetJsonProgram(); - output.Data = Encoding.UTF8.GetBytes(jsonData); - output.Name = ViewModel.SelectedProgram.Name; - return output; - } - - #endregion - - #region Cloud Seed Programs - - public void SetPluginProgram(ProgramBanks.PluginProgram programData) - { - if (programData.Name == null) - return; - - if (programData.Data != null) - { - SetJsonProgram(programData.Data); - ViewModel.SelectedProgram = programData; - } - } - - public void SetJsonProgram(string jsonData) - { - var dict = JsonConvert.DeserializeObject>(jsonData); - foreach (var kvp in dict) - { - Parameter param; - var ok = Enum.TryParse(kvp.Key, out param); - if (ok) - { - SetParameter(param, kvp.Value, true, true); - } - } - - controller.ClearBuffers(); - } - - public string GetJsonProgram() - { - var dict = controller.GetAllParameters() - .Select((x, i) => new { Name = ((Parameter)i).Name(), Value = x }) - .ToDictionary(x => x.Name, x => x.Value); - - var json = JsonConvert.SerializeObject(dict, Formatting.Indented); - return json; - } - - #endregion - - public void HostChanged() - { - var samplerate = HostInfo.SampleRate; - if (samplerate != Samplerate) - { - Samplerate = samplerate; - controller.Samplerate = (int)samplerate; - } - } - - } -} - diff --git a/CloudSeed/DelayLine.cs b/CloudSeed/DelayLine.cs deleted file mode 100644 index 399552b..0000000 --- a/CloudSeed/DelayLine.cs +++ /dev/null @@ -1,165 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using AudioLib; -using AudioLib.Modules; -using AudioLib.TF; - -namespace CloudSeed -{ - public class DelayLine - { - private readonly ModulatedDelay delay; - private readonly AllpassDiffuser diffuser; - private readonly Biquad lowShelf; - private readonly Biquad highShelf; - private readonly Lp1 lowPass; - private readonly double[] tempBuffer; - private readonly double[] filterOutputBuffer; - - private double feedback; - private int samplerate; - - public bool DiffuserEnabled; - public bool LowShelfEnabled; - public bool HighShelfEnabled; - public bool CutoffEnabled; - - public DelayLine(int bufferSize, int samplerate) - { - delay = new ModulatedDelay(bufferSize, 10000); - diffuser = new AllpassDiffuser(bufferSize, samplerate) { ModulationEnabled = false }; - tempBuffer = new double[bufferSize]; - filterOutputBuffer = new double[bufferSize]; - - lowPass = new Lp1(samplerate); - lowShelf = new Biquad(Biquad.FilterType.LowShelf, samplerate) { Slope = 1.0, GainDB = -20, Frequency = 20 }; - highShelf = new Biquad(Biquad.FilterType.HighShelf, samplerate) { Slope = 1.0, GainDB = -20, Frequency = 19000 }; - lowPass.CutoffHz = 1000; - lowShelf.Update(); - highShelf.Update(); - Samplerate = samplerate; - } - - public int Samplerate - { - get { return samplerate; } - set - { - samplerate = value; - diffuser.Samplerate = samplerate; - lowPass.Samplerate = samplerate; - lowShelf.Samplerate = samplerate; - highShelf.Samplerate = samplerate; - } - } - - public double[] DiffuserSeeds - { - get { return diffuser.Seeds; } - set { diffuser.Seeds = value; } - } - - public void SetDelay(int delaySamples) - { - delay.SampleDelay = delaySamples; - } - - public void SetFeedback(double feedb) - { - feedback = feedb; - } - - public void SetDiffuserDelay(int delaySamples) - { - diffuser.SetDelay(delaySamples); - } - - public void SetDiffuserFeedback(double feedb) - { - diffuser.SetFeedback(feedb); - } - - public void SetDiffuserStages(int stages) - { - diffuser.Stages = stages; - } - - public void SetLowShelfGain(double gain) - { - lowShelf.Gain = gain; - lowShelf.Update(); - } - - public void SetLowShelfFrequency(double frequency) - { - lowShelf.Frequency = frequency; - lowShelf.Update(); - } - - public void SetHighShelfGain(double gain) - { - highShelf.Gain = gain; - highShelf.Update(); - } - - public void SetHighShelfFrequency(double frequency) - { - highShelf.Frequency = frequency; - highShelf.Update(); - } - - public void SetCutoffFrequency(double frequency) - { - lowPass.CutoffHz = frequency; - } - - public void SetModAmount(double amount) - { - delay.ModAmount = amount; - } - - public void SetModRate(double rate) - { - delay.ModRate = rate; - } - - public double[] Output { get { return delay.Output; } } - - public void Process(double[] input, int sampleCount) - { - var feedbackBuffer = DiffuserEnabled ? diffuser.Output : filterOutputBuffer; - - for (int i = 0; i < sampleCount; i++) - tempBuffer[i] = input[i] + feedbackBuffer[i] * feedback; - - delay.Process(tempBuffer, sampleCount); - delay.Output.Copy(tempBuffer, sampleCount); - - if (LowShelfEnabled) - lowShelf.Process(tempBuffer, tempBuffer, sampleCount); - if (HighShelfEnabled) - highShelf.Process(tempBuffer, tempBuffer, sampleCount); - if (CutoffEnabled) - lowPass.Process(tempBuffer, tempBuffer, sampleCount); - - tempBuffer.Copy(filterOutputBuffer, sampleCount); - - if (DiffuserEnabled) - { - diffuser.Process(filterOutputBuffer, sampleCount); - } - } - - public void ClearBuffers() - { - delay.ClearBuffers(); - diffuser.ClearBuffers(); - lowShelf.ClearBuffers(); - highShelf.ClearBuffers(); - lowPass.Output = 0; - tempBuffer.Zero(); - filterOutputBuffer.Zero(); - } - } -} diff --git a/CloudSeed/FastSin.cs b/CloudSeed/FastSin.cs deleted file mode 100644 index 9b35508..0000000 --- a/CloudSeed/FastSin.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace CloudSeed -{ - public static class FastSin - { - private static readonly double[] data; - - static FastSin() - { - data = Enumerable.Range(0, 32768).Select(x => Math.Sin(2 * Math.PI * x / 32768.0)).ToArray(); - } - - /// - /// Index must be 0...1 - /// - /// - /// - public static double Get(double index) - { - return data[(int)(index * 32767.99999)]; - } - } -} diff --git a/CloudSeed/IReverbController.cs b/CloudSeed/IReverbController.cs deleted file mode 100644 index 45e1aff..0000000 --- a/CloudSeed/IReverbController.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; - -namespace CloudSeed -{ - public interface IReverbController - { - int Samplerate { get; set; } - - int GetParameterCount(); - double[] GetAllParameters(); - double GetScaledParameter(Parameter param); - void SetParameter(Parameter param, double value); - void ClearBuffers(); - } - - public interface IManagedReverbController : IReverbController - { - void Process(double[][] input, double[][] output); - } - - public interface IUnsafeReverbController : IReverbController - { - void Process(IntPtr input, IntPtr output, int bufferSize); - } -} \ No newline at end of file diff --git a/CloudSeed/ModulatedAllpass.cs b/CloudSeed/ModulatedAllpass.cs deleted file mode 100644 index 8bfb054..0000000 --- a/CloudSeed/ModulatedAllpass.cs +++ /dev/null @@ -1,125 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using AudioLib; - -namespace CloudSeed -{ - public class ModulatedAllpass - { - private const int ModulationUpdateRate = 8; - - private readonly double[] buffer; - private readonly double[] output; - private readonly int bufferSize; - private int index; - private int samplesProcessed; - - private double modPhase; - private int delayA; - private int delayB; - private double gainA; - private double gainB; - - public int SampleDelay; - public double Feedback; - - public double ModAmount; - public double ModRate; - - public bool ModulationEnabled; - - public ModulatedAllpass(int bufferSize, int sampleDelay) - { - this.bufferSize = bufferSize; - this.buffer = new double[bufferSize]; - this.output = new double[bufferSize]; - this.SampleDelay = sampleDelay; - index = bufferSize - 1; - } - - public double[] Output { get { return output; } } - - internal void Clear() - { - buffer.Zero(); - output.Zero(); - } - - public void Process(double[] input, int sampleCount) - { - if (ModulationEnabled) - ProcessWithMod(input, sampleCount); - else - ProcessNoMod(input, sampleCount); - } - - private void ProcessNoMod(double[] input, int sampleCount) - { - var delayedIndex = index - SampleDelay; - if (delayedIndex < 0) delayedIndex += bufferSize; - - for (int i = 0; i < sampleCount; i++) - { - var bufOut = buffer[delayedIndex]; - var inVal = input[i] + bufOut * Feedback; - buffer[index] = inVal; - output[i] = bufOut - inVal * Feedback; - - index++; - delayedIndex++; - if (index >= bufferSize) index -= bufferSize; - if (delayedIndex >= bufferSize) delayedIndex -= bufferSize; - samplesProcessed++; - } - } - - private void ProcessWithMod(double[] input, int sampleCount) - { - for (int i = 0; i < sampleCount; i++) - { - if (samplesProcessed == ModulationUpdateRate) - Update(); - - var bufOut = Get(delayA) * gainA + Get(delayB) * gainB; - var inVal = input[i] + bufOut * Feedback; - buffer[index] = inVal; - output[i] = bufOut - inVal * Feedback; - - index++; - if (index >= bufferSize) index -= bufferSize; - samplesProcessed++; - } - } - - private double Get(int delay) - { - var idx = index - delay; - if (idx < 0) - idx += bufferSize; - - return buffer[idx]; - } - - private void Update() - { - modPhase += ModRate * ModulationUpdateRate; - if (modPhase > 1) modPhase -= 1; - - var mod = FastSin.Get(modPhase); - var totalDelay = SampleDelay + ModAmount * mod; - - delayA = (int)totalDelay; - delayB = (int)totalDelay + 1; - - var partial = totalDelay - delayA; - - gainA = 1 - partial; - gainB = partial; - - samplesProcessed = 0; - } - } -} diff --git a/CloudSeed/ModulatedDelay.cs b/CloudSeed/ModulatedDelay.cs deleted file mode 100644 index 08e1025..0000000 --- a/CloudSeed/ModulatedDelay.cs +++ /dev/null @@ -1,91 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using AudioLib; - -namespace CloudSeed -{ - public class ModulatedDelay - { - private const int ModulationUpdateRate = 8; - - private readonly double[] buffer; - private readonly double[] output; - private readonly int bufferSize; - private int writeIndex; - private int readIndexA; - private int readIndexB; - private int samplesProcessed; - - private double modPhase; - private double gainA; - private double gainB; - - public int SampleDelay; - - public double ModAmount; - public double ModRate; - - public ModulatedDelay(int bufferSize, int sampleDelay) - { - this.bufferSize = bufferSize; - this.buffer = new double[bufferSize]; - this.output = new double[bufferSize]; - this.SampleDelay = sampleDelay; - writeIndex = 0; - Update(); - } - - public double[] Output { get { return output; } } - - public void Process(double[] input, int sampleCount) - { - for (int i = 0; i < sampleCount; i++) - { - if (samplesProcessed == ModulationUpdateRate) - Update(); - - buffer[writeIndex] = input[i]; - output[i] = buffer[readIndexA] * gainA + buffer[readIndexB] * gainB; - - writeIndex++; - readIndexA++; - readIndexB++; - if (writeIndex >= bufferSize) writeIndex -= bufferSize; - if (readIndexA >= bufferSize) readIndexA -= bufferSize; - if (readIndexB >= bufferSize) readIndexB -= bufferSize; - samplesProcessed++; - } - } - - public void ClearBuffers() - { - buffer.Zero(); - } - - private void Update() - { - modPhase += ModRate * ModulationUpdateRate; - if (modPhase > 1) modPhase -= 1; - - var mod = FastSin.Get(modPhase); - var totalDelay = SampleDelay + ModAmount * mod; - - var delayA = (int)totalDelay; - var delayB = (int)totalDelay + 1; - - var partial = totalDelay - delayA; - - gainA = 1 - partial; - gainB = partial; - - readIndexA = writeIndex - delayA; - readIndexB = writeIndex - delayB; - if (readIndexA < 0) readIndexA += bufferSize; - if (readIndexB < 0) readIndexB += bufferSize; - - samplesProcessed = 0; - } - } -} diff --git a/CloudSeed/MultitapDiffuser.cs b/CloudSeed/MultitapDiffuser.cs deleted file mode 100644 index fcc9f52..0000000 --- a/CloudSeed/MultitapDiffuser.cs +++ /dev/null @@ -1,128 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using AudioLib; - -namespace CloudSeed -{ - public class MultitapDiffuser - { - private readonly double[] buffer; - private readonly double[] output; - private readonly int len; - - private int index; - private double[] tapGains; - private int[] tapPosition; - private double[] seeds; - - private int count; - private double length; - private double gain; - private double decay; - - public MultitapDiffuser(int bufferSize) - { - this.len = bufferSize; - this.buffer = new double[bufferSize]; - this.output = new double[bufferSize]; - index = 0; - Seeds = new ShaRandom().Generate(1, 100).ToArray(); - } - - public double[] Seeds - { - get { return seeds; } - set - { - seeds = value; - Update(); - } - } - - public double[] Output { get { return output; } } - - public void SetTapCount(int tapCount) - { - count = tapCount; - Update(); - } - - public void SetTapLength(int tapLength) - { - length = tapLength; - Update(); - } - - public void SetTapDecay(double tapDecay) - { - decay = tapDecay; - Update(); - } - - public void SetTapGain(double tapGain) - { - gain = tapGain; - Update(); - } - - public void Update() - { - int s = 0; - Func rand = () => Seeds[s++]; - - if (count < 1) - count = 1; - - if (length < count) - length = count; - - tapGains = new double[count]; - tapPosition = new int[count]; - - var tapData = Enumerable.Range(0, count).Select(x => 0.1 + rand()).ToArray(); - var scale = length / tapData.Sum(); - tapPosition[0] = 0; - - for (int i = 1; i < count; i++) - { - tapPosition[i] = tapPosition[i - 1] + (int)(tapData[i] * scale); - } - - for (int i = 0; i < count; i++) - { - var g = gain * (1 - decay * (i / (double)count)); - tapGains[i] = g * (2 * rand() - 1); - } - - tapGains[0] = (1 - gain) + tapGains[0] * gain; - } - - public void Process(double[] input, int sampleCount) - { - var taps = tapGains.Length; - - for (int i = 0; i < sampleCount; i++) - { - if (index < 0) index += len; - buffer[index] = input[i]; - output[i] = 0.0; - - for (int j = 0; j < taps; j++) - { - var idx = (index + tapPosition[j]) % len; - output[i] += buffer[idx] * tapGains[j]; - } - - index--; - } - } - - public void ClearBuffers() - { - buffer.Zero(); - } - } -} diff --git a/CloudSeed/OpenSans-Light.ttf b/CloudSeed/OpenSans-Light.ttf deleted file mode 100644 index 0d38189..0000000 Binary files a/CloudSeed/OpenSans-Light.ttf and /dev/null differ diff --git a/CloudSeed/OpenSans-Regular.ttf b/CloudSeed/OpenSans-Regular.ttf deleted file mode 100644 index db43334..0000000 Binary files a/CloudSeed/OpenSans-Regular.ttf and /dev/null differ diff --git a/CloudSeed/Parameter.cs b/CloudSeed/Parameter.cs deleted file mode 100644 index 56c637c..0000000 --- a/CloudSeed/Parameter.cs +++ /dev/null @@ -1,217 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Globalization; -using System.Linq; -using System.Text; - -namespace CloudSeed -{ - public enum Parameter - { - // Input - - InputMix = 0, - PreDelay, - - HighPass, - LowPass, - - // Early - - TapCount, - TapLength, - TapGain, - TapDecay, - - DiffusionEnabled, - DiffusionStages, - DiffusionDelay, - DiffusionFeedback, - - // Late - - LineCount, - LineDelay, - LineDecay, - - - LateDiffusionEnabled, - LateDiffusionStages, - LateDiffusionDelay, - LateDiffusionFeedback, - - // Frequency Response - - PostLowShelfGain, - PostLowShelfFrequency, - PostHighShelfGain, - PostHighShelfFrequency, - PostCutoffFrequency, - - // Modulation - - EarlyDiffusionModAmount, - EarlyDiffusionModRate, - - LineModAmount, - LineModRate, - - LateDiffusionModAmount, - LateDiffusionModRate, - - // Seeds - - TapSeed, - DiffusionSeed, - DelaySeed, - PostDiffusionSeed, - - // Seed Mix - - CrossSeed, - - DryOut, - PredelayOut, - EarlyOut, - MainOut, - - // Switches - HiPassEnabled, - LowPassEnabled, - LowShelfEnabled, - HighShelfEnabled, - CutoffEnabled, - LateStageTap, - - // Effects - Interpolation, - - Count, - - Unused = 999 - } - - public static class ParameterEnumExtensions - { - public static int Value(this Parameter para) - { - return (int)para; - } - - public static string Name(this Parameter para) - { - return Enum.GetName(typeof(Parameter), para); - } - - public static string NameWithSpaces(this Parameter para) - { - var name = Enum.GetName(typeof(Parameter), para); - var chars = new List(); - foreach (var ch in name) - { - if (Char.IsUpper(ch)) - chars.Add(' '); - - chars.Add(ch); - } - - return new string(chars.ToArray()).Trim(); - } - - public static bool In(this Parameter para, params Parameter[] values) - { - return values.Contains(para); - } - - public static Func Formatter(this Parameter para) - { - return Formatters[para]; - } - - private static readonly Func DecayFormatter = x => - { - if (x <= 1) - return (x * 1000).ToString("0", CultureInfo.InvariantCulture) + " ms"; - else - return (x).ToString("0.00", CultureInfo.InvariantCulture) + " sec"; - }; - private static readonly Func DecimalFormatter = x => x.ToString("0.00", CultureInfo.InvariantCulture); - private static readonly Func IntFormatter = x => x.ToString("0", CultureInfo.InvariantCulture); - private static readonly Func MillisFormatter = x => x.ToString("0", CultureInfo.InvariantCulture) + " ms"; - private static readonly Func FrequencyFormatter = x => x.ToString("0", CultureInfo.InvariantCulture) + " Hz"; - private static readonly Func FrequencyDecimalFormatter = x => x.ToString("0.00", CultureInfo.InvariantCulture) + " Hz"; - private static readonly Func OnOffFormatter = x => x >= 0.5 ? "On" : "Off"; - private static readonly Func PrePostFormatter = x => x >= 0.5 ? "Post" : "Pre"; - private static readonly Func InterpolationFormatter = x => x >= 0.5 ? "Enabled" : "Disabled"; - private static readonly Func DbFormatter = x => - { - var val = AudioLib.Utils.Gain2DB(x); - if (double.IsInfinity(val)) - return "None"; - else - return val.ToString("0.00", CultureInfo.InvariantCulture) + " dB"; - }; - - private static readonly Dictionary> Formatters = new Dictionary> - { - { Parameter.InputMix, DecimalFormatter }, - { Parameter.PreDelay, MillisFormatter }, - - { Parameter.HighPass, FrequencyFormatter }, - { Parameter.LowPass, FrequencyFormatter }, - - { Parameter.TapCount, IntFormatter }, - { Parameter.TapLength, MillisFormatter }, - { Parameter.TapGain, DbFormatter }, - { Parameter.TapDecay, DecimalFormatter }, - - { Parameter.DiffusionEnabled, OnOffFormatter }, - { Parameter.DiffusionStages, IntFormatter }, - { Parameter.DiffusionDelay, MillisFormatter }, - { Parameter.DiffusionFeedback, DecimalFormatter }, - - { Parameter.LineCount, IntFormatter }, - { Parameter.LineDelay, MillisFormatter }, - { Parameter.LineDecay, DecayFormatter }, - - { Parameter.LateDiffusionEnabled, OnOffFormatter }, - { Parameter.LateDiffusionStages, IntFormatter }, - { Parameter.LateDiffusionDelay, MillisFormatter }, - { Parameter.LateDiffusionFeedback, DecimalFormatter }, - - { Parameter.PostLowShelfGain, DbFormatter }, - { Parameter.PostLowShelfFrequency, FrequencyFormatter }, - { Parameter.PostHighShelfGain, DbFormatter }, - { Parameter.PostHighShelfFrequency, FrequencyFormatter }, - { Parameter.PostCutoffFrequency, FrequencyFormatter }, - - { Parameter.EarlyDiffusionModAmount, DecimalFormatter }, - { Parameter.EarlyDiffusionModRate, FrequencyDecimalFormatter }, - { Parameter.LineModAmount, DecimalFormatter }, - { Parameter.LineModRate, FrequencyDecimalFormatter }, - { Parameter.LateDiffusionModAmount, DecimalFormatter }, - { Parameter.LateDiffusionModRate, FrequencyDecimalFormatter }, - - { Parameter.TapSeed, IntFormatter }, - { Parameter.DiffusionSeed, IntFormatter }, - { Parameter.DelaySeed, IntFormatter }, - { Parameter.PostDiffusionSeed, IntFormatter }, - - { Parameter.CrossSeed, DecimalFormatter }, - - { Parameter.DryOut, DbFormatter }, - { Parameter.PredelayOut, DbFormatter }, - { Parameter.EarlyOut, DbFormatter }, - { Parameter.MainOut, DbFormatter }, - - { Parameter.HiPassEnabled, OnOffFormatter }, - { Parameter.LowPassEnabled, OnOffFormatter }, - { Parameter.LowShelfEnabled, OnOffFormatter }, - { Parameter.HighShelfEnabled, OnOffFormatter }, - { Parameter.CutoffEnabled, OnOffFormatter }, - { Parameter.LateStageTap, PrePostFormatter }, - - { Parameter.Interpolation, InterpolationFormatter } - }; - } -} diff --git a/CloudSeed/ParameterControl.cs b/CloudSeed/ParameterControl.cs deleted file mode 100644 index cb55eeb..0000000 --- a/CloudSeed/ParameterControl.cs +++ /dev/null @@ -1,60 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Media; - -namespace CloudSeed -{ - public class ParameterControl : FrameworkElement - { - public static Parameter? GetParameter(DependencyObject obj) - { - return (Parameter?)obj.GetValue(ParameterProperty); - } - - public static void SetParameter(DependencyObject obj, Parameter? value) - { - obj.SetValue(ParameterProperty, value); - } - - public static readonly DependencyProperty ParameterProperty = DependencyProperty.RegisterAttached("Parameter", - typeof(Parameter?), typeof(ParameterControl), new PropertyMetadata(null, PropertyChanged)); - - private static void PropertyChanged(DependencyObject item, DependencyPropertyChangedEventArgs e) - { - item.SetValue(e.Property, e.NewValue); - } - - public static Dictionary GetChildrenWithValue(DependencyObject depObj) - { - if (depObj is ContentControl && ((ContentControl)depObj).Content is DependencyObject) - return GetChildrenWithValue(((ContentControl)depObj).Content as DependencyObject); - - var output = new Dictionary(); - - if (depObj == null) - return new Dictionary(); - - for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++) - { - DependencyObject child = VisualTreeHelper.GetChild(depObj, i); - if (child == null) - continue; - - var para = GetParameter(child); - if (para != null) - output[child] = para.Value; - - var subChildren = GetChildrenWithValue(child); - foreach (var subChild in subChildren) - output[subChild.Key] = subChild.Value; - } - - return output; - } - } -} diff --git a/CloudSeed/ProgramBanks.cs b/CloudSeed/ProgramBanks.cs deleted file mode 100644 index d3a00fb..0000000 --- a/CloudSeed/ProgramBanks.cs +++ /dev/null @@ -1,103 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace CloudSeed -{ - public class ProgramBanks - { - public struct PluginProgram - { - public string Name { get; set; } - public string Library { get; set; } - public string Path { get; set; } - public string Data { get; set; } - } - - private static ProgramBanks bank; - public static ProgramBanks Bank - { - get - { - if (bank == null) - bank = new ProgramBanks(); - - return bank; - } - } - - private ProgramBanks() - { - var assemblyLocation = System.Reflection.Assembly.GetExecutingAssembly().Location; - FactoryDir = Path.Combine(Path.GetDirectoryName(assemblyLocation), "Programs", "Factory Programs"); - UserDir = Path.Combine(Path.GetDirectoryName(assemblyLocation), "Programs", "User Programs"); - - ReloadPrograms(); - } - - public void ReloadPrograms() - { - FactoryPrograms = GetProgramFiles(FactoryDir); - UserPrograms = GetProgramFiles(UserDir); - } - - public bool CanDeleteProgram(PluginProgram program) - { - return UserPrograms.Any(x => - x.Library == program.Library && - x.Name == program.Name && - x.Path == program.Path && - File.Exists(program.Path)); - } - - public void DeleteProgram(PluginProgram program) - { - if (CanDeleteProgram(program)) - File.Delete(program.Path); - - // Reload programs - ReloadPrograms(); - } - - public PluginProgram? SaveProgram(string name, string data, bool overwrite) - { - var programPath = Path.Combine(UserDir, name + ".json"); - if (!Directory.Exists(Path.GetDirectoryName(programPath))) - Directory.CreateDirectory(Path.GetDirectoryName(programPath)); - - if (File.Exists(programPath) && !overwrite) - return null; - - File.WriteAllText(programPath, data); - - // Reload programs - UserPrograms = GetProgramFiles(UserDir); - return UserPrograms.Single(x => x.Path == programPath); - } - - private PluginProgram[] GetProgramFiles(string dir) - { - if (!Directory.Exists(dir)) - return new PluginProgram[0]; - - var programs = Directory.GetFiles(dir).Select(path => new PluginProgram - { - Data = File.ReadAllText(path), - Library = Path.GetFileName(Path.GetDirectoryName(path)), - Name = Path.GetFileNameWithoutExtension(path), - Path = path - }).ToArray(); - - return programs; - } - - public string FactoryDir { get; private set; } - public string UserDir { get; private set; } - - public PluginProgram[] FactoryPrograms { get; set; } - public PluginProgram[] UserPrograms { get; set; } - } -} diff --git a/CloudSeed/Properties/AssemblyInfo.cs b/CloudSeed/Properties/AssemblyInfo.cs deleted file mode 100644 index 44cccbe..0000000 --- a/CloudSeed/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("CloudSeed")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("CloudSeed")] -[assembly: AssemblyCopyright("Valdemar Erlingsson 2018")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("752dddae-b99d-49dd-8695-ca0f59c6717a")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.1.*")] diff --git a/CloudSeed/ReverbChannel.cs b/CloudSeed/ReverbChannel.cs deleted file mode 100644 index 8a399db..0000000 --- a/CloudSeed/ReverbChannel.cs +++ /dev/null @@ -1,368 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using AudioLib; -using AudioLib.TF; - -namespace CloudSeed -{ - public class ReverbChannel - { - private readonly Dictionary parameters; - private int samplerate; - - private readonly ModulatedDelay preDelay; - private readonly MultitapDiffuser multitap; - private readonly AllpassDiffuser diffuser; - private readonly DelayLine[] lines; - private readonly ShaRandom rand; - private readonly Hp1 highPass; - private readonly Lp1 lowPass; - private readonly double[] tempBuffer; - private readonly double[] outBuffer; - private double[] delayLineSeeds; - - // Used the the main process loop - private int lineCount; - private double perLineGain; - - private bool highPassEnabled; - private bool lowPassEnabled; - private bool diffuserEnabled; - private double dryOut; - private double predelayOut; - private double earlyOut; - private double lineOut; - - public ReverbChannel(int bufferSize, int samplerate) - { - parameters = new Dictionary(); - foreach (var value in Enum.GetValues(typeof(Parameter)).Cast()) - parameters[value] = 0.0; - - preDelay = new ModulatedDelay(bufferSize, 10000); - - multitap = new MultitapDiffuser(bufferSize); - diffuser = new AllpassDiffuser(bufferSize, samplerate) { ModulationEnabled = true }; - lines = Enumerable.Range(0, 12).Select(x => new DelayLine(bufferSize, samplerate)).ToArray(); - lineCount = 8; - perLineGain = GetPerLineGain(); - - highPass = new Hp1(samplerate) { CutoffHz = 20 }; - lowPass = new Lp1(samplerate) { CutoffHz = 20000 }; - - rand = new ShaRandom(); - tempBuffer = new double[bufferSize]; - outBuffer = new double[bufferSize]; - delayLineSeeds = rand.Generate(12345, lines.Length * 3).ToArray(); - - this.samplerate = samplerate; - } - - public int Samplerate - { - get { return samplerate; } - set - { - samplerate = value; - highPass.Samplerate = samplerate; - lowPass.Samplerate = samplerate; - - for (int i = 0; i < lines.Length; i++) - { - lines[i].Samplerate = samplerate; - } - - Action update = p => SetParameter(p, parameters[p]); - update(Parameter.PreDelay); - update(Parameter.TapLength); - update(Parameter.DiffusionDelay); - update(Parameter.LineDelay); - update(Parameter.LateDiffusionDelay); - update(Parameter.EarlyDiffusionModRate); - update(Parameter.LineModRate); - update(Parameter.LateDiffusionModRate); - update(Parameter.LineModAmount); - UpdateLines(); - } - } - - public double[] Output { get { return outBuffer; } } - - public void SetParameter(Parameter para, double value) - { - parameters[para] = value; - - switch (para) - { - case Parameter.PreDelay: - preDelay.SampleDelay = (int)Ms2Samples(value); - break; - case Parameter.HighPass: - highPass.CutoffHz = value; - break; - case Parameter.LowPass: - lowPass.CutoffHz = value; - break; - - case Parameter.TapCount: - multitap.SetTapCount((int)value); - break; - case Parameter.TapLength: - multitap.SetTapLength((int)Ms2Samples(value)); - break; - case Parameter.TapGain: - multitap.SetTapGain(value); - break; - case Parameter.TapDecay: - multitap.SetTapDecay(value); - break; - - case Parameter.DiffusionEnabled: - diffuserEnabled = value >= 0.5; - break; - case Parameter.DiffusionStages: - diffuser.Stages = (int)value; - break; - case Parameter.DiffusionDelay: - diffuser.SetDelay((int)Ms2Samples(value)); - break; - case Parameter.DiffusionFeedback: - diffuser.SetFeedback(value); - break; - - case Parameter.LineCount: - lineCount = (int)value; - perLineGain = GetPerLineGain(); - break; - case Parameter.LineDelay: - UpdateLines(); - break; - case Parameter.LineDecay: - UpdateLines(); - break; - - case Parameter.LateDiffusionEnabled: - foreach (var line in lines) - line.DiffuserEnabled = value >= 0.5; - break; - case Parameter.LateDiffusionStages: - foreach (var line in lines) - line.SetDiffuserStages((int)value); - break; - case Parameter.LateDiffusionDelay: - foreach (var line in lines) - line.SetDiffuserDelay((int)Ms2Samples(value)); - break; - case Parameter.LateDiffusionFeedback: - foreach (var line in lines) - line.SetDiffuserFeedback(value); - break; - - case Parameter.PostLowShelfGain: - foreach (var line in lines) - line.SetLowShelfGain(value); - break; - case Parameter.PostLowShelfFrequency: - foreach (var line in lines) - line.SetLowShelfFrequency(value); - break; - case Parameter.PostHighShelfGain: - foreach (var line in lines) - line.SetHighShelfGain(value); - break; - case Parameter.PostHighShelfFrequency: - foreach (var line in lines) - line.SetHighShelfFrequency(value); - break; - case Parameter.PostCutoffFrequency: - foreach (var line in lines) - line.SetCutoffFrequency(value); - break; - - case Parameter.EarlyDiffusionModAmount: - diffuser.SetModAmount(Ms2Samples(value)); - break; - case Parameter.EarlyDiffusionModRate: - diffuser.SetModRate(value); - break; - case Parameter.LineModAmount: - UpdateLines(); - break; - case Parameter.LineModRate: - UpdateLines(); - break; - case Parameter.LateDiffusionModAmount: - UpdateLines(); - break; - case Parameter.LateDiffusionModRate: - UpdateLines(); - break; - - case Parameter.TapSeed: - multitap.Seeds = rand.Generate((int)value, 100).ToArray(); - break; - case Parameter.DiffusionSeed: - diffuser.Seeds = rand.Generate((int)value, AllpassDiffuser.MaxStageCount * 3).ToArray(); - break; - case Parameter.DelaySeed: - delayLineSeeds = rand.Generate((int)value, lines.Length * 3).ToArray(); - UpdateLines(); - break; - case Parameter.PostDiffusionSeed: - for (int i = 0; i < lines.Length; i++) - lines[i].DiffuserSeeds = rand.Generate(((long)value) * (i + 1), AllpassDiffuser.MaxStageCount * 3).ToArray(); - break; - - case Parameter.DryOut: - dryOut = value; - break; - case Parameter.PredelayOut: - predelayOut = value; - break; - case Parameter.EarlyOut: - earlyOut = value; - break; - case Parameter.MainOut: - lineOut = value; - break; - - case Parameter.HiPassEnabled: - highPassEnabled = value >= 0.5; - break; - case Parameter.LowPassEnabled: - lowPassEnabled = value >= 0.5; - break; - case Parameter.LowShelfEnabled: - foreach (var line in lines) - line.LowShelfEnabled = value >= 0.5; - break; - case Parameter.HighShelfEnabled: - foreach (var line in lines) - line.HighShelfEnabled = value >= 0.5; - break; - case Parameter.CutoffEnabled: - foreach (var line in lines) - line.CutoffEnabled = value >= 0.5; - break; - } - } - - private double GetPerLineGain() - { - return 1 / Math.Sqrt(lineCount); - } - - private void UpdateLines() - { - var lineModRate = parameters[Parameter.LineModRate]; - var lineModAmount = Ms2Samples(parameters[Parameter.LineModAmount]); - var lineFeedback = parameters[Parameter.LineDecay]; - var lineDelay = (int)Ms2Samples(parameters[Parameter.LineDelay]); - if (lineDelay < 50) lineDelay = 50; - - var count = lines.Length; - for (int i = 0; i < count; i++) - { - var delay = (0.1 + 0.9 * delayLineSeeds[i]) * lineDelay; - var ratio = delay / lineDelay; - var adjustedFeedback = Math.Pow(lineFeedback, ratio); - - var modAmount = lineModAmount * (0.8 + 0.2 * delayLineSeeds[i + count]); - var modRate = lineModRate * (0.8 + 0.2 * delayLineSeeds[i + 2 * count]) / samplerate; - - lines[i].SetDelay((int)delay); - lines[i].SetFeedback(adjustedFeedback); - lines[i].SetModAmount(modAmount); - lines[i].SetModRate(modRate); - } - } - - public void Process(double[] input, int sampleCount) - { - int len = sampleCount; - var predelayOutput = preDelay.Output; - var lowPassInput = highPassEnabled ? tempBuffer : input; - - if (highPassEnabled) - highPass.Process(input, tempBuffer, len); - if (lowPassEnabled) - lowPass.Process(lowPassInput, tempBuffer, len); - if (!lowPassEnabled && !highPassEnabled) - input.Copy(tempBuffer, len); - - // completely zero if no input present - // Previously, the very small values were causing some really strange CPU spikes - for (int i = 0; i < len; i++) - { - var n = tempBuffer[i]; - if (n * n < 0.000000001) - tempBuffer[i] = 0; - } - - preDelay.Process(tempBuffer, len); - multitap.Process(preDelay.Output, len); - - var earlyOutStage = diffuserEnabled ? diffuser.Output : multitap.Output; - - if (diffuserEnabled) - { - diffuser.Process(multitap.Output, len); - diffuser.Output.Copy(tempBuffer, len); - } - else - { - multitap.Output.Copy(tempBuffer, len); - } - - for (int i = 0; i < lineCount; i++) - lines[i].Process(tempBuffer, len); - - for (int i = 0; i < lineCount; i++) - { - var buf = lines[i].Output; - - if (i == 0) - { - for (int j = 0; j < len; j++) - tempBuffer[j] = buf[j]; - } - else - { - for (int j = 0; j < len; j++) - tempBuffer[j] += buf[j]; - } - } - - tempBuffer.Gain(perLineGain, len); - - for (int i = 0; i < len; i++) - { - outBuffer[i] = - dryOut * input[i] + - predelayOut * predelayOutput[i] + - earlyOut * earlyOutStage[i] + - lineOut * tempBuffer[i]; - } - } - - public void ClearBuffers() - { - tempBuffer.Zero(); - outBuffer.Zero(); - lowPass.Output = 0; - highPass.Output = 0; - - preDelay.ClearBuffers(); - multitap.ClearBuffers(); - diffuser.ClearBuffers(); - foreach (var line in lines) - line.ClearBuffers(); - } - - private double Ms2Samples(double value) - { - return value / 1000.0 * samplerate; - } - } -} diff --git a/CloudSeed/ReverbController.cs b/CloudSeed/ReverbController.cs deleted file mode 100644 index 52d5ad9..0000000 --- a/CloudSeed/ReverbController.cs +++ /dev/null @@ -1,189 +0,0 @@ -using AudioLib; -using System; -using System.Collections.Generic; -using System.Globalization; -using System.Linq; -using System.Text; -using Newtonsoft.Json; - -namespace CloudSeed -{ - public class ReverbController : IManagedReverbController - { - private int samplerate; - - private readonly ReverbChannel channelL; - private readonly ReverbChannel channelR; - private readonly double[] leftChannelIn; - private readonly double[] rightChannelIn; - - private readonly double[] parameters; - - public ReverbController(int samplerate) - { - const int bufferSize = 192000 / 2; // just make it huge by default... - - parameters = new double[Parameter.Count.Value()]; - leftChannelIn = new double[bufferSize]; - rightChannelIn = new double[bufferSize]; - channelL = new ReverbChannel(bufferSize, samplerate); - channelR = new ReverbChannel(bufferSize, samplerate); - Samplerate = samplerate; - } - - public int Samplerate - { - get { return samplerate; } - set - { - samplerate = value; - channelL.Samplerate = samplerate; - channelR.Samplerate = samplerate; - } - } - - public int GetParameterCount() - { - return parameters.Length; - } - - public double[] GetAllParameters() - { - return parameters.ToArray(); - } - - /// - /// warps the 0...1 parameter range into a meaningful value - /// - /// - /// - public double GetScaledParameter(Parameter param) - { - switch(param) - { - // Input - case Parameter.InputMix: return P(Parameter.InputMix); - case Parameter.PreDelay: return (int)(P(Parameter.PreDelay) * 500); - - case Parameter.HighPass: return 20 + ValueTables.Get(P(Parameter.HighPass), ValueTables.Response4Oct) * 980; - case Parameter.LowPass: return 400 + ValueTables.Get(P(Parameter.LowPass), ValueTables.Response4Oct) * 19600; - - // Early - case Parameter.TapCount: return 1 + (int)(P(Parameter.TapCount) * 49.0); - case Parameter.TapLength: return (int)(P(Parameter.TapLength) * 500); - case Parameter.TapGain: return ValueTables.Get(P(Parameter.TapGain), ValueTables.Response2Dec); - case Parameter.TapDecay: return P(Parameter.TapDecay); - - case Parameter.DiffusionEnabled: return P(Parameter.DiffusionEnabled); - case Parameter.DiffusionStages: return 1 + (int)(P(Parameter.DiffusionStages) * (AllpassDiffuser.MaxStageCount - 0.001)); - case Parameter.DiffusionDelay: return (int)(P(Parameter.DiffusionDelay) * 50); - case Parameter.DiffusionFeedback: return P(Parameter.DiffusionFeedback); - - // Late - case Parameter.LineCount: return 1 + (int)(P(Parameter.LineCount) * 11.999); - case Parameter.LineDelay: return (int)(P(Parameter.LineDelay) * 500); - case Parameter.LineDecay: return P(Parameter.LineDecay); - - case Parameter.LateDiffusionEnabled: return P(Parameter.LateDiffusionEnabled); - case Parameter.LateDiffusionStages: return 1 + (int)(P(Parameter.LateDiffusionStages) * (AllpassDiffuser.MaxStageCount - 0.001)); - case Parameter.LateDiffusionDelay: return (int)(P(Parameter.LateDiffusionDelay) * 50); - case Parameter.LateDiffusionFeedback: return P(Parameter.LateDiffusionFeedback); - - // Frequency Response - case Parameter.PostLowShelfGain: return ValueTables.Get(P(Parameter.PostLowShelfGain), ValueTables.Response2Dec); - case Parameter.PostLowShelfFrequency: return 20 + ValueTables.Get(P(Parameter.PostLowShelfFrequency), ValueTables.Response4Oct) * 980; - case Parameter.PostHighShelfGain: return ValueTables.Get(P(Parameter.PostHighShelfGain), ValueTables.Response2Dec); - case Parameter.PostHighShelfFrequency: return 400 + ValueTables.Get(P(Parameter.PostHighShelfFrequency), ValueTables.Response4Oct) * 19600; - case Parameter.PostCutoffFrequency: return 400 + ValueTables.Get(P(Parameter.PostCutoffFrequency), ValueTables.Response4Oct) * 19600; - - // Modulation - case Parameter.EarlyDiffusionModAmount: return P(Parameter.EarlyDiffusionModAmount) * 2.5; - case Parameter.EarlyDiffusionModRate: return ValueTables.Get(P(Parameter.EarlyDiffusionModRate), ValueTables.Response2Dec) * 5; - case Parameter.LineModAmount: return P(Parameter.LineModAmount) * 2.5; - case Parameter.LineModRate: return ValueTables.Get(P(Parameter.LineModRate), ValueTables.Response2Dec) * 5; - case Parameter.LateDiffusionModAmount: return P(Parameter.LateDiffusionModAmount) * 2.5; - case Parameter.LateDiffusionModRate: return ValueTables.Get(P(Parameter.LateDiffusionModRate), ValueTables.Response2Dec) * 5; - - // Seeds - case Parameter.TapSeed: return (int)(P(Parameter.TapSeed) * 1000000); - case Parameter.DiffusionSeed: return (int)(P(Parameter.DiffusionSeed) * 1000000); - case Parameter.DelaySeed: return (int)(P(Parameter.DelaySeed) * 1000000); - case Parameter.PostDiffusionSeed: return (int)(P(Parameter.PostDiffusionSeed) * 1000000); - - // Output - case Parameter.CrossSeed: return P(Parameter.CrossSeed); - - case Parameter.DryOut: return ValueTables.Get(P(Parameter.DryOut), ValueTables.Response2Dec); - case Parameter.PredelayOut: return ValueTables.Get(P(Parameter.PredelayOut), ValueTables.Response2Dec); - case Parameter.EarlyOut: return ValueTables.Get(P(Parameter.EarlyOut), ValueTables.Response2Dec); - case Parameter.MainOut: return ValueTables.Get(P(Parameter.MainOut), ValueTables.Response2Dec); - - // Switches - case Parameter.HiPassEnabled: return P(Parameter.HiPassEnabled); - case Parameter.LowPassEnabled: return P(Parameter.LowPassEnabled); - case Parameter.LowShelfEnabled: return P(Parameter.LowShelfEnabled); - case Parameter.HighShelfEnabled: return P(Parameter.HighShelfEnabled); - case Parameter.CutoffEnabled: return P(Parameter.CutoffEnabled); - - default: return 0.0; - } - } - - /// - /// Sets a parameter using a normalized double in the range 0...1 - /// - /// - /// - public void SetParameter(Parameter param, double value) - { - parameters[param.Value()] = value; - var scaled = GetScaledParameter(param); - - channelL.SetParameter(param, scaled); - - if (param.Value() >= Parameter.TapSeed.Value() && param.Value() <= Parameter.PostDiffusionSeed.Value()) - scaled = (int)scaled + 1000000; // different seeds for right channel - - channelR.SetParameter(param, scaled); - } - - public void Process(double[][] input, double[][] output) - { - var len = input[0].Length; - - var cm = GetScaledParameter(Parameter.InputMix) * 0.5; - var cmi = (1 - cm); - var st = 0.5 + 0.5 * GetScaledParameter(Parameter.CrossSeed); - var sti = (1 - st); - - for (int i = 0; i < len; i++) - { - leftChannelIn[i] = input[0][i] * cmi + input[1][i] * cm; - rightChannelIn[i] = input[1][i] * cmi + input[0][i] * cm; - } - - channelL.Process(leftChannelIn, len); - channelR.Process(rightChannelIn, len); - var leftOut = channelL.Output; - var rightOut = channelR.Output; - - for (int i = 0; i < len; i++) - { - output[0][i] = leftOut[i] * st + rightOut[i] * sti; - output[1][i] = rightOut[i] * st + leftOut[i] * sti; - } - } - - public void ClearBuffers() - { - channelL.ClearBuffers(); - channelR.ClearBuffers(); - } - - private double P(Parameter para) - { - var idx = para.Value(); - return idx >= 0 && idx < parameters.Length ? parameters[idx] : 0.0; - } - } -} diff --git a/CloudSeed/UI/AboutDialog.xaml b/CloudSeed/UI/AboutDialog.xaml deleted file mode 100644 index 01ab25f..0000000 --- a/CloudSeed/UI/AboutDialog.xaml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/CloudSeed/UI/AboutDialog.xaml.cs b/CloudSeed/UI/AboutDialog.xaml.cs deleted file mode 100644 index 78dcf8c..0000000 --- a/CloudSeed/UI/AboutDialog.xaml.cs +++ /dev/null @@ -1,46 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Runtime.InteropServices; -using System.Text; -using System.Threading.Tasks; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Data; -using System.Windows.Documents; -using System.Windows.Input; -using System.Windows.Interop; -using System.Windows.Media; -using System.Windows.Media.Imaging; -using System.Windows.Navigation; -using System.Windows.Shapes; - -namespace CloudSeed.UI -{ - /// - /// Interaction logic for RenameProgramDialog.xaml - /// - public partial class AboutDialog : Window - { - public AboutDialog() - { - InitializeComponent(); - this.IsVisibleChanged += (s, x) => - { - this.Center(); - }; - - VersionLabel.Content = "Version: " + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); - } - - private void Close(object sender, RoutedEventArgs e) - { - Close(); - } - - private void GoToWebsite(object sender, MouseButtonEventArgs e) - { - System.Diagnostics.Process.Start("https://github.com/ValdemarOrn/CloudSeed"); - } - } -} diff --git a/CloudSeed/UI/CenterHelper.cs b/CloudSeed/UI/CenterHelper.cs deleted file mode 100644 index 823a71b..0000000 --- a/CloudSeed/UI/CenterHelper.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Runtime.InteropServices; -using System.Text; -using System.Threading.Tasks; -using System.Windows; -using System.Windows.Interop; - -namespace CloudSeed.UI -{ - public static class CenterHelper - { - [DllImport("user32.dll", SetLastError = true)] - static extern bool GetWindowRect(IntPtr hwnd, out Rect lpRect); - - [StructLayout(LayoutKind.Sequential)] - private struct Rect - { - public int Left, Top, Right, Bottom; - } - - public static void Center(this Window dialog) - { - var owner = dialog.Owner; - - Rect rect; - var ownerHandle = new WindowInteropHelper(owner).Handle; - GetWindowRect(ownerHandle, out rect); - - var w = rect.Right - rect.Left; - var h = rect.Bottom - rect.Top; - - var x = (int)(rect.Left + 0.5 * w - 0.5 * dialog.Width); - var y = (int)(rect.Top + 0.5 * h - 0.5 * dialog.Height); - - dialog.Left = x; - dialog.Top = y; - } - - } -} diff --git a/CloudSeed/UI/CloudSeedView.xaml b/CloudSeed/UI/CloudSeedView.xaml deleted file mode 100644 index f22b4dc..0000000 --- a/CloudSeed/UI/CloudSeedView.xaml +++ /dev/null @@ -1,381 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/CloudSeed/UI/CloudSeedView.xaml.cs b/CloudSeed/UI/CloudSeedView.xaml.cs deleted file mode 100644 index 832f857..0000000 --- a/CloudSeed/UI/CloudSeedView.xaml.cs +++ /dev/null @@ -1,167 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Linq; -using System.Text; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Controls.Primitives; -using System.Windows.Data; -using System.Windows.Documents; -using System.Windows.Input; -using System.Windows.Media; -using System.Windows.Media.Imaging; -using System.Windows.Navigation; -using System.Windows.Shapes; -using System.Windows.Threading; -using AudioLib.WpfUi; - -namespace CloudSeed.UI -{ - /// - /// Interaction logic for MainWindow.xaml - /// - public partial class CloudSeedView : UserControl - { - class DoubleToBoolConverter : IValueConverter - { - public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) - { - double dVal = (value is double) ? (double)value : 0.0; - return dVal >= 0.5; - } - - public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) - { - var isTrue = value.Equals(true); - return isTrue ? 1.0 : 0.0; - } - } - - class FreeConverter : IValueConverter - { - private readonly Func convert; - private readonly Func convertBack; - - public FreeConverter(Func convert, Func convertBack) - { - this.convert = convert; - this.convertBack = convertBack; - } - - public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) - { - if (value is TA) - return convert((TA)value); - - throw new ArgumentException(); - } - - public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) - { - if (value is TB) - return convertBack((TB)value); - - throw new ArgumentException(); - } - } - - private readonly CloudSeedViewModel viewModel; - - public CloudSeedView(CloudSeedViewModel viewModel) - { - this.viewModel = viewModel; - DataContext = viewModel; - InitializeComponent(); - Setup(); - } - - public CloudSeedView() - { - var plugin = new CloudSeedPlugin(); - plugin.InitializeDevice(); - - viewModel = plugin.ViewModel; - DataContext = viewModel; - InitializeComponent(); - Setup(); - } - - void Setup() - { - var linkedControls = ParameterControl.GetChildrenWithValue(this); - - foreach (var linkedControl in linkedControls) - { - var param = linkedControl.Value; - var control = linkedControl.Key as Control; - - var binding = new Binding("NumberedParameters[" + param.Value() + "]"); - binding.Source = viewModel; - binding.Mode = BindingMode.TwoWay; - - control.MouseEnter += (s, e) => viewModel.ActiveControl = param; - control.MouseLeave += (s, e) => { if (viewModel.ActiveControl == param) { viewModel.ActiveControl = null; } }; - - if (control is Knob2) - { - control.SetBinding(Knob2.ValueProperty, binding); - } - else if (control is ToggleButton) - { - binding.Converter = new DoubleToBoolConverter(); - control.SetBinding(ToggleButton.IsCheckedProperty, binding); - } - else if (control is Spinner) - { - var spinner = control as Spinner; - binding.Converter = new FreeConverter( - x => (int)(spinner.Min + x * (spinner.Max - spinner.Min) + 0.00001), - x => (x - spinner.Min) / (spinner.Max - spinner.Min)); - - control.SetBinding(Spinner.ValueProperty, binding); - } - } - } - - private void ShowSaveDialog(object sender, RoutedEventArgs e) - { - var dialog = new RenameProgramDialog(); - dialog.Owner = Parent as Window; - var newName = dialog.ShowDialog("Save new Program"); - - if (newName != null) - { - viewModel.SaveProgramCommand.Execute(newName); - } - } - - private void DeleteProgram(object sender, RoutedEventArgs e) - { - var ok = MessageBox.Show("Are you sure you want to delete program " + viewModel.SelectedProgram.Name + "?", "Delete Program", MessageBoxButton.YesNo, MessageBoxImage.Question); - if (ok == MessageBoxResult.Yes) - { - viewModel.DeleteProgramCommand.Execute(null); - } - } - - private void CloseDialogs(object sender, RoutedEventArgs e) - { - SaveProgramDialog.Visibility = Visibility.Collapsed; - RenameProgramDialog.Visibility = Visibility.Collapsed; - } - - private void ProgramLabelClick(object sender, MouseButtonEventArgs e) - { - ProgramLabel.ContextMenu.DataContext = DataContext; - ProgramLabel.ContextMenu.IsOpen = true; - } - - private void ShowAboutDialog(object sender, MouseButtonEventArgs e) - { - var dialog = new AboutDialog(); - dialog.Owner = Parent as Window; - dialog.ShowDialog(); - } - } -} diff --git a/CloudSeed/UI/CloudSeedViewModel.cs b/CloudSeed/UI/CloudSeedViewModel.cs deleted file mode 100644 index 9430499..0000000 --- a/CloudSeed/UI/CloudSeedViewModel.cs +++ /dev/null @@ -1,203 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.ComponentModel; -using System.IO; -using System.Linq; -using System.Runtime.CompilerServices; -using System.Text; -using System.Threading; -using System.Windows.Input; - -namespace CloudSeed.UI -{ - public class CloudSeedViewModel : INotifyPropertyChanged - { - public event PropertyChangedEventHandler PropertyChanged; - - private readonly object updateLock = new object(); - private readonly CloudSeedPlugin plugin; - private readonly Thread updateThread; - private readonly Dictionary parameterUpdates; - - private volatile bool suppressUpdates; - private Parameter? activeControl; - private ProgramBanks.PluginProgram selectedProgram; - - public CloudSeedViewModel(CloudSeedPlugin plugin) - { - this.plugin = plugin; - - this.parameterUpdates = new Dictionary(); - NumberedParameters = new ObservableCollection(); - foreach (var para in Enum.GetValues(typeof(Parameter)).Cast()) - NumberedParameters.Add(0.0); - - SaveProgramCommand = new DelegateCommand(name => SaveProgram(name.ToString())); - LoadProgramCommand = new DelegateCommand(program => LoadProgram((ProgramBanks.PluginProgram?)program)); - DeleteProgramCommand = new DelegateCommand(_ => DeleteProgram()); - - NumberedParameters.CollectionChanged += (s, e) => - { - if (suppressUpdates) - return; - - lock (updateLock) - { - var para = (Parameter)e.NewStartingIndex; - var val = (double)e.NewItems[0]; - plugin.SetParameter(para, val); - NotifyChanged(() => ActiveControlDisplay); - } - }; - - updateThread = new Thread(UpdateParameters); - updateThread.IsBackground = true; - updateThread.Priority = ThreadPriority.Lowest; - updateThread.Start(); - } - - private void UpdateParameters() - { - var toProcess = new List>(); - - while (true) - { - Thread.Sleep(50); - toProcess.Clear(); - - lock (parameterUpdates) - { - toProcess.AddRange(parameterUpdates); - parameterUpdates.Clear(); - } - - if (toProcess.Count == 0) - continue; - - lock (updateLock) - { - foreach (var tuple in toProcess) - UpdateParameter(tuple.Key, tuple.Value); - } - } - } - - public ICommand SaveProgramCommand { get; private set; } - public ICommand LoadProgramCommand { get; private set; } - public ICommand DeleteProgramCommand { get; private set; } - - public ObservableCollection NumberedParameters - { - get; - private set; - } - - public Parameter? ActiveControl - { - get { return activeControl; } - set - { - activeControl = value; - NotifyChanged(() => ActiveControlName); - NotifyChanged(() => ActiveControlDisplay); - } - } - - public string ActiveControlName - { - get { return ActiveControl.HasValue ? ActiveControl.Value.NameWithSpaces() : ""; } - } - - public string ActiveControlDisplay - { - get { return ActiveControl.HasValue ? plugin.GetDisplay(ActiveControl.Value) : ""; } - } - - public ProgramBanks.PluginProgram[] FactoryPrograms - { - get { return ProgramBanks.Bank.FactoryPrograms.ToArray(); } - } - - public ProgramBanks.PluginProgram[] UserPrograms - { - get { return ProgramBanks.Bank.UserPrograms.ToArray(); } - } - - public ProgramBanks.PluginProgram SelectedProgram - { - get { return selectedProgram; } - set { selectedProgram = value; NotifyChanged(); } - } - - public void UpdateParameterAsync(Parameter param, double newValue) - { - lock (parameterUpdates) - { - parameterUpdates[param] = newValue; - } - } - - private void UpdateParameter(Parameter param, double newValue) - { - lock (updateLock) - { - suppressUpdates = true; - NumberedParameters[param.Value()] = newValue; - - suppressUpdates = false; - NotifyChanged(() => NumberedParameters); - } - } - - private void LoadProgram(ProgramBanks.PluginProgram? programData) - { - if (programData == null) - return; - - plugin.SetPluginProgram(programData.Value); - } - - private void SaveProgram(string name) - { - var jsonData = plugin.GetJsonProgram(); - var newProg = ProgramBanks.Bank.SaveProgram(name, jsonData, true); - - if (newProg.HasValue) - { - NotifyChanged(() => UserPrograms); - LoadProgram(newProg.Value); - } - } - - private void DeleteProgram() - { - ProgramBanks.Bank.DeleteProgram(SelectedProgram); - NotifyChanged(() => UserPrograms); - } - - #region Notify Change - - // I used this and GetPropertyName to avoid having to hard-code property names - // into the NotifyChange events. This makes the application much easier to refactor - // leter on, if needed. - private void NotifyChanged(System.Linq.Expressions.Expression> exp) - { - var name = GetPropertyName(exp); - NotifyChanged(name); - } - - private void NotifyChanged([CallerMemberName]string property = null) - { - if (PropertyChanged != null) - PropertyChanged.Invoke(this, new PropertyChangedEventArgs(property)); - } - - private static string GetPropertyName(System.Linq.Expressions.Expression> exp) - { - return (((System.Linq.Expressions.MemberExpression)(exp.Body)).Member).Name; - } - - #endregion - } -} diff --git a/CloudSeed/UI/DelegateCommand.cs b/CloudSeed/UI/DelegateCommand.cs deleted file mode 100644 index ab0c0df..0000000 --- a/CloudSeed/UI/DelegateCommand.cs +++ /dev/null @@ -1,50 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Input; - -namespace CloudSeed.UI -{ - public class DelegateCommand : ICommand - { - private readonly Predicate canExecute; - private readonly Action execute; - - public event EventHandler CanExecuteChanged; - - public DelegateCommand(Action execute) : this(execute, null) - { - } - - public DelegateCommand(Action execute, Predicate canExecute) - { - this.execute = execute; - this.canExecute = canExecute; - } - - public bool CanExecute(object parameter) - { - if (canExecute == null) - { - return true; - } - - return canExecute(parameter); - } - - public void Execute(object parameter) - { - execute(parameter); - } - - public void RaiseCanExecuteChanged() - { - if (CanExecuteChanged != null) - { - CanExecuteChanged(this, EventArgs.Empty); - } - } - } -} diff --git a/CloudSeed/UI/RenameProgramDialog.xaml b/CloudSeed/UI/RenameProgramDialog.xaml deleted file mode 100644 index 6240539..0000000 --- a/CloudSeed/UI/RenameProgramDialog.xaml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/CloudSeed/UI/RenameProgramDialog.xaml.cs b/CloudSeed/UI/RenameProgramDialog.xaml.cs deleted file mode 100644 index 3d2a0a2..0000000 --- a/CloudSeed/UI/RenameProgramDialog.xaml.cs +++ /dev/null @@ -1,56 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Runtime.InteropServices; -using System.Text; -using System.Threading.Tasks; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Data; -using System.Windows.Documents; -using System.Windows.Input; -using System.Windows.Interop; -using System.Windows.Media; -using System.Windows.Media.Imaging; -using System.Windows.Navigation; -using System.Windows.Shapes; - -namespace CloudSeed.UI -{ - /// - /// Interaction logic for RenameProgramDialog.xaml - /// - public partial class RenameProgramDialog : Window - { - public RenameProgramDialog() - { - InitializeComponent(); - this.IsVisibleChanged += (s, x) => - { - this.Center(); - MainTextBox.Focus(); - }; - } - - public bool Cancelled { get; private set; } - - public string ShowDialog(string title) - { - TitleLabel.Content = title; - this.ShowDialog(); - return Cancelled ? null : MainTextBox.Text; - } - - private void Save(object sender, RoutedEventArgs e) - { - Cancelled = false; - Close(); - } - - private void Cancel(object sender, RoutedEventArgs e) - { - Cancelled = true; - Close(); - } - } -} diff --git a/CloudSeed/UI/Styles.xaml b/CloudSeed/UI/Styles.xaml deleted file mode 100644 index 6ee0ab7..0000000 --- a/CloudSeed/UI/Styles.xaml +++ /dev/null @@ -1,182 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/CloudSeed/UnsafeReverbController.cs b/CloudSeed/UnsafeReverbController.cs deleted file mode 100644 index 32bc061..0000000 --- a/CloudSeed/UnsafeReverbController.cs +++ /dev/null @@ -1,130 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Runtime.InteropServices; -using System.Text; -using System.Threading.Tasks; - -namespace CloudSeed -{ - public unsafe class UnsafeReverbController : IUnsafeReverbController, IDisposable - { - [DllImport(@"CloudSeed.Native.dll", CallingConvention = CallingConvention.Cdecl, SetLastError = false, ThrowOnUnmappableChar = false)] - static extern IntPtr Create(int samplerate); - - [DllImport(@"CloudSeed.Native.dll", CallingConvention = CallingConvention.Cdecl, SetLastError = false, ThrowOnUnmappableChar = false)] - static extern void Delete(IntPtr item); - - [DllImport(@"CloudSeed.Native.dll", CallingConvention = CallingConvention.Cdecl, SetLastError = false, ThrowOnUnmappableChar = false)] - static extern int GetSamplerate(IntPtr item); - - [DllImport(@"CloudSeed.Native.dll", CallingConvention = CallingConvention.Cdecl, SetLastError = false, ThrowOnUnmappableChar = false)] - static extern void SetSamplerate(IntPtr item, int samplerate); - - [DllImport(@"CloudSeed.Native.dll", CallingConvention = CallingConvention.Cdecl, SetLastError = false, ThrowOnUnmappableChar = false)] - static extern int GetParameterCount(IntPtr item); - - [DllImport(@"CloudSeed.Native.dll", CallingConvention = CallingConvention.Cdecl, SetLastError = false, ThrowOnUnmappableChar = false)] - static extern double* GetAllParameters(IntPtr item); - - [DllImport(@"CloudSeed.Native.dll", CallingConvention = CallingConvention.Cdecl, SetLastError = false, ThrowOnUnmappableChar = false)] - static extern double GetScaledParameter(IntPtr item, int param); - - [DllImport(@"CloudSeed.Native.dll", CallingConvention = CallingConvention.Cdecl, SetLastError = false, ThrowOnUnmappableChar = false)] - static extern void SetParameter(IntPtr item, int param, double value); - - [DllImport(@"CloudSeed.Native.dll", CallingConvention = CallingConvention.Cdecl, SetLastError = false, ThrowOnUnmappableChar = false)] - static extern void ClearBuffers(IntPtr item); - - [DllImport(@"CloudSeed.Native.dll", CallingConvention = CallingConvention.Cdecl, SetLastError = false, ThrowOnUnmappableChar = false)] - static extern void Process(IntPtr item, double** input, double** output, int bufferSize); - - private static object createLock = new object(); - - private IntPtr instance; - - public UnsafeReverbController(int samplerate) - { - lock (createLock) - { - instance = Create(samplerate); - } - } - - ~UnsafeReverbController() - { - Delete(instance); - } - - public void Dispose() - { - Delete(instance); - GC.SuppressFinalize(this); - } - - public int Samplerate - { - get { return GetSamplerate(instance); } - set { SetSamplerate(instance, value); } - } - - public int GetParameterCount() - { - return GetParameterCount(instance); - } - - public double[] GetAllParameters() - { - IntPtr para = (IntPtr)GetAllParameters(instance); - var count = GetParameterCount(instance); - var output = new double[count]; - Marshal.Copy(para, output, 0, count); - return output; - } - - public double GetScaledParameter(Parameter param) - { - return GetScaledParameter(instance, (int)param); - } - - public void SetParameter(Parameter param, double value) - { - SetParameter(instance, (int)param, value); - } - - public void Process(IntPtr input, IntPtr output, int bufferSize) - { - Process(instance, (double**)input, (double**)output, bufferSize); - } - - public void Process(double[][] input, double[][] output, int bufferSize) - { - var inL = input[0]; - var inR = input[1]; - var outL = output[0]; - var outR = output[1]; - var inPtr = new IntPtr[2]; - var outPtr = new IntPtr[2]; - - fixed (double* il = inL) - fixed (double* ir = inR) - fixed (double* ol = outL) - fixed (double* or = outR) - fixed (IntPtr* ins = inPtr) - fixed (IntPtr* outs = outPtr) - { - ins[0] = (IntPtr)il; - ins[1] = (IntPtr)ir; - outs[0] = (IntPtr)ol; - outs[1] = (IntPtr)or; - - Process((IntPtr)ins, (IntPtr)outs, bufferSize); - } - } - - public void ClearBuffers() - { - ClearBuffers(instance); - } - } -} diff --git a/CloudSeed/packages.config b/CloudSeed/packages.config deleted file mode 100644 index c8b3ae6..0000000 --- a/CloudSeed/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/CloudSeedSetup/CloudSeedSetup.vdproj b/CloudSeedSetup/CloudSeedSetup.vdproj deleted file mode 100644 index f1bc56f..0000000 --- a/CloudSeedSetup/CloudSeedSetup.vdproj +++ /dev/null @@ -1,1022 +0,0 @@ -"DeployProject" -{ -"VSVersion" = "3:800" -"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}" -"IsWebType" = "8:FALSE" -"ProjectName" = "8:CloudSeedSetup" -"LanguageId" = "3:1033" -"CodePage" = "3:1252" -"UILanguageId" = "3:1033" -"SccProjectName" = "8:" -"SccLocalPath" = "8:" -"SccAuxPath" = "8:" -"SccProvider" = "8:" - "Hierarchy" - { - "Entry" - { - "MsmKey" = "8:_0DB15CD1EC2560A543800765E025F4D3" - "OwnerKey" = "8:_9B21B2D6B38C48FB9BF51835FED81A76" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_4727AC5EC033767026E008ED076CAD82" - "OwnerKey" = "8:_617291FC396842956288F2F77458597F" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_4727AC5EC033767026E008ED076CAD82" - "OwnerKey" = "8:_BF5D0E34D2FB483DB0E5E7BA26638549" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_5D459826D1549487A10703602A662B98" - "OwnerKey" = "8:_9B21B2D6B38C48FB9BF51835FED81A76" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_617291FC396842956288F2F77458597F" - "OwnerKey" = "8:_BF5D0E34D2FB483DB0E5E7BA26638549" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_82D4D49171174716725F3AA9C62DFFB7" - "OwnerKey" = "8:_BF5D0E34D2FB483DB0E5E7BA26638549" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_9B21B2D6B38C48FB9BF51835FED81A76" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_A4A0AB08F48580C81E73FF2F5F8F7344" - "OwnerKey" = "8:_9B21B2D6B38C48FB9BF51835FED81A76" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_B51D64FBE35292FBE88EB708280FADBC" - "OwnerKey" = "8:_9B21B2D6B38C48FB9BF51835FED81A76" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_BF5D0E34D2FB483DB0E5E7BA26638549" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C4283E7715377D282FE9DC5B927D095C" - "OwnerKey" = "8:_9B21B2D6B38C48FB9BF51835FED81A76" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_DEBF4BFE1CE551208D6D9C6A0266D6C1" - "OwnerKey" = "8:_9B21B2D6B38C48FB9BF51835FED81A76" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_4727AC5EC033767026E008ED076CAD82" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_BF5D0E34D2FB483DB0E5E7BA26638549" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_82D4D49171174716725F3AA9C62DFFB7" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_UNDEFINED" - "OwnerKey" = "8:_617291FC396842956288F2F77458597F" - "MsmSig" = "8:_UNDEFINED" - } - } - "Configurations" - { - "Debug" - { - "DisplayName" = "8:Debug" - "IsDebugOnly" = "11:TRUE" - "IsReleaseOnly" = "11:FALSE" - "OutputFilename" = "8:Debug\\CloudSeedSetup.msi" - "PackageFilesAs" = "3:2" - "PackageFileSize" = "3:-2147483648" - "CabType" = "3:1" - "Compression" = "3:2" - "SignOutput" = "11:FALSE" - "CertificateFile" = "8:" - "PrivateKeyFile" = "8:" - "TimeStampServer" = "8:" - "InstallerBootstrapper" = "3:2" - } - "Release" - { - "DisplayName" = "8:Release" - "IsDebugOnly" = "11:FALSE" - "IsReleaseOnly" = "11:TRUE" - "OutputFilename" = "8:Release\\CloudSeedSetup.msi" - "PackageFilesAs" = "3:2" - "PackageFileSize" = "3:-2147483648" - "CabType" = "3:1" - "Compression" = "3:2" - "SignOutput" = "11:FALSE" - "CertificateFile" = "8:" - "PrivateKeyFile" = "8:" - "TimeStampServer" = "8:" - "InstallerBootstrapper" = "3:2" - } - } - "Deployable" - { - "CustomAction" - { - } - "DefaultFeature" - { - "Name" = "8:DefaultFeature" - "Title" = "8:" - "Description" = "8:" - } - "ExternalPersistence" - { - "LaunchCondition" - { - "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_4E87CB808234448684717C06FE3D1D3B" - { - "Name" = "8:.NET Framework" - "Message" = "8:[VSDNETMSG]" - "FrameworkVersion" = "8:.NETFramework,Version=v4.6.1" - "AllowLaterVersions" = "11:FALSE" - "InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=671728" - } - } - } - "File" - { - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_0DB15CD1EC2560A543800765E025F4D3" - { - "SourcePath" = "8:VCRUNTIME140.dll" - "TargetName" = "8:VCRUNTIME140.dll" - "Tag" = "8:" - "Folder" = "8:_AB28A74439A34438B01DF7F78BDEA96D" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_4727AC5EC033767026E008ED076CAD82" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_4727AC5EC033767026E008ED076CAD82" - { - "Name" = "8:Newtonsoft.Json.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:Newtonsoft.Json.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_AB28A74439A34438B01DF7F78BDEA96D" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_5D459826D1549487A10703602A662B98" - { - "SourcePath" = "8:api-ms-win-crt-utility-l1-1-0.dll" - "TargetName" = "8:api-ms-win-crt-utility-l1-1-0.dll" - "Tag" = "8:" - "Folder" = "8:_AB28A74439A34438B01DF7F78BDEA96D" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_617291FC396842956288F2F77458597F" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:AudioLib, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_617291FC396842956288F2F77458597F" - { - "Name" = "8:AudioLib.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:AudioLib.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_AB28A74439A34438B01DF7F78BDEA96D" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_82D4D49171174716725F3AA9C62DFFB7" - { - "AssemblyRegister" = "3:1" - "AssemblyIsInGAC" = "11:FALSE" - "AssemblyAsmDisplayName" = "8:SharpSoundDevice, Version=1.5.0.37933, Culture=neutral, processorArchitecture=MSIL" - "ScatterAssemblies" - { - "_82D4D49171174716725F3AA9C62DFFB7" - { - "Name" = "8:SharpSoundDevice.dll" - "Attributes" = "3:512" - } - } - "SourcePath" = "8:SharpSoundDevice.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_AB28A74439A34438B01DF7F78BDEA96D" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_A4A0AB08F48580C81E73FF2F5F8F7344" - { - "SourcePath" = "8:MSVCP140.dll" - "TargetName" = "8:MSVCP140.dll" - "Tag" = "8:" - "Folder" = "8:_AB28A74439A34438B01DF7F78BDEA96D" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_B51D64FBE35292FBE88EB708280FADBC" - { - "SourcePath" = "8:api-ms-win-crt-heap-l1-1-0.dll" - "TargetName" = "8:api-ms-win-crt-heap-l1-1-0.dll" - "Tag" = "8:" - "Folder" = "8:_AB28A74439A34438B01DF7F78BDEA96D" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_C4283E7715377D282FE9DC5B927D095C" - { - "SourcePath" = "8:api-ms-win-crt-math-l1-1-0.dll" - "TargetName" = "8:api-ms-win-crt-math-l1-1-0.dll" - "Tag" = "8:" - "Folder" = "8:_AB28A74439A34438B01DF7F78BDEA96D" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_DEBF4BFE1CE551208D6D9C6A0266D6C1" - { - "SourcePath" = "8:api-ms-win-crt-runtime-l1-1-0.dll" - "TargetName" = "8:api-ms-win-crt-runtime-l1-1-0.dll" - "Tag" = "8:" - "Folder" = "8:_AB28A74439A34438B01DF7F78BDEA96D" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } - } - "FileType" - { - } - "Folder" - { - "{1525181F-901A-416C-8A58-119130FE478E}:_097FC6A8A3374A0E89D4F73DC6752F71" - { - "Name" = "8:#1919" - "AlwaysCreate" = "11:FALSE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:ProgramMenuFolder" - "Folders" - { - } - } - "{1525181F-901A-416C-8A58-119130FE478E}:_44AD6E1B79294DD485788D2F2B70AC24" - { - "Name" = "8:#1916" - "AlwaysCreate" = "11:FALSE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:DesktopFolder" - "Folders" - { - } - } - "{3C67513D-01DD-4637-8A68-80971EB9504F}:_AB28A74439A34438B01DF7F78BDEA96D" - { - "DefaultLocation" = "8:[ProgramFilesFolder][Manufacturer]\\[ProductName]" - "Name" = "8:#1925" - "AlwaysCreate" = "11:FALSE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:TARGETDIR" - "Folders" - { - } - } - } - "LaunchCondition" - { - } - "Locator" - { - } - "MsiBootstrapper" - { - "LangId" = "3:1033" - "RequiresElevation" = "11:FALSE" - } - "Product" - { - "Name" = "8:Microsoft Visual Studio" - "ProductName" = "8:CloudSeedSetup" - "ProductCode" = "8:{8318BBC7-DAAE-4F89-B95E-D018D78A7E51}" - "PackageCode" = "8:{44FDD5CB-48B3-4998-B242-A15FAAAB76A1}" - "UpgradeCode" = "8:{2E493B4C-1C1D-4AA0-B012-BF0445018229}" - "AspNetVersion" = "8:4.0.30319.0" - "RestartWWWService" = "11:FALSE" - "RemovePreviousVersions" = "11:FALSE" - "DetectNewerInstalledVersion" = "11:TRUE" - "InstallAllUsers" = "11:FALSE" - "ProductVersion" = "8:1.0.0" - "Manufacturer" = "8:Default Company Name" - "ARPHELPTELEPHONE" = "8:" - "ARPHELPLINK" = "8:" - "Title" = "8:CloudSeedSetup" - "Subject" = "8:" - "ARPCONTACT" = "8:Default Company Name" - "Keywords" = "8:" - "ARPCOMMENTS" = "8:" - "ARPURLINFOABOUT" = "8:" - "ARPPRODUCTICON" = "8:" - "ARPIconIndex" = "3:0" - "SearchPath" = "8:" - "UseSystemSearchPath" = "11:TRUE" - "TargetPlatform" = "3:0" - "PreBuildEvent" = "8:" - "PostBuildEvent" = "8:" - "RunPostBuildEvent" = "3:0" - } - "Registry" - { - "HKLM" - { - "Keys" - { - "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_23C64C1109EE469BAF146845DEB4B37A" - { - "Name" = "8:Software" - "Condition" = "8:" - "AlwaysCreate" = "11:FALSE" - "DeleteAtUninstall" = "11:FALSE" - "Transitive" = "11:FALSE" - "Keys" - { - "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_B683FDEE5BF54CA5B6A35F0A95B773D3" - { - "Name" = "8:[Manufacturer]" - "Condition" = "8:" - "AlwaysCreate" = "11:FALSE" - "DeleteAtUninstall" = "11:FALSE" - "Transitive" = "11:FALSE" - "Keys" - { - } - "Values" - { - } - } - } - "Values" - { - } - } - } - } - "HKCU" - { - "Keys" - { - "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_3962A8BBB8D84EF49DA5BFE26B89EF4F" - { - "Name" = "8:Software" - "Condition" = "8:" - "AlwaysCreate" = "11:FALSE" - "DeleteAtUninstall" = "11:FALSE" - "Transitive" = "11:FALSE" - "Keys" - { - "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_133D8852521C4AC18EBE9440CAC26DC3" - { - "Name" = "8:[Manufacturer]" - "Condition" = "8:" - "AlwaysCreate" = "11:FALSE" - "DeleteAtUninstall" = "11:FALSE" - "Transitive" = "11:FALSE" - "Keys" - { - } - "Values" - { - } - } - } - "Values" - { - } - } - } - } - "HKCR" - { - "Keys" - { - } - } - "HKU" - { - "Keys" - { - } - } - "HKPU" - { - "Keys" - { - } - } - } - "Sequences" - { - } - "Shortcut" - { - } - "UserInterface" - { - "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_2D46E886DE3C4D3BBA889E1ACA60C5E1" - { - "Name" = "8:#1902" - "Sequence" = "3:1" - "Attributes" = "3:3" - "Dialogs" - { - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_6F7C91665BFB4AA0B9DAAF32ACDE81A1" - { - "Sequence" = "3:100" - "DisplayName" = "8:Finished" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdFinishedDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "UpdateText" - { - "Name" = "8:UpdateText" - "DisplayName" = "8:#1058" - "Description" = "8:#1158" - "Type" = "3:15" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1258" - "DefaultValue" = "8:#1258" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_38B7F85F27594124B1C6BB0653DC608B" - { - "Name" = "8:#1902" - "Sequence" = "3:2" - "Attributes" = "3:3" - "Dialogs" - { - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_490A6517B5854681A2F77CA9B691E8AD" - { - "Sequence" = "3:100" - "DisplayName" = "8:Finished" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdAdminFinishedDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_5792870D93614637A501133DF8CA2A40" - { - "Name" = "8:#1900" - "Sequence" = "3:1" - "Attributes" = "3:1" - "Dialogs" - { - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_1694E5FC6395412AB9E13C1BEDBD5077" - { - "Sequence" = "3:200" - "DisplayName" = "8:Installation Folder" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdFolderDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "InstallAllUsersVisible" - { - "Name" = "8:InstallAllUsersVisible" - "DisplayName" = "8:#1059" - "Description" = "8:#1159" - "Type" = "3:5" - "ContextData" = "8:1;True=1;False=0" - "Attributes" = "3:0" - "Setting" = "3:0" - "Value" = "3:1" - "DefaultValue" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_7D6FF17F60C84613807555ED105243C2" - { - "Sequence" = "3:100" - "DisplayName" = "8:Welcome" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdWelcomeDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "CopyrightWarning" - { - "Name" = "8:CopyrightWarning" - "DisplayName" = "8:#1002" - "Description" = "8:#1102" - "Type" = "3:3" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1202" - "DefaultValue" = "8:#1202" - "UsePlugInResources" = "11:TRUE" - } - "Welcome" - { - "Name" = "8:Welcome" - "DisplayName" = "8:#1003" - "Description" = "8:#1103" - "Type" = "3:3" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1203" - "DefaultValue" = "8:#1203" - "UsePlugInResources" = "11:TRUE" - } - } - } - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_A059861B49B841A7B5192EE2A7D44A0D" - { - "Sequence" = "3:300" - "DisplayName" = "8:Confirm Installation" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdConfirmDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_98CDEB8E6B1F413E8FCAC4D65DEB32F4" - { - "Name" = "8:#1901" - "Sequence" = "3:1" - "Attributes" = "3:2" - "Dialogs" - { - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_05C82178245749B2BED873F951CC1A03" - { - "Sequence" = "3:100" - "DisplayName" = "8:Progress" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdProgressDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "ShowProgress" - { - "Name" = "8:ShowProgress" - "DisplayName" = "8:#1009" - "Description" = "8:#1109" - "Type" = "3:5" - "ContextData" = "8:1;True=1;False=0" - "Attributes" = "3:0" - "Setting" = "3:0" - "Value" = "3:1" - "DefaultValue" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_C55F9F08367C4CF3982311FB2620BB99" - { - "Name" = "8:#1901" - "Sequence" = "3:2" - "Attributes" = "3:2" - "Dialogs" - { - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_388A38AFC6C6443C81966A35EC3E8725" - { - "Sequence" = "3:100" - "DisplayName" = "8:Progress" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdAdminProgressDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "ShowProgress" - { - "Name" = "8:ShowProgress" - "DisplayName" = "8:#1009" - "Description" = "8:#1109" - "Type" = "3:5" - "ContextData" = "8:1;True=1;False=0" - "Attributes" = "3:0" - "Setting" = "3:0" - "Value" = "3:1" - "DefaultValue" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_D75F75292FCC440B8EA277FFAE2606D0" - { - "UseDynamicProperties" = "11:FALSE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdBasicDialogs.wim" - } - "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_DA96E1300FD04863A582EBA17476B384" - { - "UseDynamicProperties" = "11:FALSE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdUserInterface.wim" - } - "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_E81EBFD1EFBF41B9A6D1CE41EC73E987" - { - "Name" = "8:#1900" - "Sequence" = "3:2" - "Attributes" = "3:1" - "Dialogs" - { - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_8C431CB2614C48E0ACB6B6DA164BCEBD" - { - "Sequence" = "3:100" - "DisplayName" = "8:Welcome" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdAdminWelcomeDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "CopyrightWarning" - { - "Name" = "8:CopyrightWarning" - "DisplayName" = "8:#1002" - "Description" = "8:#1102" - "Type" = "3:3" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1202" - "DefaultValue" = "8:#1202" - "UsePlugInResources" = "11:TRUE" - } - "Welcome" - { - "Name" = "8:Welcome" - "DisplayName" = "8:#1003" - "Description" = "8:#1103" - "Type" = "3:3" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1203" - "DefaultValue" = "8:#1203" - "UsePlugInResources" = "11:TRUE" - } - } - } - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_97A3D9797AB6487E871FE220EBC738BD" - { - "Sequence" = "3:300" - "DisplayName" = "8:Confirm Installation" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdAdminConfirmDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_F7451452366A49A5B22B4585CF9C8D59" - { - "Sequence" = "3:200" - "DisplayName" = "8:Installation Folder" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdAdminFolderDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - } - "MergeModule" - { - } - "ProjectOutput" - { - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_9B21B2D6B38C48FB9BF51835FED81A76" - { - "SourcePath" = "8:..\\CloudSeed.Native\\bin\\x64\\Release\\CloudSeed.Native.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_AB28A74439A34438B01DF7F78BDEA96D" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{71460306-FE20-4720-A7D8-3D13B1739B17}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_BF5D0E34D2FB483DB0E5E7BA26638549" - { - "SourcePath" = "8:..\\CloudSeed\\obj\\Release\\CloudSeed.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_AB28A74439A34438B01DF7F78BDEA96D" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{9BB36904-5BF5-4929-86AA-FD9A884505DE}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - } - } -} diff --git a/Documentation/CloudSeed.png b/Documentation/CloudSeed.png deleted file mode 100644 index dbf3422..0000000 Binary files a/Documentation/CloudSeed.png and /dev/null differ diff --git a/Documentation/CloudSeed.xml b/Documentation/CloudSeed.xml deleted file mode 100644 index a463711..0000000 --- a/Documentation/CloudSeed.xml +++ /dev/null @@ -1 +0,0 @@ -7V1bc6M6Ev41eZwpY/DtMZnMzJ6qpDa1edjdRyYmNjXE+GCcZM6vnwbUMroQGyMagefJRhYXf93qbnV/Elful5f374m/Xd/HyyC6Go+W71fu7dV47HiuBx9Zy6+iZeZOi4ZVEi5Zp0PDY/hPwBpHrHUfLoOd0DGN4ygNt2LjU7zZBE+p0PYcR+Ittv4KL39oeHzyI7X1v+EyXbPW6QRa8Yd/BeFqjfdxpovilxcfe+fP7X4FTJI4hn7Zt5f3L0GU4YJ/ufhz3yp+5Y+RBBt2p49PWMyLM179aM/+CkhiH/lpsLwaTyO4yM0yfIWvq+zrbRD5v6D7XbgJ8Ge4eKlHcbld+guReVuHafC49Z+y4zcQNXRapy8RHDm8/2uQpAFKXv0PeRP7A9+D+CVIk+wp2AkTl0mcKcp0yo7fSpJgOIzWJSFgP58pxIpf+oAYfGGgVQDIxFgC8HEdRM/Q9C2M0iDZdYDIdNEhIs6IXaQEyV38Bg0P/g7QYLh0AMt80qWiTAYw0hAcBHBGCSAz/3aNtHmXiMxsHWhel6iwuKGEyvwdjj8abddRtC1jBt8sGXJup87NHRSUXVqvmaqVCMxu628QFmec4XsH2MLHbfj8vN+FcfYrQljurGCYxPvNEqRSQHYE0cj/EUQP8S5Mszu4t08AI1gL9yYDOYTQ9k7qkMbZFfwoXGm7X7MffsRpGr+YEdlC0n5vxC5REtkE442yyBw8sZHMVPW/AMilUeLhfIoGcobwn2HSZJhg+E8jMva4Fz1K+KSHBHJHDYW/+kmUPd9/gucIshkAjBoOD04KE/TgKAWMO0tScLVSwMYmUlBN1SP85SDWBEWiDSvJZPr3Pkv13EQwzfuET3gNXZzPmeFjv+Jl/tps92mllTMXZikS0MipUigcWyYUHj6VwyytUEzEWarLfkiCT2w2TY7FWFZQyuhdTTiA05QggDMgHwoHx8yBgdGKuUgOBs6dS2DosMC2RjMZ9Z8vIYHLDuMkXcereONHXw+tNwdzORKxCN7D9H+l7//PunyeZEcbeK7sp+yM/ODwW/EE2W0/xg+eMt4nuRgOQkz9ZBWwXrmKqygnoONp+CpevVkiT1Gg7hItnhTikI4kBwXTO/Vh5rCsPoVYKfRHdZD3e6i/pKAeELWfb5KbxQxSbpxWkZg8+qdIaAwETcoFTKFJg0rpzTo1Zcyh9FADmTkRNDBXDAoNVFPtFzDJxUGPikqaCnIGUJp2HBxvnYx1tTatS6bpTWnF9LIXFnYhFXpJUddMQb8FwfKH//Sz01Klw/9dJ6iwlFUP/Q4bRYLfyW0Tgd8ZM7/TQ9iY+S7DRjZ1HbOb9xA2FuoK2pZrIAVsHadJINtxLm7amW5T3PJTr5MkDyywwzYON2luwNmVH7KGkp115RkmO+YcvKMnsDR21Qlyuad2/1kRlBy0oviPBx3hYJ2Wc9UV7WQ92izhJsBOgdg1gqghfNI5uONSV6UpBKOq88K2ekJXMORlUEmo/BKFMrKzPhCGfCEXj/FChQYrFzpHLifUr9uTC3KBKkbDqXI7XUSVd6orIvlCbYpIRwuhFpEzIpNR9a3qCkm5UptSUkspUFWChn9n5ThJXBChZ9OekoB2aRL/DL7EUQwz9ttNDBNU9+Y5jCKp6ejk/iVcLnOfq5stxND7OcrVZA39AjjBCGtKKmFxQlpJN7CQY7pqg4x/TZ37ApCX6cqkyKv5rns/zGrXFwC8M+oSeTXtxcr+o/tQLeAODXqJOayrEaNBMo28R17lOxxmv9bx5dLkR5375B6LYMroqbF/91QkngQ/quNFVr0FKpKHGklCRfKM016aMT1kMDS8rNYyjZ4aUtvFe/E0ede2eC+eveW+sgFDmZUtGOp0DaAl5+GhGjZCUI1B7WHB0A4se3PRgi5pMoEoxBrTHml2aUaXNCVN+xgxtEplLzNPUCqmQIJSMWnWQFqaVxhRKrzmMMkxpMo4sZfnJyijprSGWlADaSkRbUYZTygFDC72l3kyuti/PZ7MRI39+8+ToR32p63NHD5PhhZ1NaluJ0+GFhV7eTLCsgTNhA0NUZ1Eq5woMOKD+jFPQbgECNmYqKOtWJwyCqG9/BkBQg0pHTXz/DqLGQQ7ntcAxeM0CDULjOpDqKzT/yh3ZYZVg1I6mVWDm9ecypKp29+bm2XVoDfplBogs1X42DDODKi8U2OCjXwhc7yA6QlL38kJNu2JqPJOjQk2LYqoU25aFVelPRlV36o5waY9KTFCoilvWVFgzV1kpSc1VnotihnVVQrJPvHj04U8lpbYc35CXRnLFRPlWSpEXNd7Q+lTfGCRsdrYV85UusptjvkFsFXk6SolWWXWW569ZtwWSkTAmUBpXCjFR46bNeXwtig+czVg6/OGdpIn4ZtRUiSq5rrASkWBlGghTeRnmk2Z2iJazAeQhZ90qk8s6dA/V4JGpexLCnWg8CVqFt2CXXGltC6tIqmEHUt2xZW3ciVFRY2QWcwx8GgDd1D6wCfgJMi4T+htdIzaIpg0qt1e5r3drAtjIgG2Cv00Dhtma3oIm6YSVvg1Cth6u7cXun4Bttz5UcCmSaO2ChtP7DWGTUPlY16Ceqn4QsqwIiWrsuQk9xdrYI3TaA5urz3oldzSKxs4D652oUl+9wPGEebz485InW1DavMC4jeeHUKQNXtQtRW/OaMhTOqlWQdnO9C8C0il1tn3eiRiSNQZu52vRyKGRZ229/79SHPa926pU3z7XpBEDIm64MbONyQRw6JuDDigVyTR2i3NLtkDekcSrV7iPttHiPhncPCtdBdy/W5O+UIqR7M9t20FPM4TIyjgObg398WtApHLfsRqaG/dT9iXEW2TkDZCnTl/BffCxPYPfPWU1VVAYr3qSxmQGJY/dcBK19JaHgn3wrXexmnKfjxOqIH1VMTakI3rx04BHC8RxMZ76JgBEdXZehB12/mil6vhglrxtvyJbQdRUyDkfrHGRgFSutQQiDZsTiuXcLhvNr+8SbqTAuK5VSf+yC1UncZq9v4yq05zQtYQj1Ts2cBM5tUSbmAGq/HbMLbMwKK5bWVXRi7ITlhUTvuvjhDWWgn8DMOgNadnnI6aWjE47Eox8CmSTIwgXJjBF4X0g08kKGexAYOZQL6C9yMZ4PODB+W11bLwDC34k5lK+MSnMpsWTPeMMZtcszH7B86i2sWcaRGP6ZcUq/DdqGosGpYywPzt5rXXkx57ltrq1SR81byX5FJtObcgJLbc9gBWh4ahABYOkzh7aftBaeEfraFgFGQ9fgM= \ No newline at end of file diff --git a/Documentation/Labels.png b/Documentation/Labels.png deleted file mode 100644 index b67afdf..0000000 Binary files a/Documentation/Labels.png and /dev/null differ diff --git a/Documentation/Labels.psd b/Documentation/Labels.psd deleted file mode 100644 index 627a9b9..0000000 Binary files a/Documentation/Labels.psd and /dev/null differ diff --git a/Documentation/LateSignalChain.png b/Documentation/LateSignalChain.png deleted file mode 100644 index a345411..0000000 Binary files a/Documentation/LateSignalChain.png and /dev/null differ diff --git a/Documentation/Screenshot.png b/Documentation/Screenshot.png deleted file mode 100644 index ceab7af..0000000 Binary files a/Documentation/Screenshot.png and /dev/null differ diff --git a/Documentation/Use draw.io to edit diagram b/Documentation/Use draw.io to edit diagram deleted file mode 100644 index e69de29..0000000 diff --git a/Documentation/allpass1.png b/Documentation/allpass1.png deleted file mode 100644 index eec8ed1..0000000 Binary files a/Documentation/allpass1.png and /dev/null differ diff --git a/Documentation/allpass3.png b/Documentation/allpass3.png deleted file mode 100644 index 1f167a9..0000000 Binary files a/Documentation/allpass3.png and /dev/null differ diff --git a/Documentation/allpass8.png b/Documentation/allpass8.png deleted file mode 100644 index 13ffa19..0000000 Binary files a/Documentation/allpass8.png and /dev/null differ diff --git a/Documentation/multitap.png b/Documentation/multitap.png deleted file mode 100644 index 381fd77..0000000 Binary files a/Documentation/multitap.png and /dev/null differ diff --git a/Documentation/readme.md b/Documentation/readme.md deleted file mode 100644 index 779118c..0000000 --- a/Documentation/readme.md +++ /dev/null @@ -1,173 +0,0 @@ -# Introduction - -![](Labels.png) - - -Cloud Seed is a VST plugin for Windows. It supports both 32 bit and 64 bit hosts. - -**Software Requirements** - -* Windows 7+ -* VST-compatible DAW (32 or 64 bit) -* .NET Framework 4.0 or higher - -# Block Diagram and controls - -![](CloudSeed.png) - -## Input and Predelay - -Input Mix (1) - Controls the amount of mixing between the two input channels. It lets you send a part of the Left input to the Right channel and vice versa. When set to zero, no mixing occurs. When set to 100%, an even mix of the left and right inputs is fed into both channels. - -Predelay (2) - Adds a delay to the signal before it enters the reverberation process. Can add a felling of size to the sound. - -## Main - -Interpolation (5) - A special toggle switch that lets you disable the linear interpolation in the late diffuser when using modulation. - -* When on: smoothly interpolates between two samples. This gives a nice sound, but the simple linear interpolation cuts away some of the high frequencies in the signal, so it also acts as a subtle low-pass filter. -* When off: Not interpolation takes place and the playback he "skips" between samples when it is moduled. This gives a very crisp sound, but results in a white noise component, which can be very pleasant when using very long decay times, giving the signal a more "airy" feeling. - -## Filters - -Low Cut (3) - First order high pass filter to cut away low frequencies before the signal enters the reverberation unit. - -High Cut (4) - First order high pass filter to cut away high frequencies before the signal enters the reverberation unit. - -High Pass Enabled (6) - Enables or disables the Low Cut (High Pass) filter. - -Low Pass Enabled (7) - Enables or disables the High Cut (Low Pass) filter. - -## Mixer - -Dry Out (8) - Controls the amount of dry signal mixed into the output signal. - -Dry Out (9) - Controls the amount of signal from the Pre-delay filter mixed into the output signal. - -Early Out (10) - Controls the amount of signal from the Early Reflections block mixed into the output signal. - -Main Out (11) - Controls the amount of signal from the Late Reverberation block mixed into the output signal. - -## Early Reflections - -The early reflections block consists of two components: a multitap delay, and a series of Schroeder allpass filters. - -### Multitap Delay - -This block contains a 500ms delay line with up to 50 taps. The taps and the gain is set randomly, controlled by the Tap Seed (43) control. - -An example impulse response: - -![](multitap.png) - -Count (12) - Controls the number of taps, from 1-50. - -Length (13) - Controls the impulse response length, in mililseconds. - -Gain (14) - Controls the mix of dry signal to delay tap output. A zero values give no tap signal, and at maximum the output comes only from the taps. - -Decay (15) - Controls the decay of the taps. The later taps have less gain, resulting in an exponentially decaying response at the maximum setting, or an almost flat response at zero. - -### Series Allpass Filters - -For a quick overview of Schoeder Allpass sections, have a look at [Stanford's CCRMA section on the topic](https://ccrma.stanford.edu/~jos/pasp/Schroeder_Allpass_Sections.html). - -Impulse response of a single allpass filter: - -![](allpass1.png) - -Impulse response of 3 allpass filters in series: - -![](allpass3.png) - -Impulse response of 8 single filtes in series: - -![](allpass8.png) - -The allpass section is used to "thicken up" the reflections of the reverb. However, they can and will color the sound, and they also make the the response non exponentially decaying, when you put multiple filters in series. - -All the controls of each schroeder unit are scaled with random values, controlled by the Diffusion Seed (45), so every unit has slightly different parameters. Different seeds will give different results, some will sound very metallic and harsh, while others will sound smooth and pleasant. Experiment to find settings that fit your desired sound. - -Delay (16) - Controls the delay of the allpass units. - -Mod Amt (17) - Control the amount of modulation applied to the delay. When this parameters is set to zero, the output of from the diffusion block becomes brighter, as it will not be applying linear interpolation, since the amount of delay will always be an integer number of samples. - -Feedback (18) - Controls the amount of feedback in each unit (usually referred to as the "gain" or "g" parameter of the Schroeder unit). - -Mod Rate (19) - Controls the rate of modulation applied to the allpass delay. - -Diffusion Enabled (20) - Enable or disable the diffusion block. - -Diffusion Stage (21) - The number of series allpass units (1-8). - -## Late Reverberation - -The late Reverberation block consists of up to 12 parallel delay lines. Each delay line has a feedback control, the feedback signal is processed through a high- and low- shelf filter, as well as a first order low pass filter. Finally, a Schroeder allpass filter block (identical to the one used in the Early Reflections block) is placed in the feedback chain. - -You can also change the order in which the delay and the allpass filter are processed, by using the Late Stage Tap (30) control. - -![](LateSignalChain.png) - -Time (22) - The delay time of the main delay. - -Mod Amt. (23) - The amount of modulation applied to the main delay. - -Feedback (24) - The amound of signal fed back through the delay line. - -Mod Rate (25) - The rate of modulation applied to the main delay. - -Delay (26) - Controls the delay of the allpass units in the feedback signal chain. - -Mod Amt (27) - Control the amount of modulation applied to the delay of the allpass units. When this parameters is set to zero, the output of from the diffusion block becomes brighter, as it will not be applying linear interpolation, since the amount of delay will always be an integer number of samples. - -Feedback (28) - Controls the amount of feedback in each unit (usually referred to as the "gain" or "g" parameter of the Schroeder unit). - -Mod Rate (29) - Controls the rate of modulation applied to the allpass delay. - -Late Stage Tap (30) - Controls the signal path used (see diagram). When set to Post, the sound is processed through the allpass unit first, giving a ticker, lusher sound, but adding more delay to the overall output (as the allpass filters themselves have some delay). - -Line Count (31) - The numbers of parallel delay lines used. Use a low number for a clearer sound, a higher number for a thicker, bigger sound. - -Late Diffusion Enabled (32) - Allows you to bypass the allpass diffuser in the feedback chain completely. - -Late Diffusion Stage (33) - The numbers of series allpass stages in the unit. - -Low Freq (34) - The cutoff frequency for the feedback low-shelf filter. - -Hi Freq (35) - The cutoff frequency for the feedback high-shelf filter. - -Cutoff (36) - The cutoff frequency for the feedback low-pass filter. - -Low Gain (37) - The amount of gain reduction in the low shelf filter. - -Hi Gain (38) - The amount of gain reduction in the high shelf filter. - -Low Shelf Enabled (40) - Enables or Disables the Low Shelf filter. - -High Shelf Enabled (41) - Enables or Disables the High Shelf filter. - -Cutoff Enabled (42) - Enables or Disabled the Low pass filter. - -## Seed Controls - -Cross Seed (39) - This controls how the random values for the left and right channels are mixed. - -When you select a seed, two series of random numbers are computed from that seed, one for the seed value, and another for its bit-wise inverse. - -When the Cross-Seed parameter is set to zero, the left and right channel will use exactly the same random numbers to adjust their controls. But when turning the parameter up, the right channel wil use a mixture of the two random series. Turning it all the way up means the two channels use completely different sets of random numbers. This makes the output sound "wider", as each channel will process the sound differently. - -Tap Seed (43) - Controls the random values used to generate the multi-tap delay impulses, their delays and gains. - -Diffusion Seed (44) - Control the random values used by the Early Reflections allpass filters. Affects the delays, modulation amount and modulation rate. - -Delay Seed (45) - Controls the random values used by the delay line. Controls delay time, modulation amount and modulation rate. - -Post Diffusion Seed (46) - Control the random values used by the Late Reverberation allpass feedback filters. Affects the delays, modulation amount and modulation rate. - -## Preset Selection - -You can load, save and delete presets by click the current preset's name (47). The presets are stored as json files in folder next to the plugin dll. - -## About random seeds - -Cloud Seed relies heavily on being able to experiment with the random seeds, and to choose values that sound good. In order to generate consistent series of random numbers, Cloud Seed uses the SHA256 algorithm to generate random sequences. This ensures that presets will sound the same on every machine and even when the code is compiled using different compilers (otherwise, different implementations of random number generators might significantly affect the sound). \ No newline at end of file diff --git a/Factory Programs/Chorus Delay.json b/Factory Programs/Chorus Delay.json deleted file mode 100644 index c1aa1fd..0000000 --- a/Factory Programs/Chorus Delay.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "InputMix": 0.0, - "PreDelay": 0.070000000298023224, - "HighPass": 0.0, - "LowPass": 0.29000008106231689, - "TapCount": 0.36499997973442078, - "TapLength": 1.0, - "TapGain": 1.0, - "TapDecay": 0.86500012874603271, - "DiffusionEnabled": 1.0, - "DiffusionStages": 0.4285714328289032, - "DiffusionDelay": 0.43500006198883057, - "DiffusionFeedback": 0.725000262260437, - "LineCount": 1.0, - "LineDelay": 0.68499988317489624, - "LineDecay": 0.68000012636184692, - "LateDiffusionEnabled": 1.0, - "LateDiffusionStages": 0.28571429848670959, - "LateDiffusionDelay": 0.54499995708465576, - "LateDiffusionFeedback": 0.65999996662139893, - "PostLowShelfGain": 0.5199999213218689, - "PostLowShelfFrequency": 0.31499990820884705, - "PostHighShelfGain": 0.83500003814697266, - "PostHighShelfFrequency": 0.73000013828277588, - "PostCutoffFrequency": 0.73499983549118042, - "EarlyDiffusionModAmount": 0.50000005960464478, - "EarlyDiffusionModRate": 0.42500010132789612, - "LineModAmount": 0.59000003337860107, - "LineModRate": 0.46999993920326233, - "LateDiffusionModAmount": 0.619999885559082, - "LateDiffusionModRate": 0.42500019073486328, - "TapSeed": 0.0011500000255182385, - "DiffusionSeed": 0.00018899999849963933, - "DelaySeed": 0.00033700000494718552, - "PostDiffusionSeed": 0.00050099997315555811, - "CrossSeed": 0.0, - "DryOut": 0.94499987363815308, - "PredelayOut": 0.0, - "EarlyOut": 0.77999997138977051, - "MainOut": 0.74500006437301636, - "HiPassEnabled": 0.0, - "LowPassEnabled": 0.0, - "LowShelfEnabled": 0.0, - "HighShelfEnabled": 0.0, - "CutoffEnabled": 1.0, - "LateStageTap": 1.0, - "Interpolation": 0.0 -} \ No newline at end of file diff --git a/Factory Programs/Dull Echoes.json b/Factory Programs/Dull Echoes.json deleted file mode 100644 index 294f7da..0000000 --- a/Factory Programs/Dull Echoes.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "InputMix": 0.0, - "PreDelay": 0.070000000298023224, - "HighPass": 0.0, - "LowPass": 0.29000008106231689, - "TapCount": 0.36499997973442078, - "TapLength": 1.0, - "TapGain": 0.83499991893768311, - "TapDecay": 0.86500012874603271, - "DiffusionEnabled": 1.0, - "DiffusionStages": 0.4285714328289032, - "DiffusionDelay": 0.43500006198883057, - "DiffusionFeedback": 0.725000262260437, - "LineCount": 1.0, - "LineDelay": 0.34500002861022949, - "LineDecay": 0.41500008106231689, - "LateDiffusionEnabled": 0.0, - "LateDiffusionStages": 0.57142859697341919, - "LateDiffusionDelay": 0.66499996185302734, - "LateDiffusionFeedback": 0.61000001430511475, - "PostLowShelfGain": 0.5199999213218689, - "PostLowShelfFrequency": 0.31499990820884705, - "PostHighShelfGain": 0.83500003814697266, - "PostHighShelfFrequency": 0.73000013828277588, - "PostCutoffFrequency": 0.73499983549118042, - "EarlyDiffusionModAmount": 0.25499999523162842, - "EarlyDiffusionModRate": 0.3250001072883606, - "LineModAmount": 0.33500000834465027, - "LineModRate": 0.26999998092651367, - "LateDiffusionModAmount": 0.13499975204467773, - "LateDiffusionModRate": 0.27500006556510925, - "TapSeed": 0.0011500000255182385, - "DiffusionSeed": 0.00018899999849963933, - "DelaySeed": 0.0002730000123847276, - "PostDiffusionSeed": 0.00050099997315555811, - "CrossSeed": 0.5, - "DryOut": 1.0, - "PredelayOut": 0.0, - "EarlyOut": 0.77999997138977051, - "MainOut": 0.74500006437301636, - "HiPassEnabled": 0.0, - "LowPassEnabled": 1.0, - "LowShelfEnabled": 0.0, - "HighShelfEnabled": 0.0, - "CutoffEnabled": 1.0, - "LateStageTap": 0.0, - "Interpolation": 1.0 -} \ No newline at end of file diff --git a/Factory Programs/Hyperplane.json b/Factory Programs/Hyperplane.json deleted file mode 100644 index f31a5e0..0000000 --- a/Factory Programs/Hyperplane.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "InputMix": 0.1549999862909317, - "PreDelay": 0.0, - "HighPass": 0.57999998331069946, - "LowPass": 0.9100000262260437, - "TapCount": 0.41499990224838257, - "TapLength": 0.43999996781349182, - "TapGain": 1.0, - "TapDecay": 1.0, - "DiffusionEnabled": 1.0, - "DiffusionStages": 0.4285714328289032, - "DiffusionDelay": 0.27500024437904358, - "DiffusionFeedback": 0.660000205039978, - "LineCount": 0.72727274894714355, - "LineDelay": 0.22500017285346985, - "LineDecay": 0.794999897480011, - "LateDiffusionEnabled": 1.0, - "LateDiffusionStages": 1.0, - "LateDiffusionDelay": 0.22999951243400574, - "LateDiffusionFeedback": 0.59499990940093994, - "PostLowShelfGain": 0.95999979972839355, - "PostLowShelfFrequency": 0.23999994993209839, - "PostHighShelfGain": 0.97500002384185791, - "PostHighShelfFrequency": 0.78499996662139893, - "PostCutoffFrequency": 0.87999981641769409, - "EarlyDiffusionModAmount": 0.13499999046325684, - "EarlyDiffusionModRate": 0.29000008106231689, - "LineModAmount": 0.53999996185302734, - "LineModRate": 0.44999989867210388, - "LateDiffusionModAmount": 0.15999998152256012, - "LateDiffusionModRate": 0.56000012159347534, - "TapSeed": 0.00048499999684281647, - "DiffusionSeed": 0.00020799999765586108, - "DelaySeed": 0.00034699999378062785, - "PostDiffusionSeed": 0.00037200000951997936, - "CrossSeed": 0.800000011920929, - "DryOut": 0.86500018835067749, - "PredelayOut": 0.0, - "EarlyOut": 0.8200000524520874, - "MainOut": 0.79500007629394531, - "HiPassEnabled": 1.0, - "LowPassEnabled": 1.0, - "LowShelfEnabled": 1.0, - "HighShelfEnabled": 1.0, - "CutoffEnabled": 1.0, - "LateStageTap": 1.0, - "Interpolation": 0.0 -} \ No newline at end of file diff --git a/Factory Programs/Medium Space.json b/Factory Programs/Medium Space.json deleted file mode 100644 index 16959b4..0000000 --- a/Factory Programs/Medium Space.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "InputMix": 0.0, - "PreDelay": 0.0, - "HighPass": 0.0, - "LowPass": 0.63999992609024048, - "TapCount": 0.51999980211257935, - "TapLength": 0.26499992609024048, - "TapGain": 0.69499999284744263, - "TapDecay": 1.0, - "DiffusionEnabled": 1.0, - "DiffusionStages": 0.8571428656578064, - "DiffusionDelay": 0.5700000524520874, - "DiffusionFeedback": 0.76000010967254639, - "LineCount": 0.18181818723678589, - "LineDelay": 0.585000216960907, - "LineDecay": 0.29499980807304382, - "LateDiffusionEnabled": 1.0, - "LateDiffusionStages": 0.57142859697341919, - "LateDiffusionDelay": 0.69499951601028442, - "LateDiffusionFeedback": 0.71499985456466675, - "PostLowShelfGain": 0.87999987602233887, - "PostLowShelfFrequency": 0.19499993324279785, - "PostHighShelfGain": 0.72000008821487427, - "PostHighShelfFrequency": 0.520000159740448, - "PostCutoffFrequency": 0.79999983310699463, - "EarlyDiffusionModAmount": 0.13499999046325684, - "EarlyDiffusionModRate": 0.26000010967254639, - "LineModAmount": 0.054999928921461105, - "LineModRate": 0.21499986946582794, - "LateDiffusionModAmount": 0.17999963462352753, - "LateDiffusionModRate": 0.38000011444091797, - "TapSeed": 0.0003009999927598983, - "DiffusionSeed": 0.00018899999849963933, - "DelaySeed": 0.0001610000035725534, - "PostDiffusionSeed": 0.00050099997315555811, - "CrossSeed": 0.7850000262260437, - "DryOut": 1.0, - "PredelayOut": 0.0, - "EarlyOut": 0.699999988079071, - "MainOut": 0.84499984979629517, - "HiPassEnabled": 0.0, - "LowPassEnabled": 1.0, - "LowShelfEnabled": 1.0, - "HighShelfEnabled": 0.0, - "CutoffEnabled": 1.0, - "LateStageTap": 1.0, - "Interpolation": 1.0 -} \ No newline at end of file diff --git a/Factory Programs/Noise in the Hallway.json b/Factory Programs/Noise in the Hallway.json deleted file mode 100644 index a0e13ec..0000000 --- a/Factory Programs/Noise in the Hallway.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "InputMix": 0.0, - "PreDelay": 0.0, - "HighPass": 0.0, - "LowPass": 0.60999995470047, - "TapCount": 1.0, - "TapLength": 1.0, - "TapGain": 0.0, - "TapDecay": 0.830000102519989, - "DiffusionEnabled": 1.0, - "DiffusionStages": 0.28571429848670959, - "DiffusionDelay": 0.35499998927116394, - "DiffusionFeedback": 0.62500005960464478, - "LineCount": 0.63636362552642822, - "LineDelay": 0.36000004410743713, - "LineDecay": 0.51000005006790161, - "LateDiffusionEnabled": 1.0, - "LateDiffusionStages": 0.0, - "LateDiffusionDelay": 0.62999987602233887, - "LateDiffusionFeedback": 0.49000000953674316, - "PostLowShelfGain": 0.0, - "PostLowShelfFrequency": 0.0, - "PostHighShelfGain": 0.77499985694885254, - "PostHighShelfFrequency": 0.58000004291534424, - "PostCutoffFrequency": 0.0, - "EarlyDiffusionModAmount": 0.0, - "EarlyDiffusionModRate": 0.0, - "LineModAmount": 0.0, - "LineModRate": 0.0, - "LateDiffusionModAmount": 0.0, - "LateDiffusionModRate": 0.0, - "TapSeed": 0.0001140000022132881, - "DiffusionSeed": 0.000155999994603917, - "DelaySeed": 0.00018099999579135329, - "PostDiffusionSeed": 8.4999999671708792E-05, - "CrossSeed": 1.0, - "DryOut": 0.0, - "PredelayOut": 0.0, - "EarlyOut": 0.64500010013580322, - "MainOut": 0.63000005483627319, - "HiPassEnabled": 0.0, - "LowPassEnabled": 1.0, - "LowShelfEnabled": 0.0, - "HighShelfEnabled": 1.0, - "CutoffEnabled": 0.0, - "LateStageTap": 0.0, - "Interpolation": 1.0 -} \ No newline at end of file diff --git a/Factory Programs/Rubi-Ka Fields.json b/Factory Programs/Rubi-Ka Fields.json deleted file mode 100644 index a14a81f..0000000 --- a/Factory Programs/Rubi-Ka Fields.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "InputMix": 0.32499998807907104, - "PreDelay": 0.0, - "HighPass": 0.0, - "LowPass": 0.8899998664855957, - "TapCount": 0.51999980211257935, - "TapLength": 1.0, - "TapGain": 0.90000003576278687, - "TapDecay": 1.0, - "DiffusionEnabled": 1.0, - "DiffusionStages": 0.8571428656578064, - "DiffusionDelay": 0.5700000524520874, - "DiffusionFeedback": 0.76000010967254639, - "LineCount": 0.27272728085517883, - "LineDelay": 0.68500018119812012, - "LineDecay": 0.82999974489212036, - "LateDiffusionEnabled": 1.0, - "LateDiffusionStages": 0.71428573131561279, - "LateDiffusionDelay": 0.69499951601028442, - "LateDiffusionFeedback": 0.71499985456466675, - "PostLowShelfGain": 0.87999987602233887, - "PostLowShelfFrequency": 0.19499993324279785, - "PostHighShelfGain": 0.72000008821487427, - "PostHighShelfFrequency": 0.520000159740448, - "PostCutoffFrequency": 0.79999983310699463, - "EarlyDiffusionModAmount": 0.13499999046325684, - "EarlyDiffusionModRate": 0.26000010967254639, - "LineModAmount": 0.054999928921461105, - "LineModRate": 0.21499986946582794, - "LateDiffusionModAmount": 0.32499963045120239, - "LateDiffusionModRate": 0.35500010848045349, - "TapSeed": 0.0003009999927598983, - "DiffusionSeed": 0.00018899999849963933, - "DelaySeed": 0.0001610000035725534, - "PostDiffusionSeed": 0.00050099997315555811, - "CrossSeed": 0.43000003695487976, - "DryOut": 0.88499999046325684, - "PredelayOut": 0.0, - "EarlyOut": 0.0, - "MainOut": 0.90999990701675415, - "HiPassEnabled": 0.0, - "LowPassEnabled": 0.0, - "LowShelfEnabled": 0.0, - "HighShelfEnabled": 0.0, - "CutoffEnabled": 1.0, - "LateStageTap": 1.0, - "Interpolation": 0.0 -} \ No newline at end of file diff --git a/Factory Programs/Small Room.json b/Factory Programs/Small Room.json deleted file mode 100644 index 9022aa2..0000000 --- a/Factory Programs/Small Room.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "InputMix": 0.0, - "PreDelay": 0.0, - "HighPass": 0.0, - "LowPass": 0.755000114440918, - "TapCount": 0.41499990224838257, - "TapLength": 0.43999996781349182, - "TapGain": 0.87999999523162842, - "TapDecay": 1.0, - "DiffusionEnabled": 1.0, - "DiffusionStages": 0.71428573131561279, - "DiffusionDelay": 0.335000216960907, - "DiffusionFeedback": 0.660000205039978, - "LineCount": 0.18181818723678589, - "LineDelay": 0.51000016927719116, - "LineDecay": 0.29999998211860657, - "LateDiffusionEnabled": 1.0, - "LateDiffusionStages": 0.4285714328289032, - "LateDiffusionDelay": 0.22999951243400574, - "LateDiffusionFeedback": 0.59499990940093994, - "PostLowShelfGain": 0.87999987602233887, - "PostLowShelfFrequency": 0.19499993324279785, - "PostHighShelfGain": 0.875, - "PostHighShelfFrequency": 0.59000009298324585, - "PostCutoffFrequency": 0.79999983310699463, - "EarlyDiffusionModAmount": 0.13499999046325684, - "EarlyDiffusionModRate": 0.29000008106231689, - "LineModAmount": 0.18999995291233063, - "LineModRate": 0.22999987006187439, - "LateDiffusionModAmount": 0.1249999925494194, - "LateDiffusionModRate": 0.28500008583068848, - "TapSeed": 0.00048499999684281647, - "DiffusionSeed": 0.00020799999765586108, - "DelaySeed": 0.00033499998971819878, - "PostDiffusionSeed": 0.00037200000951997936, - "CrossSeed": 0.42500001192092896, - "DryOut": 1.0, - "PredelayOut": 0.0, - "EarlyOut": 0.8599998950958252, - "MainOut": 0.90500003099441528, - "HiPassEnabled": 0.0, - "LowPassEnabled": 1.0, - "LowShelfEnabled": 0.0, - "HighShelfEnabled": 0.0, - "CutoffEnabled": 0.0, - "LateStageTap": 1.0, - "Interpolation": 1.0 -} \ No newline at end of file diff --git a/Factory Programs/The 90s Are Back.json b/Factory Programs/The 90s Are Back.json deleted file mode 100644 index a903bf0..0000000 --- a/Factory Programs/The 90s Are Back.json +++ /dev/null @@ -1,48 +0,0 @@ -{ -InputMix: 0, -PreDelay: 0, -HighPass: 0, -LowPass: 0.6750001311302185, -TapCount: 0, -TapLength: 1, -TapGain: 0, -TapDecay: 0.8650001287460327, -DiffusionEnabled: 1, -DiffusionStages: 0.5714285969734192, -DiffusionDelay: 0.7100000381469727, -DiffusionFeedback: 0.5450003147125244, -LineCount: 0.7272727489471436, -LineDelay: 0.6849998831748962, -LineDecay: 0.6300000548362732, -LateDiffusionEnabled: 0, -LateDiffusionStages: 0.2857142984867096, -LateDiffusionDelay: 0.5449999570846558, -LateDiffusionFeedback: 0.6599999666213989, -PostLowShelfGain: 0.5199999213218689, -PostLowShelfFrequency: 0.31499990820884705, -PostHighShelfGain: 0.8349999189376831, -PostHighShelfFrequency: 0.705000102519989, -PostCutoffFrequency: 0.7349998354911804, -EarlyDiffusionModAmount: 0.824999988079071, -EarlyDiffusionModRate: 0.4050004780292511, -LineModAmount: 0.6300000548362732, -LineModRate: 0.3199999928474426, -LateDiffusionModAmount: 0.619999885559082, -LateDiffusionModRate: 0.30000022053718567, -TapSeed: 0.0011500000255182385, -DiffusionSeed: 0.00018899999849963933, -DelaySeed: 0.0003370000049471855, -PostDiffusionSeed: 0.0005009999731555581, -CrossSeed: 0.7950000166893005, -DryOut: 0.9449997544288635, -PredelayOut: 0, -EarlyOut: 0.7250000238418579, -MainOut: 0.6050001382827759, -HiPassEnabled: 0, -LowPassEnabled: 1, -LowShelfEnabled: 0, -HighShelfEnabled: 1, -CutoffEnabled: 0, -LateStageTap: 1, -Interpolation: 1 -} \ No newline at end of file diff --git a/Factory Programs/Through the Looking Glass.json b/Factory Programs/Through the Looking Glass.json deleted file mode 100644 index 88dd3e2..0000000 --- a/Factory Programs/Through the Looking Glass.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "InputMix": 0.0, - "PreDelay": 0.0, - "HighPass": 0.0, - "LowPass": 0.74000012874603271, - "TapCount": 1.0, - "TapLength": 1.0, - "TapGain": 1.0, - "TapDecay": 0.71000003814697266, - "DiffusionEnabled": 1.0, - "DiffusionStages": 1.0, - "DiffusionDelay": 0.65999996662139893, - "DiffusionFeedback": 0.76000010967254639, - "LineCount": 1.0, - "LineDelay": 0.9100002646446228, - "LineDecay": 0.80999958515167236, - "LateDiffusionEnabled": 1.0, - "LateDiffusionStages": 1.0, - "LateDiffusionDelay": 0.71499955654144287, - "LateDiffusionFeedback": 0.71999979019165039, - "PostLowShelfGain": 0.87999987602233887, - "PostLowShelfFrequency": 0.19499993324279785, - "PostHighShelfGain": 0.72000008821487427, - "PostHighShelfFrequency": 0.520000159740448, - "PostCutoffFrequency": 0.7150002121925354, - "EarlyDiffusionModAmount": 0.41999998688697815, - "EarlyDiffusionModRate": 0.30500012636184692, - "LineModAmount": 0.4649999737739563, - "LineModRate": 0.3199998140335083, - "LateDiffusionModAmount": 0.40999993681907654, - "LateDiffusionModRate": 0.31500011682510376, - "TapSeed": 0.0003009999927598983, - "DiffusionSeed": 0.00018899999849963933, - "DelaySeed": 0.0001610000035725534, - "PostDiffusionSeed": 0.00050099997315555811, - "CrossSeed": 1.0, - "DryOut": 0.0, - "PredelayOut": 0.0, - "EarlyOut": 0.0, - "MainOut": 0.95499974489212036, - "HiPassEnabled": 0.0, - "LowPassEnabled": 1.0, - "LowShelfEnabled": 0.0, - "HighShelfEnabled": 0.0, - "CutoffEnabled": 1.0, - "LateStageTap": 1.0, - "Interpolation": 1.0 -} \ No newline at end of file diff --git a/How to build.txt b/How to build.txt deleted file mode 100644 index f079dc3..0000000 --- a/How to build.txt +++ /dev/null @@ -1,6 +0,0 @@ -Use the Visual Studio Command Prompt to run build.bat. -It will create a new zip file inside the Builds/ directory containing -.NET assemblies compiled in release mode, as well as VST wrappers for each of them. - -To find the Visual Studio Command Prompt, look in the start menu: -"Developer Command Prompt for VS2012" \ No newline at end of file diff --git a/InnoSetup.iss b/InnoSetup.iss deleted file mode 100644 index 6b6e9e4..0000000 --- a/InnoSetup.iss +++ /dev/null @@ -1,57 +0,0 @@ -; Script generated by the Inno Script Studio Wizard. -; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! - -#define MyAppName "Cloud Seed" -#define MyAppVersion "1.0.1" -#define MyAppPublisher "Valdemar Erlingsson" -#define MyAppURL "https://github.com/ValdemarOrn/CloudSeed" - -[Setup] -; NOTE: The value of AppId uniquely identifies this application. -; Do not use the same AppId value in installers for other applications. -; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) -AppId={{E0EC7045-27E4-489C-AA0D-25727920E96F} -AppName={#MyAppName} -AppVersion={#MyAppVersion} -;AppVerName={#MyAppName} {#MyAppVersion} -AppPublisher={#MyAppPublisher} -AppPublisherURL={#MyAppURL} -AppSupportURL={#MyAppURL} -AppUpdatesURL={#MyAppURL} -DefaultDirName=C:\Program Files\Steinberg\VstPlugins\CloudSeed -DefaultGroupName={#MyAppName} -OutputBaseFilename=CloudSeed-v{#MyAppVersion}-Setup -OutputDir=Builds -Compression=lzma -SolidCompression=yes -ArchitecturesAllowed=x64 -ArchitecturesInstallIn64BitMode=x64 - -[Languages] -Name: "english"; MessagesFile: "compiler:Default.isl" - -[Tasks] -Name: netinstall; Description: "Run .NET Framework 4.5 Installation"; GroupDescription: "Additional Requirements"; -Name: msvcinstall; Description: "Install Microsoft Visual C Runtime 2017"; GroupDescription: "Additional Requirements"; - -[Files] -Source: "C:\Src\_Tree\Audio\CloudSeed\Builds\Current\*"; DestDir: "{app}"; \ - Flags: ignoreversion recursesubdirs createallsubdirs; \ - -Source: "C:\Src\_Tree\Audio\CloudSeed\Binaries\VC_redist.x64.exe"; DestDir: "{tmp}"; \ - Flags: deleteafterinstall; Tasks: msvcinstall - -Source: "C:\Src\_Tree\Audio\CloudSeed\Binaries\NDP462-KB3151802-Web.exe"; DestDir: "{tmp}"; \ - Flags: deleteafterinstall; Tasks: netinstall - -[Run] -Filename: {tmp}\VC_redist.x64.exe; \ - Parameters: ""; \ - StatusMsg: "Installing MSVC 2017 Redistributables..."; \ - Tasks: msvcinstall - - -Filename: {tmp}\NDP462-KB3151802-Web.exe; \ - Parameters: ""; \ - StatusMsg: "Installing .NET 4.5 Runtime..."; \ - Tasks: netinstall \ No newline at end of file diff --git a/Installation Instructions/Dependencies.png b/Installation Instructions/Dependencies.png deleted file mode 100644 index 4aa8fe7..0000000 Binary files a/Installation Instructions/Dependencies.png and /dev/null differ diff --git a/Installation Instructions/Properties.png b/Installation Instructions/Properties.png deleted file mode 100644 index c056fca..0000000 Binary files a/Installation Instructions/Properties.png and /dev/null differ diff --git a/Installation Instructions/Readme.md b/Installation Instructions/Readme.md deleted file mode 100644 index 2c6f629..0000000 --- a/Installation Instructions/Readme.md +++ /dev/null @@ -1,46 +0,0 @@ -# Installation Instructions - -Download the latest version from the **[Releases page](https://github.com/ValdemarOrn/CloudSeed/releases)**. - -Cloud Seed can be installed in two different ways: - -* By running the automated installer -* By extracting an installer-less zip file containing the plugin files. - -## Using the Automated Installer - -As of version 1.0, Cloud Seed is provided with a full installer which includes all required libraries, including the Microsoft Visual C Runtime and .NET Framework 4.5. -I strongly recommend using the installer to ensure proper installation of the plugin. If you are unsure whether you already have the required dependencies installed, you can safely run the additional steps, they will check your system and only install whatever is necessary. - -![](Dependencies.png) - -Download the latest installer (for example, "CloudSeed-v1.0-Setup.exe") from the releases page and follow the steps as requested. - -## Installer-less Zip file - -Manually installing plugins under Windows 10 has become very difficult due to increased security checks in Windows. The following describes the steps required. I recommend this only for advanced users, the automated installer should be preferred. - -1. Open the CloudSeed Release page in your browser and Download the latest zip file (i.e. **CloudSeed-v1.0-2018-04-25-NoInstall.zip**) -2. Once downloaded, find the file on your hard drive. - * Right click and select Properties: - * ![](Properties.png) - * If visible, click the “Unblock” button and then OK. This is to allow Windows to execute the code inside the archive once extracted. Previous versions of Windows did not have this extra security step, and not all users are affected. - * ![](Unblock.png) - * This should be enough to allow Windows 10 to run the plugin, however, in extreme cases, you may need to repeat this procedure on every file after you extract the zip archive. -3. Extract the contents of the zip file into your VstPlugins folder (i.e. **C:\Program Files\Steinberg\VstPlugins**) -4. Start your VST host software. If you receive any errors while the plugin is loading, you may need to install the relevant “Visual C Runtime” package from Microsoft. - * [Microsoft Web Page (scroll to bottom of page)](https://www.visualstudio.com/downloads/) - * [x64 Direct Link](https://aka.ms/vs/15/release/VC_redist.x64.exe) - * [x86 Direct Link](https://aka.ms/vs/15/release/VC_redist.x86.exe) -5. User programs are stored in a sub-directory where you installed the plugin - * i.e. C:\Program Files\Steinberg\VstPlugins\CloudSeed\CloudSeed\Programs\User Programs\ - * If you want to back up your programs, copy these files to a backup location. - -# Known issues - -1. On some machines the editor can interfere with the real-time audio process. You may notice audio dropouts or glitches when moving knobs and spinners on the UI. However, no audio glitches should occur when the editor is not being actively used, and the plugin should run stable in the background. -2. If you've previously had CloudSeed installed (prior to v1.0), the 32bit version may interfere with the 64bit version and vise versa. This problem can persist even after one version has been deleted (notably Reaper has issues with this). In order to fully recover I recommend the following steps: - * Delete/Uninstall CloudSeed from your system. - * Start your host and re-scan your plugins folder. This should remove any trace of CloudSeed - * Download the latest version (v1.0 or later) and install it - * Start your host, it should detect the plugin without problems. diff --git a/Installation Instructions/Unblock.png b/Installation Instructions/Unblock.png deleted file mode 100644 index e459ac4..0000000 Binary files a/Installation Instructions/Unblock.png and /dev/null differ diff --git a/interface.png b/interface.png new file mode 100644 index 0000000..7321bc7 Binary files /dev/null and b/interface.png differ diff --git a/packages/OxyPlot.Core.2014.1.546/AUTHORS b/packages/OxyPlot.Core.2014.1.546/AUTHORS deleted file mode 100644 index d718557..0000000 --- a/packages/OxyPlot.Core.2014.1.546/AUTHORS +++ /dev/null @@ -1,13 +0,0 @@ -# This is the official list of OxyPlot authors for copyright purposes. -# This file is distinct from the CONTRIBUTORS file. -# See the latter for an explanation. - -# Names should be added to this file as -# Name or Organization -# The email address is not required for organizations. - -# Please keep the list sorted. -# Please notify the first person on the list to be added here. - -Oystein Bjorke -LECO� Corporation \ No newline at end of file diff --git a/packages/OxyPlot.Core.2014.1.546/CONTRIBUTORS b/packages/OxyPlot.Core.2014.1.546/CONTRIBUTORS deleted file mode 100644 index 560eeb4..0000000 --- a/packages/OxyPlot.Core.2014.1.546/CONTRIBUTORS +++ /dev/null @@ -1,49 +0,0 @@ -# This is the official list of people who have contributed -# to the OxyPlot repository. -# The AUTHORS file lists the copyright holders; this file -# lists people. - -# People submitting code should be listed in this file (by email address). - -# Names should be added to this file like so: -# Name - -# Please keep the list sorted. - -Auriou -Bartłomiej Szypelow -benjaminrupp -Benoit Blanchon -br -brantheman -Brannon King -darrelbrown -David Wong -DJDAS -Don Syme -efontana2 -elliatab -eric -Garrett -Gimly -jaykul -jezza323 -Johan20D -julien.bataille -Just Slon -kenny_evoleap -LECO® Corporation -levi_botelho -lsowen -Memphisch -methdotnet -moes_leco -moljac -mroth -Oleg Tarasov -Oystein Bjorke -Stefan Rado -thepretender -tephyrnex -tibel -Xavier \ No newline at end of file diff --git a/packages/OxyPlot.Core.2014.1.546/LICENSE b/packages/OxyPlot.Core.2014.1.546/LICENSE deleted file mode 100644 index 1b9d60f..0000000 --- a/packages/OxyPlot.Core.2014.1.546/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 OxyPlot contributors - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/packages/OxyPlot.Core.2014.1.546/OxyPlot.Core.2014.1.546.nupkg b/packages/OxyPlot.Core.2014.1.546/OxyPlot.Core.2014.1.546.nupkg deleted file mode 100644 index c94856e..0000000 Binary files a/packages/OxyPlot.Core.2014.1.546/OxyPlot.Core.2014.1.546.nupkg and /dev/null differ diff --git a/packages/OxyPlot.Core.2014.1.546/README.md b/packages/OxyPlot.Core.2014.1.546/README.md deleted file mode 100644 index f365550..0000000 --- a/packages/OxyPlot.Core.2014.1.546/README.md +++ /dev/null @@ -1,40 +0,0 @@ -OxyPlot is a cross-platform plotting library for .NET - -- [Web page](http://oxyplot.org) -- [Documentation](http://oxyplot.org/documentation) -- [Announcements](http://oxyplot.org/announcements) / [atom](http://oxyplot.org/atom.xml) -- [Discussion forum](http://discussion.oxyplot.org) -- [Source repository](http://github.com/oxyplot/oxyplot) -- [Issue tracker](http://github.com/oxyplot/oxyplot/issues) -- [NuGet packages](http://www.nuget.org/packages?q=oxyplot) -- [Stack Overflow](http://stackoverflow.com/questions/tagged/oxyplot) -- [Twitter](https://twitter.com/hashtag/oxyplot) -- [Gitter](https://gitter.im/oxyplot/oxyplot) - -[![Build status](https://ci.appveyor.com/api/projects/status/mlaqnruo6ic3oe60)](https://ci.appveyor.com/project/objorke/oxyplot) - -[![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/oxyplot/oxyplot?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) - -![Plot](http://oxyplot.org/public/images/normal-distributions.png) - -#### Branches - -`master` - the release branch (stable channel) -`develop` - the main branch with the latest development changes (pre-release channel) - -See '[A successful git branching model](http://nvie.com/posts/a-successful-git-branching-model/)' for more information about the branching model in use. - -#### Getting started - -1. Use the NuGet package manager to add a reference to OxyPlot -2. Add a `PlotView` to your user interface -3. Create a `PlotModel` in your code -4. Bind the `PlotModel` to the `Model` property of your `PlotView` - -#### Examples - -You can find examples in the `/Source/Examples` folder in the code repository. - -#### Contribute - -See [the documentation](http://oxyplot.org/documentation/contributions) for information about how to contribute! diff --git a/packages/OxyPlot.Core.2014.1.546/lib/portable-net4+sl4+wp71+win8/OxyPlot.dll b/packages/OxyPlot.Core.2014.1.546/lib/portable-net4+sl4+wp71+win8/OxyPlot.dll deleted file mode 100644 index fc65549..0000000 Binary files a/packages/OxyPlot.Core.2014.1.546/lib/portable-net4+sl4+wp71+win8/OxyPlot.dll and /dev/null differ diff --git a/packages/OxyPlot.Core.2014.1.546/lib/portable-net4+sl4+wp71+win8/OxyPlot.xml b/packages/OxyPlot.Core.2014.1.546/lib/portable-net4+sl4+wp71+win8/OxyPlot.xml deleted file mode 100644 index 4ba265e..0000000 --- a/packages/OxyPlot.Core.2014.1.546/lib/portable-net4+sl4+wp71+win8/OxyPlot.xml +++ /dev/null @@ -1,19789 +0,0 @@ - - - - OxyPlot - - - - - Represents an annotation that shows a point. - - - - - Provides an abstract base class for shape annotations, such as , , and . - - - - - Provides an abstract base class for annotations that contains text. - - - - - Provides an abstract base class for annotations. - - - - - Provides an abstract base class for elements of a . - - - - - Provides an abstract base class for elements that handle mouse events. - - - - - Provides an abstract base class for elements that support selection. - - - - - Provides an abstract base class for graphics elements. - - - - - Gets the parent model of the element. - - - The that is the parent of the element. - - - - - The selection - - - - - Initializes a new instance of the class. - - - - - Determines whether any part of this element is selected. - - true if this element is selected; otherwise, false. - - - - Gets the indices of the selected items in this element. - - Enumerator of item indices. - - - - Clears the selection. - - - - - Unselects all items in this element. - - - - - Determines whether the specified item is selected. - - The index of the item. - true if the item is selected; otherwise, false. - - - - Selects all items in this element. - - - - - Selects the specified item. - - The index. - - - - Unselects the specified item. - - The index. - - - - Gets the selection color if the item is selected, or the specified color if it is not. - - The unselected color of the element. - The index of the item to check (use -1 for all items). - A color. - - - - Gets the selection fill color it the element is selected, or the specified fill color if it is not. - - The unselected fill color of the element. - The index of the item to check (use -1 for all items). - A fill color. - - - - Ensures that the selection field is not null. - - - - - Raises the event. - - The instance containing the event data. - - - - Occurs when the selected items is changed. - - - - - Gets or sets a value indicating whether this element can be selected. The default is true. - - - - - Gets or sets the selection mode of items in this element. The default is SelectionMode.All. - - The selection mode. - This is only used by the select/unselect functionality, not by the rendering. - - - - Gets the actual selection color. - - The actual selection color. - - - - Tests if the plot element is hit by the specified point. - - The hit test arguments. - - A hit test result. - - - - - Raises the event. - - The instance containing the event data. - - - - Raises the event. - - The instance containing the event data. - - - - Raises the event. - - The instance containing the event data. - - - - Raises the event. - - The instance containing the event data. - - - - Raises the event. - - The instance containing the event data. - - - - Raises the event. - - The instance containing the event data. - - - - Raises the event. - - The instance containing the event data. - - - - When overridden in a derived class, tests if the plot element is hit by the specified point. - - The hit test arguments. - - The result of the hit test. - - - - - Occurs when a key is pressed down when the plot view is in focus. - - - - - Occurs when a mouse button is pressed down on the model. - - - - - Occurs when the mouse is moved on the plot element (only occurs after MouseDown). - - - - - Occurs when the mouse button is released on the plot element. - - - - - Occurs when a touch gesture starts. - - - - - Occurs when a touch gesture is changed. - - - - - Occurs when the touch gesture is completed. - - - - - Specifies functionality for an element of a plot. - - - - - Returns a hash code for this element. - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - This method creates the hash code by reflecting the value of all public properties. - - - - Initializes a new instance of the class. - - - - - Returns a hash code for this element. - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - This method creates the hash code by reflecting the value of all public properties. - - - - Formats the specified item and arguments with the specified format string. - - The format string. - The item. - The values. - The formatted string. - - - - Gets or sets the font. The default is null (use . - - The font. - If the value is null, the DefaultFont of the parent PlotModel will be used. - - - - Gets or sets the size of the font. The default is double.NaN (use ). - - The size of the font. - If the value is NaN, the DefaultFontSize of the parent PlotModel will be used. - - - - Gets or sets the font weight. The default is FontWeights.Normal. - - The font weight. - - - - Gets the parent . - - - - - Gets or sets an arbitrary object value that can be used to store custom information about this plot element. The default is null. - - The intended value. - This property is analogous to Tag properties in other Microsoft programming models. Tag is intended to provide a pre-existing property location where you can store some basic custom information about any PlotElement without requiring you to subclass an element. - - - - Gets or sets the color of the text. The default is OxyColors.Automatic (use ). - - The color of the text. - If the value is OxyColors.Automatic, the TextColor of the parent PlotModel will be used. - - - - Gets or sets the tool tip. The default is null. - - - The tool tip string. - - - - - Gets the actual font. - - - - - Gets the actual size of the font. - - The actual size of the font. - - - - Gets the actual font weight. - - - - - Gets the actual color of the text. - - The actual color of the text. - - - - Gets the actual culture. - - The culture is defined in the parent PlotModel. - - - - Initializes a new instance of the class. - - - - - Ensures that the annotation axes are set. - - - - - Renders the annotation on the specified context. - - The render context. - The model. - - - - Transforms the specified coordinates to a screen point. - - The x coordinate. - The y coordinate. - A screen point. - - - - Transforms the specified data point to a screen point. - - The point. - A screen point. - - - - Transforms the specified screen position to a data point. - - The position. - A data point - - - - Tests if the plot element is hit by the specified point. - - The hit test arguments. - - A hit test result. - - - - - Gets the clipping rectangle. - - The clipping rectangle. - - - - Gets or sets the rendering layer of the annotation. The default value is . - - - - - Gets the X axis. - - The X axis. - - - - Gets or sets the X axis key. - - The X axis key. - - - - Gets the Y axis. - - The Y axis. - - - - Gets or sets the Y axis key. - - The Y axis key. - - - - Initializes a new instance of the class. - - - - - Gets the actual position of the text. - - A function that returns the default position. This is used if is undefined. - The actual position of the text, in screen space. - - - - Gets or sets the annotation text. - - The text. - - - - Gets or sets the position of the text. - - If the value is DataPoint.Undefined, the default position of the text will be used. - - - - Gets or sets the horizontal alignment of the text. - - - - - Gets or sets the vertical alignment of the text. - - - - - Gets or sets the rotation of the text. - - The text rotation in degrees. - - - - Initializes a new instance of the class. - - - - - Gets or sets the fill color. - - The fill. - - - - Gets or sets the stroke color. - - - - - Gets or sets the stroke thickness. - - - - - The position transformed to screen coordinates. - - - - - Initializes a new instance of the class. - - - - - Renders the polygon annotation. - - The render context. - The plot model. - - - - When overridden in a derived class, tests if the plot element is hit by the specified point. - - The hit test arguments. - - The result of the hit test. - - - - - Gets or sets the x-coordinate of the center. - - - - - Gets or sets the y-coordinate of the center. - - - - - Gets or sets the size of the rendered point. - - - - - Gets or sets the distance between the rendered point and the text. - - - - - Gets or sets the shape of the rendered point. - - The shape. - - - - Gets or sets a custom polygon outline for the point marker. Set to to use this property. - - A polyline. The default is null. - - - - Provides a implemented by a delegate. - - The type of the event arguments. - - - - Specifies functionality to execute a command on a view. - - The type of the event arguments. - - - - Specifies functionality to execute a command on a view. - - - - - Executes the command on the specified plot. - - The view. - The controller. - The instance containing the event data. - - - - Executes the command on the specified plot. - - The view. - The controller. - The instance containing the event data. - - - - The handler - - - - - Initializes a new instance of the class. - - The handler. - - - - Executes the command on the specified plot. - - The plot view. - The plot controller. - The instance containing the event data. - - - - Executes the command on the specified plot. - - The plot view. - The plot controller. - The instance containing the event data. - - - - Provides an abstract base class for controller manipulators. - - The type of the event arguments. - - - - Initializes a new instance of the class. - - The view. - - - - Occurs when a manipulation is complete. - - The instance containing the event data. - - - - Occurs when the input device changes position during a manipulation. - - The instance containing the event data. - - - - Gets the cursor for the manipulation. - - The cursor. - - - - Occurs when an input device begins a manipulation on the plot. - - The instance containing the event data. - - - - Gets the plot view where the event was raised. - - The plot view. - - - - Provides a controller command for the implemented by a delegate. - - The type of the event arguments. - - - - Initializes a new instance of the class. - - The handler. - - - - Represents a collection of objects. - - The type of the elements. - - - - The parent . - - - - - The internal list. - - - - - Initializes a new instance of the class. - - The parent . - - - - Returns an enumerator that iterates through the collection. - - A that can be used to iterate through the collection. - - - - Returns an enumerator that iterates through a collection. - - An object that can be used to iterate through the collection. - - - - Adds an item to the collection. - - The object to add to the collection. - The element cannot be added, it already belongs to a PlotModel. - - - - Removes all items from the collection. - - - - - Determines whether the contains a specific value. - - The object to locate in the . - true if is found in the ; otherwise, false. - - - - Copies to. - - The array. - Index of the array. - - - - Removes the first occurrence of a specific object from the . - - The object to remove from the . - true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . - - - - Determines the index of a specific item in the collection. - - The object to locate in the collection. - The index of if found in the list; otherwise, -1. - - - - Inserts an item to the collection at the specified index. - - The zero-based index at which should be inserted. - The object to insert into the collection. - The element cannot be inserted, it already belongs to a PlotModel. - - - - Removes the collection item at the specified index. - - The zero-based index of the item to remove. - - - - Gets the number of elements contained in the collection. - - The number of elements contained in the collection. - - - - Gets a value indicating whether the collection is read-only. - - true if the collection is read-only; otherwise, false. - - - - Gets or sets the element at the specified index. - - The index. - The element. - - - - Provides an abstract base class for graphics models. - - - Provides an abstract base class for graphics models. - - - - - The mouse hit tolerance. - - - - - The default selection color. - - - - - The synchronization root object. - - - - - Initializes a new instance of the class. - - - - - Returns the elements that are hit at the specified position. - - The hit test arguments. - - A sequence of hit results. - - - - - Gets all elements of the model, sorted by rendering priority. - - An enumerator of the elements. - - - - The element that receives mouse move events. - - - - - The element that receives touch delta events. - - - - - Handles the mouse down event. - - The sender. - The instance containing the event data. - - - - Handles the mouse move event. - - The sender. - The instance containing the event data. - - - - Handles the mouse up event. - - The sender. - The instance containing the event data. - - - - Handles the mouse enter event. - - The sender. - The instance containing the event data. - - - - Handles the mouse leave event. - - The sender. - The instance containing the event data. - - - - Handles the touch started event. - - The sender. - A instance containing the event data. - - - - Handles the touch delta event. - - The sender. - A instance containing the event data. - - - - Handles the touch completed event. - - The sender. - A instance containing the event data. - - - - Handles key down events. - - The sender. - The instance containing the event data. - - - - Raises the event. - - The sender. - The instance containing the event data. - - - - Raises the event. - - The sender. - The instance containing the event data. - - - - Raises the event. - - The sender. - The instance containing the event data. - - - - Raises the event. - - The sender. - The instance containing the event data. - - - - Raises the event. - - The sender. - The instance containing the event data. - - - - Raises the event. - - The sender. - The instance containing the event data. - - - - Raises the event. - - The sender. - The instance containing the event data. - - - - Raises the event. - - The sender. - The instance containing the event data. - - - - Raises the event. - - The sender. - The instance containing the event data. - - - - Gets an object that can be used to synchronize access to the . - - A synchronization object. - This property can be used when modifying the on a separate thread (not the thread updating or rendering the model). - - - - Gets or sets the color of the selection. - - The color of the selection. - - - - Occurs when a key is pressed down when the plot view is focused. - - - - - Occurs when a mouse button is pressed down on the model. - - - - - Occurs when the mouse is moved on the plot element (only occurs after MouseDown). - - - - - Occurs when the mouse button is released on the plot element. - - - - - Occurs when the mouse cursor enters the plot area. - - - - - Occurs when the mouse cursor leaves the plot area. - - - - - Occurs when a touch gesture is started. - - - - - Occurs when a touch gesture is changed. - - - - - Occurs when a touch gesture is completed. - - - - - Specifies functionality to interact with a graphics view. - - - - - Handles mouse down events. - - The plot view. - The instance containing the event data. - true if the event was handled. - - - - Handles mouse move events. - - The plot view. - The instance containing the event data. - true if the event was handled. - - - - Handles mouse up events. - - The plot view. - The instance containing the event data. - true if the event was handled. - - - - Handles mouse enter events. - - The plot view. - The instance containing the event data. - true if the event was handled. - - - - Handles mouse leave events. - - The plot view. - The instance containing the event data. - true if the event was handled. - - - - Handles mouse wheel events. - - The plot view. - The instance containing the event data. - true if the event was handled. - - - - Handles touch started events. - - The plot view. - The instance containing the event data. - true if the event was handled. - - - - Handles touch delta events. - - The plot view. - The instance containing the event data. - true if the event was handled. - - - - Handles touch completed events. - - The plot view. - The instance containing the event data. - true if the event was handled. - - - - Handles key down events. - - The plot view. - The instance containing the event data. - true if the event was handled. - - - - Handles the specified gesture. - - The plot view. - The gesture. - The instance containing the event data. - true if the event was handled. - - - - Adds the specified mouse manipulator and invokes the method with the specified mouse event arguments. - - The plot view. - The manipulator to add. - The instance containing the event data. - - - - Adds the specified mouse hover manipulator and invokes the method with the specified mouse event arguments. - - The view. - The manipulator. - The instance containing the event data. - - - - Adds the specified touch manipulator and invokes the method with the specified mouse event arguments. - - The view. - The manipulator. - The instance containing the event data. - - - - Binds the specified command to the specified mouse down gesture. Removes old bindings to the gesture. - - The mouse down gesture. - The command. If null, the binding will be removed. - - - - Binds the specified command to the specified mouse enter gesture. Removes old bindings to the gesture. - - The mouse enter gesture. - The command. If null, the binding will be removed. - - - - Binds the specified command to the specified mouse wheel gesture. Removes old bindings to the gesture. - - The mouse wheel gesture. - The command. If null, the binding will be removed. - - - - Binds the specified command to the specified touch gesture. Removes old bindings to the gesture. - - The touch gesture. - The command. If null, the binding will be removed. - - - - Binds the specified command to the specified key gesture. Removes old bindings to the gesture. - - The key gesture. - The command. If null, the binding will be removed. - - - - Unbinds the specified gesture. - - The gesture to unbind. - - - - Unbinds the specified command from all gestures. - - The command to unbind. - - - - Unbinds all commands. - - - - - Specifies common functionality for the views. - - - - - Sets the cursor type. - - The cursor type. - - - - Hides the zoom rectangle. - - - - - Shows the zoom rectangle. - - The rectangle. - - - - Gets the actual model in the view. - - - The actual . - - - - - Gets the actual controller. - - - The actual . - - - - - Gets the coordinates of the client area of the view. - - - The client area rectangle. - - - - - Specifies functionality to interact with a plot view. - - - - - Specifies functionality for the plot model. - - - - - Updates the model. - - if set to true , all data collections will be updated. - - - - Renders the plot with the specified rendering context. - - The rendering context. - The width. - The height. - - - - Attaches this model to the specified plot view. - - The plot view. - Only one plot view can be attached to the plot model. - The plot model contains data (e.g. axis scaling) that is only relevant to the current plot view. - - - - Gets the color of the background of the plot. - - The color. - - - - Defines functionality to provide a . - - - - - Gets the that represents the element. - - A . - - - - Represents a mouse enter gesture. - - The input gesture can be bound to a command in a . - - - - Provides an abstract base class for input device gestures. - - The input gesture can be bound to a command in a . - - - - Indicates whether the current object is equal to another object of the same type. - - An object to compare with this object. - true if the current object is equal to the parameter; otherwise, false. - - - - Initializes a new instance of the class. - - The modifiers. - - - - Indicates whether the current object is equal to another object of the same type. - - An object to compare with this object. - true if the current object is equal to the parameter; otherwise, false. - - - - Gets the modifier keys. - - - - - Provides an abstract base class for classes that contain event data for input events. - - - - - Gets or sets a value indicating whether the event was handled. - - - - - Gets or sets the modifier keys. - - - - - Gets a value indicating whether the alt key was pressed when the event was raised. - - - - - Gets a value indicating whether the control key was pressed when the event was raised. - - - - - Gets a value indicating whether the shift key was pressed when the event was raised. - - - - - Provides data for key events. - - - - - Gets or sets the key. - - - - - Provides data for the mouse down events. - - - - - Provides data for the mouse events. - - - - - Gets or sets the position of the mouse cursor. - - - - - Gets or sets the mouse button that has changed. - - - - - Gets or sets the number of times the button was clicked. - - The number of times the mouse button was clicked. - - - - Gets or sets the hit test result. - - - - - Provides data for mouse wheel events. - - - - - Gets or sets the change. - - - - - Provides data for touch events. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The current touches. - The previous touches. - - - - Gets or sets the position of the touch. - - The position. - - - - Gets or sets the relative change in scale. - - The scale change. - - - - Gets or sets the change in x and y direction. - - The translation. - - - - Represents an binding by an input gesture and a command binding. - - - - - Initializes a new instance of the class by a gesture. - - The gesture. - The command. - - - - Initializes a new instance of the class by a key gesture. - - The key. - The modifiers. - The command. - - - - Initializes a new instance of the class by a mouse gesture. - - The mouse button. - The modifiers. - The command. - - - - Gets the gesture. - - - - - Gets the command. - - - - - Provides an with a default set of plot bindings. - - - - - Provides functionality to handle input events. - - - - - A synchronization object that is used when the actual model in the current view is null. - - - - - Initializes a new instance of the class. - - - - - Handles the specified gesture. - - The plot view. - The gesture. - The instance containing the event data. - true if the event was handled. - - - - Handles mouse down events. - - The plot view. - The instance containing the event data. - true if the event was handled. - - - - Handles mouse enter events. - - The plot view. - The instance containing the event data. - true if the event was handled. - - - - Handles mouse leave events. - - The plot view. - The instance containing the event data. - true if the event was handled. - - - - Handles mouse move events. - - The plot view. - The instance containing the event data. - true if the event was handled. - - - - Handles mouse up events. - - The plot view. - The instance containing the event data. - true if the event was handled. - - - - Handles mouse wheel events. - - The plot view. - The instance containing the event data. - true if the event was handled. - - - - Handles touch started events. - - The plot view. - The instance containing the event data. - true if the event was handled. - - - - Handles touch delta events. - - The plot view. - The instance containing the event data. - true if the event was handled. - - - - Handles touch completed events. - - The plot view. - The instance containing the event data. - true if the event was handled. - - - - Handles key down events. - - The plot view. - The instance containing the event data. - true if the event was handled. - - - - Adds the specified mouse manipulator and invokes the method with the specified mouse down event arguments. - - The plot view. - The manipulator to add. - The instance containing the event data. - - - - Adds the specified mouse hover manipulator and invokes the method with the specified mouse event arguments. - - The plot view. - The manipulator. - The instance containing the event data. - - - - Adds the specified mouse hover manipulator and invokes the method with the specified mouse event arguments. - - The plot view. - The manipulator. - The instance containing the event data. - - - - Binds the specified command to the specified mouse gesture. Removes old bindings to the gesture. - - The gesture. - The command. If null, the binding will be removed. - - - - Binds the specified command to the specified mouse enter gesture. Removes old bindings to the gesture. - - The gesture. - The command. If null, the binding will be removed. - - - - Binds the specified command to the specified mouse wheel gesture. Removes old bindings to the gesture. - - The gesture. - The command. If null, the binding will be removed. - - - - Binds the specified command to the specified touch gesture. Removes old bindings to the gesture. - - The gesture. - The command. If null, the binding will be removed. - - - - Binds the specified command to the specified key gesture. Removes old bindings to the gesture. - - The gesture. - The command. If null, the binding will be removed. - - - - Unbinds the specified gesture. - - The gesture to unbind. - - - - Unbinds the specified command from all gestures. - - The command to unbind. - - - - Unbinds all commands. - - - - - Binds the specified command to the specified gesture. Removes old bindings to the gesture. - - The gesture. - The command. If null, the binding will be removed. - This method was created to avoid calling a virtual method in the constructor. - - - - Gets the command for the specified . - - The input gesture. - A command. - - - - Handles a command triggered by an input gesture. - - The command. - The plot view. - The instance containing the event data. - true if the command was handled. - - - - Gets the synchronization object for the specified view. - - The view. - An object that can be used to synchronize access to the actual model of the view. - This object is used to ensure that events are not handled when the model is being updated. - - - - Gets the input bindings. - - This collection is used to specify the customized input gestures (both key, mouse and touch). - - - - Gets the manipulators that are created by mouse down events. These manipulators are removed when the mouse button is released. - - - - - Gets the manipulators that are created by mouse enter events. These manipulators are removed when the mouse leaves the control. - - - - - Gets the manipulators that are created by touch events. These manipulators are removed when the touch gesture is completed. - - - - - Initializes a new instance of the class. - - - - - Provides an abstract base class for manipulators that handles mouse events. - - - - - Provides an abstract base class for plot manipulators. - - The type of the event arguments. - - - - Initializes a new instance of the class. - - The plot view. - - - - Transforms a point from screen coordinates to data coordinates. - - The x coordinate. - The y coordinate. - A data point. - - - - Assigns the axes to this manipulator by the specified position. - - The position. - - - - Gets the plot view where the event was raised. - - The plot view. - - - - Gets or sets the X axis. - - The X axis. - - - - Gets or sets the Y axis. - - The Y axis. - - - - Initializes a new instance of the class. - - The plot view. - - - - Occurs when an input device begins a manipulation on the plot. - - The instance containing the event data. - - - - Gets or sets the first position of the manipulation. - - - - - Provides a manipulator for panning and scaling by touch events. - - - - - The previous position - - - - - Initializes a new instance of the class. - - The plot view. - - - - Occurs when a touch delta event is handled. - - The instance containing the event data. - - - - Occurs when an input device begins a manipulation on the plot. - - The instance containing the event data. - - - - Defines common commands for the plots. - - - - - Initializes static members of the class. - - - - - Handles the reset events. - - The view to reset. - - - - Zooms the view by the specified factor at the position specified in the . - - The view. - The instance containing the event data. - The zoom factor. - - - - Zooms the view by the mouse wheel delta in the specified . - - The view. - The instance containing the event data. - The zoom speed factor. Default value is 1. - - - - Zooms the view by the key in the specified factor. - - The view. - The zoom factor (positive zoom in, negative zoom out). - - - - Pans the view by the key in the specified vector. - - The view. - The horizontal delta (percentage of plot area width). - The vertical delta (percentage of plot area height). - - - - Gets the reset axes command. - - - - - Gets the reset axes command (for mouse events). - - - - - Gets the copy text report command. - - - - - Gets the copy code command. - - - - - Gets the pan/zoom touch command. - - - - - Gets the pan command. - - - - - Gets the zoom rectangle command. - - - - - Gets the zoom by mouse wheel command. - - - - - Gets the fine-control zoom by mouse wheel command. - - - - - Gets the tracker command. - - - - - Gets the snap tracker command. - - - - - Gets the points only tracker command. - - - - - Gets the mouse hover tracker. - - - - - Gets the mouse hover snap tracker. - - - - - Gets the mouse hover points only tracker. - - - - - Gets the pan left command. - - - - - Gets the pan right command. - - - - - Gets the pan up command. - - - - - Gets the pan down command. - - - - - Gets the fine control pan left command. - - - - - Gets the fine control pan right command. - - - - - Gets the fine control pan up command. - - - - - Gets the fine control pan down command. - - - - - Gets the zoom in command. - - - - - Gets the zoom out command. - - - - - Gets the zoom in command. - - - - - Gets the zoom out command. - - - - - Gets the fine control zoom in command. - - - - - Gets the fine control zoom out command. - - - - - Provides extension methods for the . - - - - - Binds the specified key to the specified command. - - The plot controller. - The key. - A plot controller command that takes key event arguments. - - - - Binds the specified modifier+key to the specified command. - - The plot controller. - The key. - The key modifiers. - A plot controller command that takes key event arguments. - - - - Binds the specified mouse button to the specified command. - - The plot controller. - The mouse button. - A plot controller command that takes mouse event arguments. - - - - Binds the specified modifier+mouse button gesture to the specified command. - - The plot controller. - The mouse button. - The modifiers. - A plot controller command that takes mouse event arguments. - - - - Binds the specified modifiers+mouse button+click count gesture to the specified command. - - The plot controller. - The mouse button. - The modifiers. - The click count. - A plot controller command that takes mouse event arguments. - - - - Binds the touch down event to the specified command. - - The plot controller. - A plot controller command that takes touch event arguments. - - - - Binds the mouse enter event to the specified command. - - The plot controller. - A plot controller command that takes mouse event arguments. - - - - Binds the mouse wheel event to the specified command. - - The plot controller. - A plot controller command that takes mouse wheel event arguments. - - - - Binds the modifier+mouse wheel event to the specified command. - - The plot controller. - The modifier key(s). - A plot controller command that takes mouse wheel event arguments. - - - - Unbinds the specified mouse down gesture. - - The controller. - The mouse button. - The modifier keys. - The click count. - - - - Unbinds the specified key down gesture. - - The controller. - The key. - The modifier keys. - - - - Unbinds the mouse enter gesture. - - The controller. - - - - Unbinds the touch down gesture. - - The controller. - - - - Unbinds the mouse wheel gesture. - - The controller. - - - - Represents arguments for the hit test. - - - - - Initializes a new instance of the class. - - The point. - The tolerance. - - - - Gets the point to hit test. - - - - - Gets the hit test tolerance. - - - - - The OxyPlot solution provides plotting functionality for Windows store apps, WPF, Windows forms, Silverlight and Xamarin based applications. - - - - - The OxyPlot namespace contains the platform independent classes of the library. - - - - - Represents absolute or relative lengths in data or screen space. - - - - - The unit type - - - - - The value - - - - - Initializes a new instance of the struct. - - The value. - The unit. - - - - Gets the value. - - The value. - - - - Gets the type of the unit. - - The type of the unit. - - - - Defines the kind of value that a object is holding. - - - - - The value is in data space (transformed by x/y axis) - - - - - The value is in screen units - - - - - The value is relative to the plot viewport (0-1) - - - - - The value is relative to the plot area (0-1) - - - - - Specifies whether code should be generated for the property. - - - - - Initializes a new instance of the class. - - The generate code. - - - - Gets or sets a value indicating whether GenerateCode. - - - - - Provides functionality to generate C# code for the specified . - - This is useful for creating examples or unit tests. Press Ctrl+Alt+C in a plot to copy code to the clipboard. - Usage: - - var cg = new CodeGenerator(myPlotModel); - Clipboard.SetText(cg.ToCode()); - - - - - The string builder. - - - - - The variables. - - - - - The indent string. - - - - - The current number of indents. - - - - - Initializes a new instance of the class. - - The model. - - - - Formats the code. - - The format. - The values. - The format code. - - - - Formats a constructor. - - The type. - The format of the constructor arguments. - The argument values. - The format constructor. - - - - Returns the c# code for this model. - - C# code. - - - - Adds the specified object to the generated code. - - The object. - The variable name. - - - - Adds the children. - - The name. - Name of the collection. - The children. - - - - Adds the items. - - The name. - The list. - - - - Creates and sets the elements of an array. - - The name. - The array. - - - - Appends the line. - - The format string. - The args. - - - - Determines if the two specified lists are equal. - - The first list. - The second list. - True if all items are equal. - - - - Get the first attribute of the specified type. - - The type. - The property info. - The attribute, or null if no attribute was found. - - - - Gets a new variable name of the specified type. - - The type. - The variable name. - - - - Makes a valid variable name of a string. Invalid characters will simply be removed. - - The title. - A valid variable name. - - - - The set properties. - - The instance. - The variable name. - The default values. - - - - Sets the property. - - The property name. - The value. - - - - Gets or sets the number of indents. - - - - - Provides extension methods for code generation. - - - - - Converts the value of this instance to c# code. - - The instance. - C# code. - - - - Converts the value of this instance to c# code. - - The value. - C# code. - - - - Converts the value of this instance to c# code. - - The instance. - C# code. - - - - Converts the value of this instance to c# code. - - The instance. - C# code. - - - - Converts the value of this instance to c# code. - - The instance. - C# code. - - - - Converts the value of this instance to c# code. - - The instance. - C# code. - - - - Provides functionality to generate C# code of an object. - - - - - Returns C# code that generates this instance. - - The C# code. - - - - Specifies functionality to provide a . - - - - - Gets the that represents the element. - - A . - - - - Represents a point in the data space. - - s are transformed to s. - - - - The undefined. - - - - - The x-coordinate. - - - - - The y-coordinate. - - - - - Initializes a new instance of the struct. - - The x. - The y. - - - - Returns C# code that generates this instance. - - The to code. - - - - Returns a that represents this instance. - - A that represents this instance. - - - - Determines whether this point is defined. - - true if this point is defined; otherwise, false. - - - - Gets or sets the X. - - The X. - - - - Gets or sets the Y. - - The Y. - - - - Defines the marker type. - - - - - Do not render markers. - - - - - Render markers as circles. - - - - - Render markers as squares. - - - - - Render markers as diamonds. - - - - - Render markers as triangles. - - - - - Render markers as crosses (note: this marker type requires the stroke color to be set). - - This marker type requires the stroke color to be set. - - - - Renders markers as plus signs (note: this marker type requires the stroke color to be set). - - This marker type requires the stroke color to be set. - - - - Renders markers as stars (note: this marker type requires the stroke color to be set). - - This marker type requires the stroke color to be set. - - - - Render markers by a custom shape (defined by outline). - - - - - Provides extension methods for . - - These are pure methods. They could also be placed in the type with a . - - - - Changes the intensity. - - The color. - The factor. - A color with the new intensity. - - - - Changes the intensity. - - The color. - The factor. - A color with the new intensity. - - - - Calculates the complementary color. - - The color to convert. - The complementary color. - - - - Converts from a to HSV values (double) - - The color. - Array of [Hue,Saturation,Value] in the range [0,1] - - - - Converts to an unsigned integer. - - The color. - The color as an unsigned integer. - - - - Converts an to a string containing the ARGB byte values. - - The color. - A string that contains byte values of the alpha, red, green and blue components separated by comma. - - - - Returns C# code that generates this instance. - - The color. - The code. - - - - Gets the name of the color if it is defined in the class. - - The color. - The color name or null if the color is not found. - - - - Represents a palette of colors. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The colors. - - - - Initializes a new instance of the class. - - The colors. - - - - Interpolates the specified colors to a palette of the specified size. - - The size of the palette. - The colors. - A palette. - - - - Creates a palette with reversed color order. - - The reversed . - - - - Gets or sets the colors. - - The colors. - - - - Provides predefined palettes. - - - - - Initializes static members of the class. - - - - - Creates a black/white/red palette with the specified number of colors. - - The number of colors to create for the palette. - A palette. - - - - Creates a blue/white/red palette with the specified number of colors. - - The number of colors to create for the palette. - A palette. - - - - Creates a 'cool' palette with the specified number of colors. - - The number of colors to create for the palette. - A palette. - - - - Creates a gray-scale palette with the specified number of colors. - - The number of colors to create for the palette. - A palette. - - - - Creates a 'hot' palette with the specified number of colors. - - The number of colors to create for the palette. - A palette. - - - - Creates a palette from the hue component of the HSV color model. - - The number of colors. - The palette. - This palette is particularly appropriate for displaying periodic functions. - - - - Creates a hue-based palette from magenta to red. - - The number of colors. - The palette. - This palette contains only distinct colors and with the cool colors (blues) first. - - - - Creates a 'jet' palette with the specified number of colors. - - The number of colors to create for the palette. - A palette. - - - - Creates a rainbow palette with the specified number of colors. - - The number of colors to create for the palette. - A palette. - - - - Gets the blue-white-red palette with 31 colors. - - - - - Gets the hot palette with 64 colors. - - - - - Gets the hue palette with 64 colors. - - - - - Represents a vector defined in screen space. - - - - - The x-coordinate. - - - - - The y-coordinate. - - - - - Initializes a new instance of the structure. - - The x-coordinate. - The y-coordinate. - - - - Implements the operator *. - - The vector. - The multiplication factor. - The result of the operator. - - - - Normalizes this vector. - - - - - Returns a that represents this instance. - - A that represents this instance. - - - - Gets the length. - - - - - Gets the length squared. - - - - - Gets the x-coordinate. - - The x-coordinate. - - - - Gets the y-coordinate. - - The y-coordinate. - - - - Provides algorithms for polygons and lines of . - - - - - Finds the nearest point on the specified polyline. - - The point. - The points. - The nearest point. - - - - Finds the point on line. - - The point. - The first point on the line. - The second point on the line. - The nearest point on the line. - See Bourke. - - - - Finds the nearest point on line. - - The point. - The start point on the line. - The end point on the line. - The relative position of the nearest point. - See Bourke. - - - - Determines whether the specified point is in the specified polygon. - - The point. - The polygon points. - true if the point is in the polygon; otherwise, false. - - - - Resamples the points with the specified point distance limit. - - All points. - The minimum squared distance. - List of resampled points. - - - - Gets the centroid of the specified polygon. - - The points. - The centroid. - - - - Provides functionality to interpolate a list of points by a canonical spline. - - CanonicalSplineHelper.cs (c) 2009 by Charles Petzold (WPF and Silverlight) - See also blog post. - - - - Creates a spline of data points. - - The points. - The tension. - The tensions. - True if the spline is closed. - The tolerance. - A list of data points. - - - - Creates a spline of screen points. - - The points. - The tension. - The tensions. - True if the spline is closed. - The tolerance. - A list of screen points. - - - - The segment. - - The points. - The pt 0. - The pt 1. - The pt 2. - The pt 3. - The t 1. - The t 2. - The tolerance. - - - - Defines standard font weight values. - - - - - Specifies a bold font weight. - - - - - Specifies a normal font weight. - - - - - Describes the thickness of a frame around a rectangle. Four values describe the left, top, right, and bottom sides of the rectangle, respectively. - - - - - The bottom. - - - - - The left. - - - - - The right. - - - - - The top. - - - - - Initializes a new instance of the struct. - - The thickness. - - - - Initializes a new instance of the struct. - - The left. - The top. - The right. - The bottom. - - - - Returns C# code that generates this instance. - - The to code. - - - - Returns a that represents this instance. - - A that represents this instance. - - - - Gets or sets the bottom thickness. - - The bottom thickness. - - - - Gets the height. - - - - - Gets or sets the left thickness. - - The left thickness. - - - - Gets or sets the right thickness. - - The right thickness. - - - - Gets or sets the top thickness. - - The top thickness. - - - - Gets the width. - - - - - Represents a point defined in screen space. - - The rendering methods transforms s to s. - - - - The undefined point. - - - - - The x-coordinate. - - - - - The y-coordinate. - - - - - Initializes a new instance of the struct. - - The x-coordinate. - The y-coordinate. - - - - Determines whether the specified point is undefined. - - The point. - true if the specified point is undefined; otherwise, false . - - - - Translates a by a . - - The point. - The vector. - The translated point. - - - - Subtracts a from a - and returns the result as a . - - The point on which to perform the subtraction. - The point to subtract from p1. - A structure that represents the difference between p1 and p2. - - - - Subtracts a from a - and returns the result as a . - - The point on which to perform the subtraction. - The vector to subtract from p1. - A that represents point translated by the negative vector. - - - - Gets the distance to the specified point. - - The point. - The distance. - - - - Gets the squared distance to the specified point. - - The point. - The squared distance. - - - - Returns a that represents this instance. - - A that represents this instance. - - - - Gets the x-coordinate. - - The x-coordinate. - - - - Gets the y-coordinate. - - The y-coordinate. - - - - Describes the width, height, and point origin of a rectangle. - - - - - The height of the rectangle. - - - - - The x-coordinate location of the left side of the rectangle. - - - - - The y-coordinate location of the top side of the rectangle. - - - - - The width of the rectangle. - - - - - Initializes a new instance of the structure that has the specified x-coordinate, y-coordinate, width, and height. - - The x-coordinate location of the left side of the rectangle. - The y-coordinate location of the top side of the rectangle. - The width of the rectangle. - The height of the rectangle. - width;The width should not be negative. - or - height;The height should not be negative. - - - - Initializes a new instance of the struct that is exactly large enough to contain the two specified points. - - The first point that the new rectangle must contain. - The second point that the new rectangle must contain. - - - - Initializes a new instance of the struct by location and size. - - The location. - The size. - - - - Creates a rectangle from the specified corner coordinates. - - The x0. - The y0. - The x1. - The y1. - A rectangle. - - - - Determines whether the specified point is inside the rectangle. - - The x coordinate. - The y coordinate. - true if the rectangle contains the specified point; otherwise, false. - - - - Determines whether the specified point is inside the rectangle. - - The point. - true if the rectangle contains the specified point; otherwise, false. - - - - Returns a that represents this instance. - - A that represents this instance. - - - - Returns a that represents this instance. - - The format. - The format provider. - - A that represents this instance. - - - - - Gets or sets the y-axis value of the bottom of the rectangle. - - The bottom. - - - - Gets or sets the height of the rectangle. - - The height. - - - - Gets or sets the x-axis value of the left side of the rectangle. - - The left. - - - - Gets or sets the x-axis value of the right side of the rectangle. - - The right. - - - - Gets or sets the y-axis position of the top of the rectangle. - - The top. - - - - Gets or sets the width of the rectangle. - - The width. - - - - Gets the center point of the rectangle. - - The center. - - - - Describes the size of an object. - - - - - Empty Size. - - - - - Initializes a new instance of the struct. - - The width. - The height. - - - - Returns a that represents this instance. - - A that represents this instance. - - - - Returns a that represents this instance. - - The format. - The format provider. - - A that represents this instance. - - - - - Gets or sets the height. - - The height. - - - - Gets or sets the width. - - The width. - - - - Provides functionality to decimate lines. - - - - - Decimates lines by reducing all points that have the same integer x value to a maximum of 4 points (first, min, max, last). - - The input points. - The decimated points. - - - - Adds vertical points to the list. - - The result. - The x coordinate. - The first y. - The last y. - The minimum y. - The maximum y. - - - - Provides polygon clipping by the Sutherland-Hodgman algorithm. - - - - - The Sutherland-Hodgman polygon clipping algorithm. - - The bounds. - The polygon points. - The clipped points. - See link. - - - - Clips to one axis. - - The bounds. - The edge. - The points of the polygon. - The clipped points. - - - - Determines whether the specified point is inside the edge/bounds. - - The bounds. - The edge to test. - The point. - true if the specified point is inside; otherwise, false. - - - - Fines the edge interception. - - The bounds. - The edge. - The first point. - The second point. - The interception. - - - - The rectangle edge. - - - - - The left. - - - - - The right. - - - - - The top. - - - - - The bottom. - - - - - Provides a line clipping algorithm. - - See http://en.wikipedia.org/wiki/Cohen%E2%80%93Sutherland - - - - The bottom code. - - - - - The inside code. - - - - - The left code. - - - - - The right code. - - - - - The top code. - - - - - The x maximum. - - - - - The x minimum. - - - - - The y maximum. - - - - - The y minimum. - - - - - Initializes a new instance of the class. - - The clipping rectangle. - - - - Cohen–Sutherland clipping algorithm clips a line from - P0 = (x0, y0) to P1 = (x1, y1) against a rectangle with - diagonal from (xmin, ymin) to (xmax, ymax). - - The point P0. - The point P1. - true if the line is inside - - - - Determines whether the specified point is inside the rectangle. - - The point. - true if the specified point is inside; otherwise, false. - - - - Defines how to join line segments. - - - - - Line joins use regular angular vertices. - - - - - Line joins use rounded vertices. - - - - - Line joins use beveled vertices. - - - - - Defines horizontal alignment. - - - - - Aligned to the left. - - - - - Aligned in the center. - - - - - Aligned to the right. - - - - - Specifies vertical alignment. - - - - - Aligned at the top. - - - - - Aligned in the middle. - - - - - Aligned at the bottom. - - - - - Describes a color in terms of alpha, red, green, and blue channels. - - - - - Parse a string. - - The string in the format "#FFFFFF00" or "255,200,180,50". - The parsed color. - Invalid format. - - - - Calculates the difference between two s - - The first color. - The second color. - L2-norm in ARGB space - - - - Convert an to a . - - The unsigned integer color value. - The . - - - - Creates a OxyColor from the specified HSV array. - - The HSV value array. - A OxyColor. - - - - Converts from HSV to - - The hue value [0,1] - The saturation value [0,1] - The intensity value [0,1] - The . - See Wikipedia. - - - - Calculate the difference in hue between two s. - - The first color. - The second color. - The hue difference. - - - - Creates a color defined by an alpha value and another color. - - Alpha value. - The original color. - A color. - - - - Creates a color from the specified ARGB values. - - The alpha value. - The red value. - The green value. - The blue value. - A color. - - - - Creates a new structure from the specified RGB values. - - The red value. - The green value. - The blue value. - A structure with the specified values and an alpha channel value of 1. - - - - Interpolates the specified colors. - - The color1. - The color2. - The t. - The interpolated color - - - - Determines whether the specified is equal to this instance. - - The to compare with this instance. - true if the specified is equal to this instance; otherwise, false . - - - - Determines whether the specified is equal to this instance. - - The to compare with this instance. - true if the specified is equal to this instance; otherwise, false . - - - - Returns a hash code for this instance. - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - - - - Returns a that represents this instance. - - A that represents this instance. - - - - Determines whether this color is invisible. - - True if the alpha value is 0. - - - - Determines whether this color is visible. - - True if the alpha value is greater than 0. - - - - Determines whether this color is undefined. - - True if the color equals . - - - - Determines whether this color is automatic. - - True if the color equals . - - - - Gets the actual color. - - The default color. - The default color if the current color equals OxyColors.Automatic, otherwise the color itself. - - - - Returns C# code that generates this instance. - - The C# code. - - - - Gets the alpha value. - - The alpha value. - - - - Gets the blue value. - - The blue value. - - - - Gets the green value. - - The green value. - - - - Gets the red value. - - The red value. - - - - Implements a set of predefined colors. - - - - - The undefined color. - - - - - The automatic color. - - - - - The alice blue. - - - - - The antique white. - - - - - The aqua. - - - - - The aquamarine. - - - - - The azure. - - - - - The beige. - - - - - The bisque. - - - - - The black. - - - - - The blanched almond. - - - - - The blue. - - - - - The blue violet. - - - - - The brown. - - - - - The burly wood. - - - - - The cadet blue. - - - - - The chartreuse. - - - - - The chocolate. - - - - - The coral. - - - - - The cornflower blue. - - - - - The cornsilk. - - - - - The crimson. - - - - - The cyan. - - - - - The dark blue. - - - - - The dark cyan. - - - - - The dark goldenrod. - - - - - The dark gray. - - - - - The dark green. - - - - - The dark khaki. - - - - - The dark magenta. - - - - - The dark olive green. - - - - - The dark orange. - - - - - The dark orchid. - - - - - The dark red. - - - - - The dark salmon. - - - - - The dark sea green. - - - - - The dark slate blue. - - - - - The dark slate gray. - - - - - The dark turquoise. - - - - - The dark violet. - - - - - The deep pink. - - - - - The deep sky blue. - - - - - The dim gray. - - - - - The dodger blue. - - - - - The firebrick. - - - - - The floral white. - - - - - The forest green. - - - - - The fuchsia. - - - - - The gainsboro. - - - - - The ghost white. - - - - - The gold. - - - - - The goldenrod. - - - - - The gray. - - - - - The green. - - - - - The green yellow. - - - - - The honeydew. - - - - - The hot pink. - - - - - The indian red. - - - - - The indigo. - - - - - The ivory. - - - - - The khaki. - - - - - The lavender. - - - - - The lavender blush. - - - - - The lawn green. - - - - - The lemon chiffon. - - - - - The light blue. - - - - - The light coral. - - - - - The light cyan. - - - - - The light goldenrod yellow. - - - - - The light gray. - - - - - The light green. - - - - - The light pink. - - - - - The light salmon. - - - - - The light sea green. - - - - - The light sky blue. - - - - - The light slate gray. - - - - - The light steel blue. - - - - - The light yellow. - - - - - The lime. - - - - - The lime green. - - - - - The linen. - - - - - The magenta. - - - - - The maroon. - - - - - The medium aquamarine. - - - - - The medium blue. - - - - - The medium orchid. - - - - - The medium purple. - - - - - The medium sea green. - - - - - The medium slate blue. - - - - - The medium spring green. - - - - - The medium turquoise. - - - - - The medium violet red. - - - - - The midnight blue. - - - - - The mint cream. - - - - - The misty rose. - - - - - The moccasin. - - - - - The navajo white. - - - - - The navy. - - - - - The old lace. - - - - - The olive. - - - - - The olive drab. - - - - - The orange. - - - - - The orange red. - - - - - The orchid. - - - - - The pale goldenrod. - - - - - The pale green. - - - - - The pale turquoise. - - - - - The pale violet red. - - - - - The papaya whip. - - - - - The peach puff. - - - - - The peru. - - - - - The pink. - - - - - The plum. - - - - - The powder blue. - - - - - The purple. - - - - - The red. - - - - - The rosy brown. - - - - - The royal blue. - - - - - The saddle brown. - - - - - The salmon. - - - - - The sandy brown. - - - - - The sea green. - - - - - The sea shell. - - - - - The sienna. - - - - - The silver. - - - - - The sky blue. - - - - - The slate blue. - - - - - The slate gray. - - - - - The snow. - - - - - The spring green. - - - - - The steel blue. - - - - - The tan. - - - - - The teal. - - - - - The thistle. - - - - - The tomato. - - - - - The transparent. - - - - - The turquoise. - - - - - The violet. - - - - - The wheat. - - - - - The white. - - - - - The white smoke. - - - - - The yellow. - - - - - The yellow green. - - - - - Describes a pen in terms of color, thickness, line style and line join type. - - - - - Initializes a new instance of the class. - - The color. - The thickness. - The line style. - The line join. - - - - Creates the specified pen. - - The color. - The thickness. - The line style. - The line join. - A pen. - - - - Returns a hash code for this instance. - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - - - - Gets or sets the color of the pen. - - The color. - - - - Gets or sets the dash array (overrides ). - - The dash array. - - - - Gets or sets the line join type. - - The line join type. - - - - Gets or sets the line style (overridden by ). - - The line style. - - - - Gets or sets the line thickness. - - The line thickness. - - - - Gets the actual dash array. - - The actual dash array. - - - - Provides functionality to convert from to a stroke dash array. - - - - - Gets the stroke dash array for a given . - - The line style. - A dash array. - - - - Defines the style of a line. - - - - - The solid line style. - - - - - The dash line style. - - - - - The dot line style. - - - - - The dash dot line style. - - - - - The dash dash dot line style. - - - - - The dash dot dot line style. - - - - - The dash dash dot dot line style. - - - - - The long dash line style. - - - - - The long dash dot line style. - - - - - The long dash dot dot line style. - - - - - The hidden line style. - - - - - The automatic line style. - - - - - Provides functionality to render mathematical expressions. - - - - - Initializes static members of the class. - - - - - Draws or measures text containing sub- and superscript. - - The render context. - The point. - The text. - Color of the text. - The font family. - The font size. - The font weight. - The angle. - The horizontal alignment. - The vertical alignment. - The maximum size of the text. - Measure the size of the text if set to true. - The size of the text. - Subscript: H_{2}O - Superscript: E=mc^{2} - Both: A^{2}_{i,j} - - - - Draws text containing sub- and superscript. - - The render context. - The point. - The text. - Color of the text. - The font family. - The font size. - The font weight. - The angle. - The horizontal alignment. - The vertical alignment. - The maximum size of the text. - Subscript: H_{2}O - Superscript: E=mc^{2} - Both: A^{2}_{i,j} - - - - The measure math text. - - The render context. - The text. - The font family. - The font size. - The font weight. - The size of the text. - - - - The internal draw math text. - - The render context. - The x. - The y. - The s. - The text color. - The font family. - The font size. - The font weight. - The measure only. - The angle of the text (degrees). - The size of the text. - - - - Gets or sets the subscript alignment. - - - - - Gets or sets the subscript size. - - - - - Gets or sets the superscript alignment. - - - - - Gets or sets the superscript size. - - - - - Provides an abstract base class for rendering contexts. - - - - - Specifies functionality to render 2D graphics. - - - - - Draws an extents. - - The rectangle defining the extents of the ellipse. - The fill color. If set to OxyColors.Undefined, the extents will not be filled. - The stroke color. If set to OxyColors.Undefined, the extents will not be stroked. - The thickness (in device independent units, 1/96 inch). - - - - Draws a collection of ellipses, where all have the same stroke and fill. - This performs better than calling DrawEllipse multiple times. - - The rectangles defining the extents of the ellipses. - The fill color. If set to OxyColors.Undefined, the ellipses will not be filled. - The stroke color. If set to OxyColors.Undefined, the ellipses will not be stroked. - The stroke thickness (in device independent units, 1/96 inch). - - - - Draws a polyline. - - The points defining the polyline. - The stroke color. - The stroke thickness (in device independent units, 1/96 inch). - The dash array (in device independent units, 1/96 inch). Use null to get a solid line. - The line join type. - if set to true the shape will be aliased. - - - - Draws line segments defined by points (0,1) (2,3) (4,5) etc. - This should have better performance than calling DrawLine for each segment. - - The points defining the line segments. - The stroke color. - The stroke thickness (in device independent units, 1/96 inch). - The dash array (in device independent units, 1/96 inch). - The line join type. - if set to true the shape will be aliased. - - - - Draws a polygon. - - The points defining the polygon. - The fill color. If set to OxyColors.Undefined, the polygon will not be filled. - The stroke color. If set to OxyColors.Undefined, the polygon will not be stroked. - The stroke thickness (in device independent units, 1/96 inch). - The dash array (in device independent units, 1/96 inch). - The line join type. - If set to true the polygon will be aliased. - - - - Draws a collection of polygons, where all polygons have the same stroke and fill. - This performs better than calling DrawPolygon multiple times. - - The polygons to draw. - The fill color. If set to OxyColors.Undefined, the polygons will not be filled. - The stroke color. If set to OxyColors.Undefined, the polygons will not be stroked. - The stroke thickness (in device independent units, 1/96 inch). - The dash array (in device independent units, 1/96 inch). - The line join type. - if set to true the shape will be aliased. - - - - Draws a rectangle. - - The rectangle to draw. - The fill color. If set to OxyColors.Undefined, the rectangle will not be filled. - The stroke color. If set to OxyColors.Undefined, the rectangle will not be stroked. - The stroke thickness (in device independent units, 1/96 inch). - - - - Draws a collection of extents, where all have the same stroke and fill. - This performs better than calling DrawRectangle multiple times. - - The extents to draw. - The fill color. If set to OxyColors.Undefined, the extents will not be filled. - The stroke color. If set to OxyColors.Undefined, the extents will not be stroked. - The stroke thickness (in device independent units, 1/96 inch). - - - - Draws text. - - The position. - The text. - The text color. - The font family. - Size of the font (in device independent units, 1/96 inch). - The font weight. - The rotation angle. - The horizontal alignment. - The vertical alignment. - The maximum size of the text (in device independent units, 1/96 inch). - - - - Measures the size of the specified text. - - The text. - The font family. - Size of the font (in device independent units, 1/96 inch). - The font weight. - The size of the text (in device independent units, 1/96 inch). - - - - Sets the tool tip for the following items. - - The text in the tool tip, or null if no tool tip should be shown. - - - - Cleans up resources not in use. - - This method is called at the end of each rendering. - - - - Draws a portion of the specified . - - The source. - The x-coordinate of the upper-left corner of the portion of the source image to draw. - The y-coordinate of the upper-left corner of the portion of the source image to draw. - Width of the portion of the source image to draw. - Height of the portion of the source image to draw. - The x-coordinate of the upper-left corner of drawn image. - The y-coordinate of the upper-left corner of drawn image. - The width of the drawn image. - The height of the drawn image. - The opacity. - interpolate if set to true. - - - - Sets the clipping rectangle. - - The clipping rectangle. - true if the clip rectangle was set. - - - - Resets the clipping rectangle. - - - - - Gets a value indicating whether the context renders to screen. - - true if the context renders to screen; otherwise, false. - - - - Initializes a new instance of the class. - - - - - Draws an ellipse. - - The rectangle. - The fill color. - The stroke color. - The thickness. - - - - Draws the collection of ellipses, where all have the same stroke and fill. - This performs better than calling DrawEllipse multiple times. - - The rectangles. - The fill color. - The stroke color. - The stroke thickness. - - - - Draws a polyline. - - The points. - The stroke color. - The stroke thickness. - The dash array. - The line join type. - if set to true the shape will be aliased. - - - - Draws multiple line segments defined by points (0,1) (2,3) (4,5) etc. - This should have better performance than calling DrawLine for each segment. - - The points. - The stroke color. - The stroke thickness. - The dash array. - The line join type. - If set to true the shape will be aliased. - - - - Draws a polygon. The polygon can have stroke and/or fill. - - The points. - The fill color. - The stroke color. - The stroke thickness. - The dash array. - The line join type. - If set to true the shape will be aliased. - - - - Draws a collection of polygons, where all polygons have the same stroke and fill. - This performs better than calling DrawPolygon multiple times. - - The polygons. - The fill color. - The stroke color. - The stroke thickness. - The dash array. - The line join type. - if set to true the shape will be aliased. - - - - Draws a rectangle. - - The rectangle. - The fill color. - The stroke color. - The stroke thickness. - - - - Draws a collection of rectangles, where all have the same stroke and fill. - This performs better than calling DrawRectangle multiple times. - - The rectangles. - The fill color. - The stroke color. - The stroke thickness. - - - - Draws the text. - - The position of the text. - The text. - The fill color. - The font family. - Size of the font. - The font weight. - The rotation angle. - The horizontal alignment. - The vertical alignment. - The maximum size of the text. - - - - Measures the text. - - The text. - The font family. - Size of the font. - The font weight. - The text size. - - - - Sets the tool tip for the following items. - - The text in the tooltip. - - - - Cleans up resources not in use. - - This method is called at the end of each rendering. - - - - Draws the specified portion of the specified at the specified location and with the specified size. - - The source. - The x-coordinate of the upper-left corner of the portion of the source image to draw. - The y-coordinate of the upper-left corner of the portion of the source image to draw. - Width of the portion of the source image to draw. - Height of the portion of the source image to draw. - The x-coordinate of the upper-left corner of drawn image. - The y-coordinate of the upper-left corner of drawn image. - The width of the drawn image. - The height of the drawn image. - The opacity. - Interpolate if set to true. - - - - Sets the clip rectangle. - - The clip rectangle. - True if the clip rectangle was set. - - - - Resets the clip rectangle. - - - - - Creates an ellipse polygon. - - The bounding rectangle. - The number of points. - The points defining the ellipse. - Note that this is very slow, not optimized in any way. - - - - Creates a rectangle polygon. - - The rectangle. - The points defining the rectangle. - - - - Gets or sets a value indicating whether the context renders to screen. - - true if the context renders to screen; otherwise, false. - - - - Provides extension methods for . - - - - - The vertical distance to the bottom points of the triangles. - - - - - The vertical distance to the top points of the triangles . - - - - - The horizontal/vertical distance to the end points of the stars. - - - - - Draws a clipped polyline through the specified points. - - The render context. - The clipping rectangle. - The points. - The minimum line segment length (squared). - The stroke color. - The stroke thickness. - The dash array (in device independent units, 1/96 inch). - The line join. - Set to true to draw as an aliased line. - The output buffer. - The points rendered callback. - - - - Draws the clipped line segments. - - The render context. - The clipping rectangle. - The points. - The stroke. - The stroke thickness. - The dash array (in device independent units, 1/96 inch). - The line join. - Set to true to draw as an aliased line. - - - - Draws the specified image. - - The render context. - The image. - The destination X position. - The destination Y position. - The width. - The height. - The opacity. - Interpolate the image if set to true. - - - - Draws the clipped image. - - The render context. - The clipping rectangle. - The source. - The destination X position. - The destination Y position. - The width. - The height. - The opacity. - interpolate if set to true. - - - - Draws the polygon within the specified clipping rectangle. - - The render context. - The clipping rectangle. - The points. - The squared minimum distance between points. - The fill. - The stroke. - The stroke thickness. - The line style. - The line join. - The aliased. - - - - Draws the clipped rectangle. - - The render context. - The clipping rectangle. - The rectangle to draw. - The fill color. - The stroke color. - The stroke thickness. - - - - Draws the clipped rectangle as a polygon. - - The render context. - The clipping rectangle. - The rectangle to draw. - The fill color. - The stroke color. - The stroke thickness. - - - - Draws a clipped ellipse. - - The render context. - The clipping rectangle. - The rectangle. - The fill color. - The stroke color. - The stroke thickness. - The number of points around the ellipse. - - - - Draws the clipped text. - - The rendering context. - The clipping rectangle. - The position. - The text. - The fill color. - The font family. - Size of the font. - The font weight. - The rotation angle. - The horizontal align. - The vertical align. - Size of the max. - - - - Draws clipped math text. - - The rendering context. - The clipping rectangle. - The position. - The text. - The fill color. - The font family. - Size of the font. - The font weight. - The rotation angle. - The horizontal align. - The vertical align. - Size of the max. - - - - Draws multi-line text at the specified point. - - The render context. - The point. - The text. - The text color. - The font family. - The font size. - The font weight. - The line spacing. - - - - Draws a line specified by coordinates. - - The render context. - The x0. - The y0. - The x1. - The y1. - The pen. - Aliased line if set to true. - - - - Draws the line segments. - - The render context. - The points. - The pen. - if set to true [aliased]. - - - - Renders the marker. - - The render context. - The clipping rectangle. - The center point of the marker. - The marker type. - The outline. - The size of the marker. - The fill color. - The stroke color. - The stroke thickness. - - - - Draws a list of markers. - - The render context. - The marker points. - The clipping rectangle. - Type of the marker. - The marker outline. - Size of the marker. - The marker fill. - The marker stroke. - The marker stroke thickness. - The resolution. - The bin Offset. - - - - Draws a list of markers. - - The render context. - The clipping rectangle. - The marker points. - Type of the marker. - The marker outline. - Size of the markers. - The marker fill. - The marker stroke. - The marker stroke thickness. - The resolution. - The bin Offset. - - - - Draws the rectangle as an aliased polygon. - (makes sure pixel alignment is the same as for lines) - - The render context. - The rectangle. - The fill. - The stroke. - The thickness. - - - - Draws a circle at the specified position. - - The render context. - The center x-coordinate. - The center y-coordinate. - The radius. - The fill color. - The stroke color. - The thickness. - - - - Draws a circle at the specified position. - - The render context. - The center. - The radius. - The fill color. - The stroke color. - The thickness. - - - - Fills a circle at the specified position. - - The render context. - The center. - The radius. - The fill color. - - - - Fills a rectangle at the specified position. - - The render context. - The rectangle. - The fill color. - - - - Draws the rectangle as an aliased polygon. - (makes sure pixel alignment is the same as for lines) - - The render context. - The rectangle. - The fill. - The stroke. - The thickness. - - - - Adds a marker geometry. - - The position of the marker. - The type. - The outline. - The size. - The ellipse collection. - The rectangle collection. - The polygon collection. - The line collection. - - - - Calculates the clipped version of a rectangle. - - The rectangle to clip. - The clipping rectangle. - The clipped rectangle, or null if the rectangle is outside the clipping area. - - - - Makes sure that a non empty line is visible. - - The points (screen coordinates). - If the line contains one point, another point is added. - If the line contains two points at the same position, the points are moved 2 pixels apart. - - - - Provides a decorator that distorts the rendered output. - - - - - The decorated . This is the one that does the actual rendering. - - - - - The random number generator. - - - - - Initializes a new instance of the class. - - The decorated render context. - - - - Draws a polyline. - - The points. - The stroke color. - The stroke thickness. - The dash array. - The line join type. - if set to true the shape will be aliased. - - - - Draws a polygon. The polygon can have stroke and/or fill. - - The points. - The fill color. - The stroke color. - The stroke thickness. - The dash array. - The line join type. - If set to true the shape will be aliased. - - - - Draws the text. - - The position of the text. - The text. - The fill color. - The font family. - Size of the font. - The font weight. - The rotation angle. - The horizontal alignment. - The vertical alignment. - The maximum size of the text. - - - - Measures the text. - - The text. - The font family. - Size of the font. - The font weight. - - The text size. - - - - - Sets the tool tip for the following items. - - The text in the tool tip. - - - - Cleans up resources not in use. - - - This method is called at the end of each rendering. - - - - - Draws the specified portion of the specified at the specified location and with the specified size. - - The source. - The x-coordinate of the upper-left corner of the portion of the source image to draw. - The y-coordinate of the upper-left corner of the portion of the source image to draw. - Width of the portion of the source image to draw. - Height of the portion of the source image to draw. - The x-coordinate of the upper-left corner of drawn image. - The y-coordinate of the upper-left corner of drawn image. - The width of the drawn image. - The height of the drawn image. - The opacity. - Interpolate if set to true. - - - - Sets the clipping rectangle. - - The clipping rectangle. - - true if the clip rectangle was set. - - - - - Resets the clip rectangle. - - - - - Gets the transformed font family name. - - The original font family. - The actual font family. - - - - Distorts the specified points. - - The input points. - - The distorted points. - - - - - Generates an array of random numbers. - - The number of numbers to generate. - The random numbers. - - - - Applies a moving average filter to the input values. - - The input values. - The number of values to average. - The filtered values. - - - - Interpolates the input points. - - The input points. - The interpolation distance. - The interpolated points. - - - - Gets or sets the distortion factor. - - - - - Gets or sets the interpolation distance. - - - - - Gets or sets the font family. - - - The font family. - - - - - Gets or sets the thickness scale. - - - The thickness scale. - - - - - Defines the possible key values on a keyboard. - - - - - The Space key. - - - - - The Enter key. - - - - - The Esc key. - - - - - The Tab key. - - - - - The Backspace key. - - - - - The Insert key. - - - - - The Delete key. - - - - - The Home key. - - - - - The End key. - - - - - The Up arrow key. - - - - - The Down arrow key. - - - - - The Left arrow key. - - - - - The Right arrow key. - - - - - The Page up key. - - - - - The Page down key. - - - - - The A key. - - - - - The B key. - - - - - The C key. - - - - - The D key. - - - - - The E key. - - - - - The F key. - - - - - The G key. - - - - - The H key. - - - - - The I key. - - - - - The J key. - - - - - The K key. - - - - - The L key. - - - - - The M key. - - - - - The N key. - - - - - The O key. - - - - - The P key. - - - - - The Q key. - - - - - The R key. - - - - - The S key. - - - - - The T key. - - - - - The U key. - - - - - The V key. - - - - - The W key. - - - - - The X key. - - - - - The Y key. - - - - - The Z key. - - - - - The 0 key. - - - - - The 1 key. - - - - - The 2 key. - - - - - The 3 key. - - - - - The 4 key. - - - - - The 5 key. - - - - - The 6 key. - - - - - The 7 key. - - - - - The 8 key. - - - - - The 9 key. - - - - - The 0 key on the numeric keypad. - - - - - The 1 key on the numeric keypad. - - - - - The 2 key on the numeric keypad. - - - - - The 3 key on the numeric keypad. - - - - - The 4 key on the numeric keypad. - - - - - The 5 key on the numeric keypad. - - - - - The 6 key on the numeric keypad. - - - - - The 7 key on the numeric keypad. - - - - - The 8 key on the numeric keypad. - - - - - The 9 key on the numeric keypad. - - - - - The add key. - - - - - The subtract key. - - - - - The multiply key. - - - - - The divide key. - - - - - The decimal key. - - - - - The F1 key. - - - - - The F2 key. - - - - - The F3 key. - - - - - The F4 key. - - - - - The F5 key. - - - - - The F6 key. - - - - - The F7 key. - - - - - The F8 key. - - - - - The F9 key. - - - - - The F10 key. - - - - - The F11 key. - - - - - The F12 key. - - - - - Unknown/not supported key. - - - - - Defines the set of modifier keys. - - - - - No modifiers are pressed. - - - - - The Control key. - - - - - The Alt/Menu key. - - - - - The Shift key. - - - - - The Windows key. - - - - - Defines values that specify the buttons on a mouse device. - - - - - No mouse button. - - - - - The left mouse button. - - - - - The middle mouse button. - - - - - The right mouse button. - - - - - The first extended mouse button. - - - - - The second extended mouse button. - - - - - Represents a keyboard input gesture. - - The input gesture can be bound to a command in a . - - - - Initializes a new instance of the class. - - The key. - The modifier keys. - - - - Indicates whether the current object is equal to another object of the same type. - - An object to compare with this object. - true if the current object is equal to the parameter; otherwise, false. - - - - Gets or sets the modifier keys. - - - - - Gets or sets the key. - - - - - Represents a mouse down input gesture. - - The input gesture can be bound to a command in a . - - - - Initializes a new instance of the class. - - The mouse button. - The modifiers. - The click count. - - - - Indicates whether the current object is equal to another object of the same type. - - An object to compare with this object. - true if the current object is equal to the parameter; otherwise, false. - - - - Gets the modifier keys. - - - - - Gets the mouse button. - - - - - Gets the click count. - - - - - Represents a mouse wheel gesture. - - The input gesture can be bound to a command in a . - - - - Initializes a new instance of the class. - - The modifiers. - - - - Indicates whether the current object is equal to another object of the same type. - - An object to compare with this object. - true if the current object is equal to the parameter; otherwise, false. - - - - Gets the modifier keys. - - - - - Represents a shake input gesture. - - The input gesture can be bound to a command in a . The shake gesture applies primarily to mobile devices. - - - - Indicates whether the current object is equal to another object of the same type. - - An object to compare with this object. - true if the current object is equal to the parameter; otherwise, false. - - - - Represents a touch input gesture. - - The input gesture can be bound to a command in a . - - - - Indicates whether the current object is equal to another object of the same type. - - An object to compare with this object. - true if the current object is equal to the parameter; otherwise, false. - - - - Defines the page size. - - - - - ISO A4 size (595pt x 842pt). - - - - - ISO A3 size (842pt x 1190pt). - - - - - American letter size (612pt x 792pt). - - - - - Defines the page orientation. - - - - - Portrait orientation (where the height is greater than the width). - - - - - Landscape orientation (where the width is greater than the height). - - - - - Defines the line cap type. - - - - - Butt cap. The stroke is squared off at the endpoint of the path. There is no projection beyond the end of the path. - - - - - Round cap. A semicircular arc with a diameter equal to the line width is drawn around the endpoint and filled in. - - - - - Projecting square cap. The stroke continues beyond the endpoint of the path for a distance equal to half the line width and is squared off. - - - - - Defines the color space. - - - - - The colors are defined by intensities of red, green and blue light, the three additive primary colors used in displays. - - - - - Defines the font encoding. - - - - - Windows Code Page 1252, often called the “Windows ANSI” encoding. This is the standard Windows encoding for Latin text in - Western writing systems. PDF has a predefined encoding named WinAnsiEncoding that can be used with both Type 1 and TrueType fonts. - - - - - Defines the font subtype - - - - - Adobe type 1 font. - - - - - TrueType font. - - - - - Provides OxyPlot extension methods for . - - - - - Sets the stroke color. - - The document. - The color. - - - - Sets the fill color. - - The document. - The color. - - - - Represents a font that can be used in a . - - - - - Initializes a new instance of the class. - - - - - Measures the specified text. - - The text. - The font size - The width of the text. - The height of the text. - - - - Gets or sets the font subtype. - - - - - Gets or sets the base font. - - - - - Gets or sets the encoding. - - - - - Gets or sets the first character in the Widths array. - - - - - Gets or sets the character Widths array. - - - - - Gets or sets the font ascent. - - - - - Gets or sets the font cap height. - - - - - Gets or sets the font descent. - - - - - Gets or sets the font flags. - - - - - Gets or sets the font bounding box. - - - - - Gets or sets the italic angle. - - - - - Gets or sets the stem v. - - - - - Gets or sets the x height. - - - - - Gets or sets the font name. - - - - - Represents a font family that can be used in a . - - - - - Gets the font with the specified weight and style. - - bold font weight. - italic/oblique font style. - The font. - - - - Gets or sets the regular font. - - - - - Gets or sets the bold font. - - - - - Gets or sets the italic font. - - - - - Gets or sets the bold and italic font. - - - - - Represents an image that can be included in a . - - - - - Initializes a new instance of the class. - - The width. - The height. - The number of bits per component. - The bits. - The bits of the mask. - Interpolate if set to true. - The color space. - - - - Gets the width. - - The width. - - - - Gets the height. - - The height. - - - - Gets the bits per component. - - The bits per component. - - - - Gets the color space. - - The color space. - - - - Gets the bits. - - The bits. - - - - Gets the mask bits. - - The mask bits. - - - - Gets a value indicating whether the image is interpolated. - - true if interpolated; otherwise, false. - - - - Provides functionality to export plots to pdf. - - - - - Exports the specified model to a stream. - - The model. - The output stream. - The width (points). - The height (points). - - - - Exports the specified to the specified . - - The model. - The stream. - - - - Gets or sets the width (in points, 1/72 inch) of the output document. - - - - - Gets or sets the height (in points, 1/72 inch) of the output document. - - - - - Gets or sets the background color. - - - - - Implements an producing PDF documents by . - - - - - The current document. - - - - - The image cache. - - - - - Initializes a new instance of the class. - - The width. - The height. - The background. - - - - Saves the output to the specified stream. - - The stream. - - - - Draws an ellipse. - - The rectangle. - The fill color. - The stroke color. - The thickness. - - - - Draws a polyline. - - The points. - The stroke color. - The stroke thickness. - The dash array. - The line join type. - if set to true the shape will be aliased. - - - - Draws a polygon. The polygon can have stroke and/or fill. - - The points. - The fill color. - The stroke color. - The stroke thickness. - The dash array. - The line join type. - If set to true the shape will be aliased. - - - - Draws a rectangle. - - The rectangle. - The fill color. - The stroke color. - The stroke thickness. - - - - Draws the text. - - The position of the text. - The text. - The fill color. - The font family. - Size of the font. - The font weight. - The rotation angle. - The horizontal alignment. - The vertical alignment. - The maximum size of the text. - - - - Measures the text. - - The text. - The font family. - Size of the font. - The font weight. - The text size. - - - - Sets the clip rectangle. - - The clip rectangle. - True if the clip rectangle was set. - - - - Resets the clip rectangle. - - - - - Draws the specified portion of the specified at the specified location and with the specified size. - - The source. - The x-coordinate of the upper-left corner of the portion of the source image to draw. - The y-coordinate of the upper-left corner of the portion of the source image to draw. - Width of the portion of the source image to draw. - Height of the portion of the source image to draw. - The x-coordinate of the upper-left corner of drawn image. - The y-coordinate of the upper-left corner of drawn image. - The width of the drawn image. - The height of the drawn image. - The opacity. - Interpolate if set to true. - - - - Converts the specified to a . - - The value to convert. - The converted value. - - - - Sets the width of the line. - - The thickness (in 1/96 inch units). - - - - Sets the line dash pattern. - - The dash array (in 1/96 inch units). - The dash phase (in 1/96 inch units). - - - - Provides a low-level PDF writer. - - - - - The output writer. - - - - - Initializes a new instance of the class. - - The s. - - - - Writes a formatted string. - - The format string. - The arguments. - - - - Writes a formatted line. - - The format string. - The arguments. - - - - Writes a dictionary. - - The dictionary. - - - - Writes a byte array. - - The byte array. - - - - Writes an empty line. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - - - - Writes an object. - - The object to write. - - - - Writes a list. - - The list. - - - - Gets the position in the stream. - - - - - Specifies the object type. - - - - - The Catalog type. - - - - - The Pages type. - - - - - The Page type. - - - - - The Font type. - - - - - The XObject type. - - - - - The ExtGState type. - - - - - The FontDescriptor type. - - - - - Specifies a document object. - - - - - Gets the object number. - - - - - Represents a document that can be output to PDF. - - - - - The objects. - - - - - The stroke alpha cache. - - - - - The fill alpha cache. - - - - - The font cache. - - - - - The image cache. - - - - - The catalog object. - - - - - The pages object. - - - - - The metadata object. - - - - - The resources object. - - - - - The fonts dictionary. - - - - - The x objects dictionary. - - - - - The ext g state dictionary. - - - - - The page reference objects. - - - - - The current page contents - - - - - The current font - - - - - The current font size - - - - - Initializes a new instance of the class. - - - - - Sets the current line width. - - The line width in points. - - - - Sets the line cap type. - - The cap type. - - - - Sets the line join type. - - The line join. - - - - Sets the miter limit. - - The limit. - - - - Sets the line dash pattern. - - The dash array specifies the lengths of alternating dashes and gaps; the numbers must be nonnegative and not all zero. - The dash phase specifies the distance into dash pattern at which to start the dash. - Before beginning to stroke a path, the dash array is cycled through, adding up the lengths of - dashes and gaps. When the accumulated length equals the value specified by the dash phase, stroking - of the path begins, and the dash array is used cyclically from that point onward. - Table 4.6 shows examples of line dash patterns. As can be seen from the table, an empty dash array - and zero phase can be used to restore the dash pattern to a solid line. - - - - Resets the line dash pattern. - - - - - Moves to the specified coordinate. - - The x1. - The y1. - Begin a new subpath by moving the current point to coordinates (x, y), omitting any connecting line segment. - If the previous path construction operator in the current path was also m, the new m overrides it; - no vestige of the previous m operation remains in the path. - - - - Appends a straight line segment to the current path. - - The x1. - The y1. - Append a straight line segment from the current point to the point (x, y). The new current point is (x, y). - - - - Appends a cubic Bézier curve to the current path. - - The x1. - The y1. - The x2. - The y2. - The x3. - The y3. - The curve extends from the current point to the point (x3 , y3 ), using (x1 , y1 ) and (x2 , y2 ) - as the Bézier control points (see “Cubic Bézier Curves,” below). The new current point is (x3 , y3 ). - - - - Saves the current graphics state. - - - - - Restores the graphics state. - - - - - Translates the current transformation matrix. - - The x-translation. - The y-translation. - - - - Scales the current transformation matrix. - - The x-scale. - The y-scale. - - - - Modifies the current transformation matrix (CTM). - - The a. - The b. - The c. - The d. - The e. - The f. - Modify the current transformation matrix (CTM) by concatenating the specified matrix - (see Section 4.2.1, “Coordinate Spaces”). Although the operands specify a matrix, they - are written as six separate numbers, not as an array. - - - - Sets the vertical text scaling. - - A number specifying the percentage of the normal height. - - - - Rotates by the specified angle around the specified point. - - The x-coordinate of the rotation centre. - The y-coordinate of the rotation centre. - The rotation angle in degrees. - - - - Rotates by the specified angle. - - The rotation angle in degrees. - - - - Sets the stroke alpha. - - The alpha value [0,1]. - - - - Sets the fill alpha. - - The alpha value [0,1]. - - - - Strokes the path. - - Closes the path if set to true. - - - - Fills the path. - - Use the even-odd fill rule if set to true. Use the nonzero winding number rule if set to false. - - - - Fills and strokes the path. - - Closes the path if set to true. - Use the even-odd fill rule if set to true. Use the nonzero winding number rule if set to false. - - - - Sets the clipping path. - - Use the even-odd fill rule if set to true. Use the nonzero winding number rule if set to false. - - - - Ends the path. - - End the path object without filling or stroking it. This operator is a path-painting no-op, - used primarily for the side effect of changing the current clipping path (see Section 4.4.3, “Clipping Path Operators”). - - - - Closes the subpath. - - Close the current subpath by appending a straight line segment from the current point - to the starting point of the subpath. If the current subpath is already closed, h does nothing. - This operator terminates the current subpath. Appending another segment to the current - path begins a new subpath, even if the new segment begins at the endpoint reached by the h operation. - - - - Appends a rectangle to the current path. - - The x-coordinate of the lower-left corner. - The y-coordinate of the lower-left corner. - The width. - The height. - Append a rectangle to the current path as a complete subpath, - with lower-left corner (x, y) and dimensions width and height in user space. - - - - Draws a line connecting the two points specified by the coordinate pairs. - - The x-coordinate of the first point. - The y-coordinate of the first point. - The x-coordinate of the second point. - The y-coordinate of the second point. - - - - Draws a rectangle. - - The x-coordinate of the lower-left corner. - The y-coordinate of the lower-left corner. - The width. - The height. - Fill the rectangle if set to true. - - - - Sets the clipping rectangle. - - The x-coordinate of the lower-left corner. - The y-coordinate of the lower-left corner. - The width. - The height. - Use the even-odd region rule if set to true. - - - - Fills a rectangle. - - The x-coordinate of the lower-left corner. - The y-coordinate of the lower-left corner. - The width. - The height. - - - - Draws a circle. - - The x-coordinate of the center. - The y-coordinate of the center. - The radius. - Fill the circle if set to true. - - - - Fills a circle. - - The x-coordinate of the center. - The y-coordinate of the center. - The radius. - - - - Draws an ellipse. - - The x-coordinate of the lower-left corner. - The y-coordinate of the lower-left corner. - The width. - The height. - Fill the ellipse if set to true. - - - - Fills an ellipse. - - The x-coordinate of the lower-left corner. - The y-coordinate of the lower-left corner. - The width. - The height. - - - - Appends an ellipse to the current path. - - The x-coordinate of the lower-left corner. - The y-coordinate of the lower-left corner. - The width. - The height. - - - - Sets the current font. - - The font name. - The font size in points. - Use bold font weight if set to true. - Use italic style if set to true. - - - - Draws the text at the specified coordinate. - - The left x-coordinate. - The bottom (!) y-coordinate. - The text. - - - - Measures the size of the specified text. - - The text. - The width. - The height. - - - - Draws an image. - - The image to draw. - - - - Sets the color in Device RGB color space. - - The red value. - The green value. - The blue value. - - - - Sets the color in CMYK color space. - - The cyan value. - The magenta value. - The yellow value. - The black value. - - - - Sets the fill color in Device RGB color space. - - The red value. - The green value. - The blue value. - - - - Adds a page. - - The page size. - The page orientation. - - - - Adds a page specified by width and height. - - The page width in points. - The page height in points. - - - - Saves the document to the specified stream. - - The output stream. - - - - Encodes the specified string. - - The text to encode. - The target encoding. - The encoded text - - - - Escapes the specified string. - - The text. - The encoded string. - - - - Encodes binary bits into a plaintext ASCII85 format string - - binary bits to encode - ASCII85 encoded string - - - - Gets the font. - - Name of the font. - Use bold if set to true. - Use italic if set to true. - The font. - - - - Gets a cached value. - - The type of the key. - The type of the value. - The key. - The cache dictionary. - The create value function. - The cached or created value. - - - - Adds an object to the document. - - The added object. - - - - Adds an object of the specified type. - - The object type. - The added object. - - - - Adds an ExtGState object. - - The key. - The value. - The added object. - - - - Adds an image. - - The image. - The added object. - - - - Adds a font. - - The font. - The added object. - - - - Appends a line to the current page contents. - - The format string. - The arguments. - Cannot add content before a page has been added. - - - - Appends text to the current page contents. - - The format string. - The arguments. - Cannot add content before a page has been added. - - - - Gets the width of the current page. - - The width measured in points (1/72 inch). - - - - Gets the height of the current page. - - The height measured in points (1/72 inch). - - - - Sets the title property. - - - - - Sets the author property. - - - - - Sets the subject property. - - - - - Sets the keywords property. - - - - - Sets the creator property. - - - - - Sets the producer property. - - - - - Represents an object in the . - - The object contains a dictionary and text content. - - - - The dictionary - - - - - The object number - - - - - The contents - - - - - Initializes a new instance of the class. - - The object number. - - - - Appends text to the content of the object. - - The format string. - The arguments. - - - - Appends a line to the content of the object. - - The format string. - The arguments. - - - - Writes the object to the specified . - - The writer. - - - - Gets the object number. - - The object number. - - - - Sets the dictionary value for the specified key. - - The . - The key. - The object. - - - - Provides utility methods related to . - - - - - Converts the specified to a . - - The source image. - interpolate if set to true. - The converted image. - - - - Defines the standard fonts that can be used in a . - - - - - Initializes static members of the class. - - - - - Gets the Arial font family. - - - - - Gets the Times font family. - - - - - Gets the Courier font family. - - - - - Represents a point in a . - - - - - Represents a point in a . - - - - - The size. - - - - - The tag. - - - - - The value. - - - - - The x. - - - - - The y. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The x. - The y. - The size. - The value. - The tag. - - - - Returns C# code that generates this instance. - - C# code. - - - - Returns a that represents this instance. - - A that represents this instance. - - - - Gets or sets the size. - - The size. - - - - Gets or sets the tag. - - The tag. - - - - Gets or sets the value. - - The value. - - - - Gets or sets the X. - - The X. - - - - Gets or sets the Y. - - The Y. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The x. - The y. - The X error. - The Y error. - The size. - The value. - The tag. - - - - Gets or sets the error in X. - - - The error. - - - - - Gets or sets the error in Y. - - - The error. - - - - - Represents a series for scatter plots with the possibility to display error bars. - - - - - Provides a base class for scatter series. - - The type of the data points. - - - - Provides an abstract base class for series that are related to an X-axis and a Y-axis. - - - - - Abstract base class for series that can contain items. - - - - - Provides an abstract base class for plot series. - - This class contains internal methods that should be called only from the PlotModel. - - - - Initializes a new instance of the class. - - - - - Gets the point on the series that is nearest the specified point. - - The point. - Interpolate the series if this flag is set to true. - A TrackerHitResult for the current hit. - - - - Renders the series on the specified render context. - - The rendering context. - The model. - - - - Renders the legend symbol on the specified render context. - - The rendering context. - The legend rectangle. - - - - Checks if this data series requires X/Y axes. (e.g. Pie series do not require axes) - - true if axes are required. - - - - Ensures that the axes of the series are defined. - - - - - Checks if the data series is using the specified axis. - - The axis that should be checked. - true if the axis is in use. - - - - Sets the default values (colors, line style etc.) from the plot model. - - A plot model. - - - - Updates the maximum and minimum values of the axes used by this series. - - - - - Updates the data of the series. - - - - - Updates the valid data of the series. - - - - - Updates the maximum and minimum values of the series. - - This method is called when the is updated with the updateData parameter set to true. - - - - When overridden in a derived class, tests if the plot element is hit by the specified point. - - The hit test arguments. - - The result of the hit test. - - - - - Gets or sets the background color of the series. The default is OxyColors.Undefined. - - This property defines the background color in the area defined by the x and y axes used by this series. - - - - Gets or sets a value indicating whether this series is visible. The default is true. - - - - - Gets or sets the title of the series. The default is null. - - The title that is shown in the legend of the plot. The default value is null. When the value is null, this series will not be shown in the legend. - - - - Gets or sets a format string used for the tracker. The default depends on the series. - - - The arguments for the format string may be different for each type of series. See the documentation. - - - - - Gets or sets the key for the tracker to use on this series. The default is null. - - - This key may be used by the plot view to show a custom tracker for the series. - - - - - Updates the valid items - - - - - Gets the item for the specified index. - - The items source. - The index. - The get item. - Returns null if ItemsSource is not set, or the index is outside the boundaries. - - - - Gets the item at the specified index. - - The index of the item. - The item of the index. - - - - Gets or sets the items source. The default is null. - - The items source. - - - - The default tracker format string - - - - - The default x-axis title - - - - - The default y-axis title - - - - - Initializes a new instance of the class. - - - - - Gets the rectangle the series uses on the screen (screen coordinates). - - The rectangle. - - - - Renders the legend symbol on the specified rendering context. - - The rendering context. - The legend rectangle. - - - - Transforms from a screen point to a data point by the axes of this series. - - The screen point. - A data point. - - - - Transforms the specified coordinates to a screen point by the axes of this series. - - The x coordinate. - The y coordinate. - A screen point. - - - - Transforms the specified data point to a screen point by the axes of this series. - - The point. - A screen point. - - - - Check if this data series requires X/Y axes. (e.g. Pie series do not require axes) - - The are axes required. - - - - Ensures that the axes of the series is defined. - - - - - Check if the data series is using the specified axis. - - An axis. - True if the axis is in use. - - - - Sets default values from the plot model. - - The plot model. - - - - Updates the axes to include the max and min of this series. - - - - - Updates the data. - - - - - Updates the maximum and minimum values of the series. - - - - - Gets the clipping rectangle. - - The clipping rectangle. - - - - Gets the point on the curve that is nearest the specified point. - - The point list. - The point. - A tracker hit result if a point was found. - The Text property of the result will not be set, since the formatting depends on the various series. - - - - Gets the nearest point. - - The points (data coordinates). - The point (screen coordinates). - A if a point was found, null otherwise. - The Text property of the result will not be set, since the formatting depends on the various series. - - - - Determines whether the specified point is valid. - - The point. - true if the point is valid; otherwise, false . - - - - Determines whether the specified point is valid. - - The x coordinate. - The y coordinate. - true if the point is valid; otherwise, false . - - - - Updates the Max/Min limits from the specified list. - - The list of points. - - - - Updates the Max/Min limits from the specified list. - - The type of the elements in the list. - The items. - A function that provides the x value for each item. - A function that provides the y value for each item. - The items argument cannot be null. - - - - Updates the Max/Min limits from the specified collection. - - The type of the items in the collection. - The items. - A function that provides the x minimum for each item. - A function that provides the x maximum for each item. - A function that provides the y minimum for each item. - A function that provides the y maximum for each item. - The items argument cannot be null. - - - - Verifies that both axes are defined. - - - - - Gets or sets the maximum x-coordinate of the dataset. - - The maximum x-coordinate. - - - - Gets or sets the maximum y-coordinate of the dataset. - - The maximum y-coordinate. - - - - Gets or sets the minimum x-coordinate of the dataset. - - The minimum x-coordinate. - - - - Gets or sets the minimum y-coordinate of the dataset. - - The minimum y-coordinate. - - - - Gets the x-axis. - - The x-axis. - - - - Gets or sets the x-axis key. The default is null. - - The x-axis key. - - - - Gets the y-axis. - - The y-axis. - - - - Gets or sets the y-axis key. The default is null. - - The y-axis key. - - - - The default color-axis title - - - - - The list of data points. - - - - - The default fill color. - - - - - Initializes a new instance of the class. - - - - - Gets the nearest point. - - The point. - interpolate if set to true . - A TrackerHitResult for the current hit. - - - - Renders the series on the specified rendering context. - - The rendering context. - The owner plot model. - - - - Renders the legend symbol for the line series on the specified rendering context. - - The rendering context. - The bounding rectangle of the legend box. - - - - Ensures that the axes of the series is defined. - - - - - Sets the default values. - - The model. - - - - Updates the data. - - - - - Updates the maximum and minimum values of the series. - - - - - Renders the point labels. - - The render context. - The clipping rectangle. - - - - Updates the Max/Min limits from the values in the specified point list. - - The points. - - - - Adds scatter points specified by a items source and data fields. - - The destination collection. - The items source. - The data field x. - The data field y. - The data field size. - The data field value. - The data field tag. - - - - Updates the Max/Min limits from the values in the specified point list. - - The points. - - - - Clears or creates the list. - - - - - Defines the data fields used by the code that reflects on the . - - The list filler. - - - - Updates the points from the . - - - - - Gets the list of points. - - A list of . - If the is specified, this list will not be used. - - - - Gets or sets the label format string. The default is null (no labels). - - The label format string. - - - - Gets or sets the label margins. The default is 6. - - - - - Gets or sets a function that maps from elements in the to points to be rendered. - - The mapping function. The default is null. - Example: series1.Mapping = item => new DataPoint(((MyType)item).Time,((MyType)item).Value); - - - - - Gets or sets the size of the 'binning' feature. - If this number is greater than 1, bins of the specified is created for both x and y directions. Only one point will be drawn in each bin. - - - The size of the bins. The default is 0 - no binning. - - - - - Gets the actual color axis. - - A . - This is used to map scatter point values to colors. Use the to specify a color axis. - If the is not specified, the first of the will be used. - - - - Gets or sets the color axis key. - - The color axis key. The default is null. - If set to null, the first of the will be used. - Make sure that the points contains values. - If your contains a , but you don't want to use a color axis, set the value to string.Empty or some other key that is not in use. - - - - Gets or sets the name of the property that specifies X coordinates in the elements. - - The name of the property. The default is null. - - - - Gets or sets the name of the property that specifies Y coordinates in the elements. - - The name of the property. The default is null. - - - - Gets or sets the name of the property that specifies the size in the elements. - - The name of the property. The default is null. - - - - Gets or sets the name of the property that specifies the tag in the elements. - - The name of the property. The default is null. - - - - Gets or sets the name of the property that specifies the color value in the elements. - - The name of the property. The default is null. - - - - Gets or sets the marker fill color. If null, this color will be automatically set. - - The fill color of the markers. The default is . - - - - Gets the actual fill color. - - The actual color. - - - - Gets or sets the custom marker outline polygon. Set to to use this. - - A polyline. The default is null. - - - - Gets or sets the size of the marker (same size for all items). - - The size of the markers. The default is 5. - - - - Gets or sets the marker stroke. - - The marker stroke. The default is . - - - - Gets or sets thickness of the the marker strokes. - - The thickness. The default is 1. - - - - Gets or sets the type of the marker. - - The type of the marker. The default is . - If is used, the property must be specified. - - - - Gets the maximum value of the points. - - - - - Gets the minimum value of the points. - - - - - Gets the actual points. - - - A read-only list of points. - - - - - Gets the list of points that should be rendered. - - A list of . - - - - Gets or sets the data points from the items source. - - - - - Gets or sets a value indicating whether the list can be modified. - - - - - Initializes a new instance of the class. - - - - - Renders the series on the specified rendering context. - - - The rendering context. - - - The owner plot model. - - - - - Selects all points for which the passed function returns true. - - - The function. - - - - - Defines the data fields used by the code that reflects on the . - - The list filler. - - - - Gets or sets the data field for the X error property. - - - The data field. - - - - - Gets or sets the data field for the Y error property. - - - The data field. - - - - - Gets or sets the color of the error bar. - - - The color of the error bar. - - - - - Gets or sets the width of the error bar stop. - - - The width of the error bar stop. - - - - - Gets or sets the error bar stroke thickness. - - - The error bar stroke thickness. - - - - - Gets or sets the minimum size (relative to ) of the error bars to be shown. - - - - - Provides useful extension methods for arrays. - - - - - Finds the maximum value in the specified 2D array (NaN values not included). - - The array. - The maximum value. - - - - Finds the minimum value in the specified 2D array. - - The array. - Exclude NaN values if set to true. - The minimum value. - - - - Provides functionality to calculate hash codes. - - - - - Calculates a hash code for the specified sequence of items. - - A sequence of items. - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - - - - Provides functionality to reflect a path of properties. - - - - - The path items. - - - - - The property metadata. - - - - - Initializes a new instance of the class. - - The reflection path. - - - - Gets the value for the specified instance. - - The instance. - The value. - Could not find property. - - - - Provides an abstract base class for exporters that write xml. - - - - - The xml writer. - - - - - The disposed flag. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The stream. - - - - Closes this instance. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - - - - Flushes this instance. - - - - - The write attribute string. - - The name. - The value. - - - - Writes an attribute string with a prefix. - - The prefix. - The name. - The constant. - The value. - - - - The write doc type. - - The name of the DOCTYPE. This must be non-empty. - If non-null it also writes PUBLIC "pubid" "sysid" where pubid and sysid are replaced with the value of the given arguments. - If pubid is null and sysid is non-null it writes SYSTEM "sysid" where sysid is replaced with the value of this argument. - If non-null it writes [subset] where subset is replaced with the value of this argument. - - - - The write element string. - - The name. - The text. - - - - The write end document. - - - - - The write end element. - - - - - The write raw. - - The text. - - - - The write start document. - - The standalone. - - - - The write start element. - - The name. - - - - The write start element. - - The name. - The ns. - - - - The write string. - - The text. - - - - Releases unmanaged and - optionally - managed resources - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Provides extension methods to the . - - - - - Reads a string of the specified length (in bytes). - - The reader. - The length. - The encoding. - The string. - - - - Reads an unsigned 32-bit integer. - - The reader. - Read as little endian (Intel convention) if set to true. - The unsigned integer. - - - - Reads a signed 32-bit integer. - - The reader. - Read as little endian (Intel convention) if set to true. - The signed integer. - - - - Reads an unsigned 16-bit integer. - - The reader. - Read as little endian (Intel convention) if set to true. - The unsigned integer. - - - - Reads an 64-bit floating point value. - - The reader. - Read as little endian (Intel convention) if set to true. - The floating point number. - - - - Reads an array of unsigned 32-bit integers. - - The reader. - The number of values to read. - Read as little endian (Intel convention) if set to true. - The unsigned integer array. - - - - Reads an array of unsigned 16-bit integers. - - The reader. - The number of values to read. - Read as little endian (Intel convention) if set to true. - The unsigned integer array. - - - - Reads a big endian (Motorola convention) unsigned 32-bit integer. - - The reader. - The unsigned integer. - - - - Reads a big endian (Motorola convention) signed 32-bit integer. - - The reader. - The signed integer. - - - - Reads a big endian (Motorola convention) unsigned 16-bit integer. - - The reader. - The unsigned integer. - - - - Reads a big endian (Motorola convention) 64-bit floating point number. - - The reader. - A . - - - - Provides functionality to fill a list by specified properties of another list. - - The target list item type. - This class uses reflection. - - - - The properties. - - - - - Initializes a new instance of the class. - - - - - Adds a setter for the specified property. - - Name of the property. - The setter. - - - - Fills the specified target list. - - The target. - The source. - - - - Fills the specified target list. - - The target. - The source list. - - - - Provides useful extension methods for streams. - - - - - Copies to the specified stream. - - The input stream. - The output stream. - - - - Provides extended string formatting functionality. - - - - - The formatting expression. - - - - - Replaces the format items in the specified string. - - The culture specific format provider. - The format string. - The item. - The values. - The formatted string. - The format string and values works as in String.Format. - In addition, you can format properties of the item object by using the syntax - {PropertyName:Formatstring}. - E.g. if you have a "Value" property in your item's class, use "{Value:0.00}" to output the value with two digits. - Note that this formatting is using reflection and does not have the same performance as string.Format. - - - - Provides functionality to generate fraction strings from double values. - - Examples: "3/4", "PI/2" - - - - Converts a double to a fraction string. - - The value. - The unit. - The unit symbol. - The tolerance. - The format Provider. - The format string. - The convert to fraction string. - - - - Calculates the greatest common divisor. - - The a. - The b. - The greatest common divisor. - - - - Calculates the greatest common factor. - - The x. - The y. - The greatest common factor. - - - - Provides functionality to build arrays. - - - - - Creates a vector. - - The first value. - The last value. - The number of steps. - A vector. - - - - Creates a vector. - - The first value. - The last value. - The step size. - A vector. - - - - Evaluates the specified function. - - The function. - The x values. - The y values. - Array of evaluations. The value of f(x_i,y_j) will be placed at index [i, j]. - - - - Fills the array with the specified value. - - The array to fill. - The value. - - - - Fills the two-dimensional array with the specified value. - - The two-dimensional array. - The value. - - - - Provides extension methods based on reflection. - - - - - Fills a target by the specified property of a source target/enumerable. - - The type of the destination target items (and the source property). - The target list to be filled. - The source target. - The property name. - Could not find property. - - - - Adds data points from the specified source to the specified destination. - - The destination target. - The source. - The x-coordinate data field. - The y-coordinate data field. - - - - Provides functionality to create contours from a triangular mesh. - - - Ported from C / Fortran code by Paul Bourke. - See Conrec for - full description of code and the original source. - - - Contouring aids in visualizing three dimensional surfaces on a two dimensional - medium (on paper or in this case a computer graphics screen). Two most common - applications are displaying topological features of an area on a map or the air - pressure on a weather map. In all cases some parameter is plotted as a function - of two variables, the longitude and latitude or x and y axis. One problem with - computer contouring is the process is usually CPU intensive and the algorithms - often use advanced mathematical techniques making them susceptible to error. - - - - - Contour is a contouring subroutine for rectangularily spaced data - It emits calls to a line drawing subroutine supplied by the user - which draws a contour map corresponding to data on a randomly - spaced rectangular grid. The coordinates emitted are in the same - units given in the x() and y() arrays. - Any number of contour levels may be specified but they must be - in order of increasing value. - - Matrix of data to contour. - Data matrix column coordinates. - Data matrix row coordinates. - Contour levels in increasing order. - The renderer. - - - - Renderer delegate - - Start point x-coordinate - Start point y-coordinate - End point x-coordinate - End point y-coordinate - Contour level - - - - Represents an image. - - - - - The image data. - - - - - The pixels - - - - - Initializes a new instance of the class from the specified stream. - - A stream that provides the image data. - - - - Initializes a new instance of the class from a byte array. - - The image bytes. - - - - Creates an image from 8-bit indexed pixels. - - The pixels indexed as [x,y]. [0,0] is top-left. - The palette. - The image format. - The encoder options. - An - - - - Creates an image from 32-bit true-color pixels. - - The pixels indexed as [x,y]. [0,0] is top-left. - The image format. - The encoder options. - An - - - - Gets the image data. - - The image data as a byte array. - - - - Gets the pixels of the image. - - The pixels in an array [width,height]. [0,0] is top-left. - - - - Gets the for the specified format. - - The image format. - The . - - - - Gets the for the specified format. - - The image format. - The image encoder options. - The . - - - - Gets the image format. - - The image bytes. - The - - - - Gets the byte array from the specified stream. - - The stream. - A byte array. - - - - Updates the image information. - - - - - Gets the image format. - - The format. - - - - Gets the width of the image. - - The width. - - - - Gets the height of the image. - - The height. - - - - Gets the number of bits per pixel. - - The bits per pixel. - - - - Gets the horizontal resolution of the image. - - The resolution in dots per inch (dpi). - - - - Gets the vertical resolution of the image. - - The resolution in dots per inch (dpi). - - - - Provides information about an . - - - - - Gets or sets the width in pixels. - - The width. - - - - Gets or sets the height in pixels. - - The height. - - - - Gets or sets the bits per pixel. - - The bits per pixel. - - - - Gets or sets the horizontal resolution of the image. - - The resolution in dots per inch (dpi). - - - - Gets or sets the vertical resolution of the image. - - The resolution in dots per inch (dpi). - - - - Provides an abstract base class for image encoder options. - - - - - Initializes a new instance of the class. - - - - - Gets or sets the horizontal resolution (in dots per inch). - - The resolution. The default value is 96 dpi. - - - - Gets or sets the vertical resolution (in dots per inch). - - The resolution. The default value is 96 dpi. - - - - Defines the image format. - - - - - The image is a PNG image. - - - - - The image is a bitmap image. - - - - - The image is a JPEG image. - - - - - The image format is unknown. - - - - - Specifies functionality to decode an image. - - - - - Gets information about the image in the specified byte array. - - The image data. - An structure. - - - - Decodes an image from the specified byte array. - - The image data. - The 32-bit pixel data. The indexing is [x,y] where [0,0] is top-left. - - - - Specifies functionality to encode an image. - - - - - Encodes the specified pixels. - - The pixel data. The indexing is [x,y] where [0,0] is top-left. - The image data. - - - - Encodes the specified 8-bit indexed pixels. - - The indexed pixel data. The indexing is [x,y] where [0,0] is top-left. - The palette. - The image data. - - - - Implements support for decoding bmp images. - - - - - Gets information about the image in the specified byte array. - - The image data. - - An structure. - - - - - Decodes an image from the specified byte array. - - The image data. - - The 32-bit pixel data. - - - - - Implements support for encoding bmp images. - - - - - The options - - - - - Initializes a new instance of the class. - - The options. - - - - Encodes the specified image data to png. - - The pixel data (bottom line first). - The png image data. - - - - Encodes the specified 8-bit indexed pixels. - - The pixels. - The palette. - The image data. - - - - Writes the bitmap info header. - - The writer. - The width. - The height. - The number of bits per pixel. - The length of the pixel data. - The horizontal resolution (dpi). - The vertical resolution (dpi). - The number of colors. - - - - Writes the bitmap V4 header. - - The writer. - The width. - The height. - The number of bits per pixel. - The length. - The resolution. - The number of colors. - - - - Represents options for the . - - - - - Implements support for decoding png images. - - - - - Gets information about the image in the specified byte array. - - The image data. - An structure. - Wrong length of pHYs chunk. - - - - Decodes an image from the specified byte array. - - The image data. - The 32-bit pixel data, indexed as [x,y]. - - - - Deflates the specified bytes. - - The bytes. - The deflated bytes. - - - - Defines the color type - - - - - Gray scale - - - - - True color - - - - - Indexed color - - - - - Gray scale with alpha - - - - - True color with alpha - - - - - Defines the compression method. - - - - - DEFLATE compression - - - - - Defines the filter method. - - - - - No filter. - - - - - Sub filter - - - - - Up filter - - - - - Average filter - - - - - Paeth filter - - - - - Defines interlace methods (chapter 8.2) - - - - - The null method, pixels are extracted sequentially from left to right, and scan lines sequentially from top to bottom. - - - - - Adam7, defines seven distinct passes over the image. Each pass transmits a subset of the pixels in the reference image. - The pass in which each pixel is transmitted (numbered from 1 to 7) is defined by replicating a 8-by-8 pattern over the - entire image, starting at the upper left corner. - - - - - Implements support for encoding png images. - - - - - The CRC table - - - - - The options - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - The options. - - - - Encodes the specified image data to png. - - The pixel data indexed as [x,y] (bottom line first). - The png image data. - - - - Encodes the specified 8-bit indexed pixels. - - The pixels. - The palette. - The image data. - - - - Calculates the Adler-32 check sum. - - The data. - The check sum. - - - - Creates the header data. - - The width. - The height. - The header. - - - - Creates the physical dimensions data. - - The horizontal resolution. - The vertical resolution. - The data. - - - - Creates the uncompressed blocks. - - The data. - The output data. - - - - Updates the CRC check sum. - - The input CRC. - The data. - The updated CRC. - - - - Writes the integer value with big endian byte order. - - The writer. - The value. - - - - Writes the unsigned integer value with big endian byte order. - - The writer. - The value. - - - - Writes a png chunk. - - The writer. - The chunk type. - The chunk data. - - - - Provides a binary writer that writes to memory. - - - - - Initializes a new instance of the class. - - - - - Gets the content as a byte array. - - The byte array. - - - - Represents options for the . - - - - - Provides utilities for s. - - - - - Copies a range of the specified . - - The type of the array items. - The source array. - The start index. - The end index. - An containing the items from index to index . - - - - Copies the first items of the specified . - - The type of the array items. - The source array. - The number of items to copy. - An containing the items from index 0 to index . - - - - Fills the specified array with values in the specified range. - - The type of the array items. - The source array. - The start index. - The end index. - The value to fill. - - - - Implements a binary reader that can read bits. - - - - - Reads a byte from the stream. - - The byte. - - - - Reads a bit from the stream. - - Returns 0 or 1 if a bit is available, or throws an EOFException if the end of stream is reached. - - - - Closes this stream and the underlying InputStream. - - - - - Returns the current bit position, which is between 0 and 7 inclusive. The number of bits remaining in the current byte is 8 minus this number. - - The bit position. - - - - Discards the remainder of the current byte and reads the next byte from the stream. - - The byte. - - - - Reads the specified number of bits. - - The number of bits. - The bits. - Reading past EOF. - - - - The byte bit reader. - - - - - The input. - - - - - The bit position. - - Either in the range 0x00 to 0xFF, or -1 if the end of stream is reached - - - - The is end of stream. - - Always between 1 and 8, inclusive - - - - The next bits. - - Underlying byte stream to read from - - - - Initializes a new instance of the class. - - The arguments. - Argument is null - - - - Reads a bit from the stream. Returns 0 or 1 if a bit is available, or -1 if the end of stream is reached. The end of stream always occurs on a byte boundary. - - The . - - - - Reads a bit from the stream. Returns 0 or 1 if a bit is available, or throws an EOFException if the end of stream is reached. - - The . - - - - Gets the bit position. - - The . - - - - Discards the remainder of the current byte and reads the next byte from the stream. - - The . - - - - Closes this stream and the underlying InputStream. - - - - - A canonical Huffman code. Immutable. Code length 0 means no code. - -

- The code is a c# port of the DEFLATE project by Nayuki Minase at github. - Original source code: CircularDictionary.java. -

-

- A canonical Huffman code only describes the code length of each symbol. The codes can be reconstructed from this information. In this implementation, symbols with lower code lengths, breaking ties by lower symbols, are assigned lexicographically lower codes. - Example: - Code lengths (canonical code): - Symbol A: 1 - Symbol B: 3 - Symbol C: 0 (no code) - Symbol D: 2 - Symbol E: 3 - Huffman codes (generated from canonical code): - Symbol A: 0 - Symbol B: 110 - Symbol C: None - Symbol D: 10 - Symbol E: 111 -

-
- - - The code lengths - - - - - Initializes a new instance of the class. - - The code lengths. - The constructor does not check that the array of code lengths results in a complete Huffman tree, being neither underfilled nor overfilled. - - - - Initializes a new instance of the class based on the given code tree. - - The tree. - The symbol limit. - - - - Gets the symbol limit. - - The limit. - - - - Gets the length of the code. - - The symbol. - The length. - Symbol out of range - - - - Converts the canonical code to a code tree. - - The code tree. - This canonical code does not represent a Huffman code tree - or - This canonical code does not represent a Huffman code tree - - - - Builds the code lengths. - - The node. - The depth. - Symbol has more than one code - or - Symbol exceeds symbol limit - or - Illegal node type - - - - Provides a circular dictionary. - - The code is a c# port of the DEFLATE project by Nayuki Minase at github. - Original source code: CircularDictionary.java. - - - - The data - - - - - The mask - - - - - The index - - - - - Initializes a new instance of the class. - - The size of the dictionary. - - - - Appends the specified byte. - - The byte. - - - - Copies the specified bytes to the output writer. - - The distance? - The length. - The writer. - - - - The code tree. - - The code is a c# port of Nayuki Minase's DEFLATE project at GitHub. - Original source code: CodeTree.java. - - - - Stores the code for each symbol, or null if the symbol has no code. - For example, if symbol 5 has code 10011, then codes.get(5) is the list [1, 0, 0, 1, 1]. - - - - - Initializes a new instance of the class. Every symbol in the tree 'root' must be strictly less than 'symbolLimit'. - - The root. - The symbol limit. - - - - Gets the code for the specified symbol. - - The symbol. - A of codes. - - - - Returns a string showing all the codes in this tree. The format is subject to change. Useful for debugging. - - The . - - - - Appends the code of the specified node to the specified . - - The prefix. - The node. - The string builder. - Illegal node type - - - - Builds the code list. - - The node. - The prefix. - - - - Gets the root. - - - - - Implements DEFLATE decompression. - - The code is a c# port of the DEFLATE project by Nayuki Minase at github. - Original source code: Decompressor.java. - - - - The fixed literal length code. - - - - - The fixed distance code. - - - - - The dictionary. - - - - - The input. - - - - - The output. - - - - - The output stream. - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - The reader. - - - - Decompresses the data from the specified . - - The input. - An array of . - - - - Decompresses the data from the specified . - - The input. - An array of . - - - - Decompresses the specified data. - - The input. - An array of . - - - - For handling dynamic Huffman codes. - - A sequence of items. - - - - Decompress an uncompressed block. - - - - - Decompresses a Huffman block. - - The litLen code. - The distance code. - - - - Decodes the specified symbol. - - The code. - The . - - - - Decodes the run length. - - The symbol. - The . - - - - Decodes distance. - - The symbol. - The . - - - - Reads the specified number of bits. - - The number of bits to read. - The . - - - - Represents an internal node. - - - - - Defines the node abstract class. - - Package-private (internal) to prevent accidental sub-classing outside of this package - - - - Initializes a new instance of the class. - - The left child. - The right child. - - - - Gets the left child. - - - - - Gets the right child. - - - - - Represents a leaf. - - - - - Initializes a new instance of the class. - - The symbol. - Illegal symbol value;symbol - - - - Gets the symbol. - - The symbol. - - - - Provides a render context for scalable vector graphics output. - - - - - The writer. - - - - - The disposed flag. - - - - - Initializes a new instance of the class. - - The s. - The width. - The height. - Create an SVG document if set to true. - The text measurer. - The background. - - - - Closes the svg writer. - - - - - Completes the svg element. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - - - - Draws an ellipse. - - The rectangle. - The fill color. - The stroke color. - The thickness. - - - - Draws the polyline from the specified points. - - The points. - The stroke color. - The stroke thickness. - The dash array. - The line join type. - if set to true the shape will be aliased. - - - - Draws the polygon from the specified points. The polygon can have stroke and/or fill. - - The points. - The fill color. - The stroke color. - The stroke thickness. - The dash array. - The line join type. - if set to true the shape will be aliased. - - - - Draws the rectangle. - - The rectangle. - The fill color. - The stroke color. - The stroke thickness. - - - - Draws the text. - - The p. - The text. - The c. - The font family. - Size of the font. - The font weight. - The rotate. - The horizontal alignment. - The vertical alignment. - Size of the max. - - - - Flushes this instance. - - - - - Measures the text. - - The text. - The font family. - Size of the font. - The font weight. - The text size. - - - - Draws the specified portion of the specified at the specified location and with the specified size. - - The source. - The x-coordinate of the upper-left corner of the portion of the source image to draw. - The y-coordinate of the upper-left corner of the portion of the source image to draw. - Width of the portion of the source image to draw. - Height of the portion of the source image to draw. - The x-coordinate of the upper-left corner of drawn image. - The y-coordinate of the upper-left corner of drawn image. - The width of the drawn image. - The height of the drawn image. - The opacity. - Interpolate if set to true. - - - - Releases unmanaged and - optionally - managed resources - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Gets or sets the text measurer. - - The text measurer. - - - - Represents a writer that provides easy generation of Scalable Vector Graphics files. - - - - - The end is written. - - - - - The clip path - - - - - The clip path number - - - - - Initializes a new instance of the class. - - The stream. - The width (in user units). - The height (in user units). - if set to true, the writer will write the xml headers (?xml and !DOCTYPE). - - - - Closes the svg document. - - - - - Writes the end of the document. - - - - - Creates a style. - - The fill color. - The stroke color. - The stroke thickness (in user units). - The line dash array. - The line join type. - A style string. - - - - Writes an ellipse. - - The x-coordinate of the center. - The y-coordinate of the center. - The width. - The height. - The style. - - - - Sets a clipping rectangle. - - The x coordinate of the clipping rectangle. - The y coordinate of the clipping rectangle. - The width of the clipping rectangle. - The height of the clipping rectangle. - - - - Resets the clipping rectangle. - - - - - Writes a portion of the specified image. - - The x-coordinate of the upper-left corner of the portion of the source image to draw. - The y-coordinate of the upper-left corner of the portion of the source image to draw. - Width of the portion of the source image to draw. - Height of the portion of the source image to draw. - The destination x-coordinate. - The destination y-coordinate. - Width of the destination rectangle. - Height of the destination rectangle. - The image. - - - - Writes the specified image. - - The x-coordinate. - The y-coordinate. - The width of the image. - The height of the image. - The image. - - - - Writes a line. - - The first point. - The second point. - The style. - - - - Writes a polygon. - - The points. - The style. - - - - Writes a polyline. - - The points. - The style. - - - - Writes a rectangle. - - The x coordinate. - The y coordinate. - The width. - The height. - The style. - - - - Writes text. - - The position. - The text. - The text color. - The font family. - The font size (in user units). - The font weight. - The rotation angle. - The horizontal alignment. - The vertical alignment. - - - - Converts a color to a svg color string. - - The color. - The color string. - - - - Writes an double attribute. - - The name. - The value. - - - - Writes the clip path attribute. - - - - - Converts a value to a string or to the specified "auto" string if the value is NaN. - - The value. - The string to return if value is NaN. - A string. - - - - Converts a list of points to a string. - - The points. - A string. - - - - Writes the header. - - The width. - The height. - - - - Gets or sets a value indicating whether this writer should produce a stand-alone document. - - - - - Gets or sets the number format. - - The number format. - - - - Provides functionality to export plots to scalable vector graphics. - - - - - Initializes a new instance of the class. - - - - - Exports the specified model to a stream. - - The model. - The output stream. - The width (points). - The height (points). - if set to true, the xml headers will be included (?xml and !DOCTYPE). - The text measurer. - - - - Exports to string. - - The model. - The width (points). - The height (points). - if set to true, the xml headers will be included (?xml and !DOCTYPE). - The text measurer. - The plot as a svg string. - - - - Exports the specified to a . - - The model to export. - The target stream. - - - - Exports the specified to a string. - - The model. - the SVG content as a string. - - - - Gets or sets the width (in user units) of the output area. - - - - - Gets or sets the height (in user units) of the output area. - - - - - Gets or sets a value indicating whether the xml headers should be included. - - - - - Gets or sets the text measurer. - - - - - The OxyPlot.Annotations namespace contains the annotations and related types. - - - - - Represents an annotation that shows a rectangle. - - - - - The rectangle transformed to screen coordinates. - - - - - Initializes a new instance of the class. - - - - - Renders the polygon annotation. - - The render context. - The plot model. - - - - When overridden in a derived class, tests if the plot element is hit by the specified point. - - The hit test arguments. - - The result of the hit test. - - - - - Gets or sets the minimum X. - - The minimum X. - - - - Gets or sets the maximum X. - - The maximum X. - - - - Gets or sets the minimum Y. - - The minimum Y. - - - - Gets or sets the maximum Y. - - The maximum Y. - - - - Represents an annotation that shows text. - - - - - The actual bounds of the text. - - - - - Initializes a new instance of the class. - - - - - Renders the text annotation. - - The render context. - The plot model. - - - - When overridden in a derived class, tests if the plot element is hit by the specified point. - - The hit test arguments. - - The result of the hit test. - - - - - Gets the coordinates of the (rotated) background rectangle. - - The position. - The size. - The padding. - The rotation. - The horizontal alignment. - The vertical alignment. - The background rectangle coordinates. - - - - Gets or sets the fill color of the background rectangle. - - The background. - - - - Gets or sets the position offset (screen coordinates). - - The offset. - - - - Gets or sets the padding of the background rectangle. - - The padding. - - - - Gets or sets the stroke color of the background rectangle. - - The stroke color. - - - - Gets or sets the stroke thickness of the background rectangle. - - The stroke thickness. - - - - Represents an annotation that shows a polygon. - - - - - The polygon points transformed to screen coordinates. - - - - - Initializes a new instance of the class. - - - - - Renders the polygon annotation. - - The render context. - The plot model. - - - - When overridden in a derived class, tests if the plot element is hit by the specified point. - - The hit test arguments. - - The result of the hit test. - - - - - Gets or sets the line join. - - The line join. - - - - Gets or sets the line style. - - The line style. - - - - Gets the points. - - The points. - - - - Represents an annotation that shows a straight line. - - - - - Provides an abstract base class for all annotations that contain paths (lines, functions or polylines). - - - - - Defines whether or not the path should be aliased. - - - - - The actual minimum value on the x axis. - - - - - The actual minimum value on the y axis. - - - - - The actual maximum value on the x axis. - - - - - The actual maximum value on the y axis. - - - - - The points of the line, transformed to screen coordinates. - - - - - Initializes a new instance of the class. - - - - - Renders the annotation on the specified context. - - The render context. - The model. - - - - When overridden in a derived class, tests if the plot element is hit by the specified point. - - The hit test arguments. - - The result of the hit test. - - - - - Gets the screen points. - - The list of points to display on screen for this path. - - - - Calculates the actual minimums and maximums. - - - - - Gets the point on a curve at the specified relative distance along the curve. - - The curve points. - The relative distance along the curve. - The margins. - The position. - The angle. - True if a position was found. - - - - Gets or sets the color of the line. - - - - - Gets or sets the line join. - - The line join. - - - - Gets or sets the line style. - - The line style. - - - - Gets or sets the maximum X coordinate for the line. - - - - - Gets or sets the maximum Y coordinate for the line. - - - - - Gets or sets the minimum X coordinate for the line. - - - - - Gets or sets the minimum Y coordinate for the line. - - - - - Gets or sets the stroke thickness. - - The stroke thickness. - - - - Gets or sets the text margin (along the line). - - The text margin. - - - - Gets or sets the text padding (in the direction of the text). - - The text padding. - - - - Gets or sets the text orientation. - - The text orientation. - - - - Gets or sets the text position relative to the line. - - The text position in the interval [0,1]. - Positions smaller than 0.25 are left aligned at the start of the line - Positions larger than 0.75 are right aligned at the end of the line - Other positions are center aligned at the specified position - - - - Gets or sets a value indicating whether to clip the text within the plot area. - - true if text should be clipped within the plot area; otherwise, false. - - - - Gets or sets a value indicating whether to clip the annotation line by the X axis range. - - true if clipping by the X axis is enabled; otherwise, false. - - - - Gets or sets a value indicating whether to clip the annotation line by the Y axis range. - - true if clipping by the Y axis is enabled; otherwise, false. - - - - Gets or sets a value indicating whether the path is aliased. - - true if is aliased; otherwise, false. - - - - Gets or sets the actual minimum value on the x axis. - - The actual minimum value on the x axis. - - - - Gets or sets the actual minimum value on the y axis. - - The actual minimum value on the y axis. - - - - Gets or sets the actual maximum value on the x axis. - - The actual maximum value on the x axis. - - - - Gets or sets the actual maximum value on the y axis. - - The actual maximum value on the y axis. - - - - Initializes a new instance of the class. - - - - - Gets the screen points. - - The list of points to display on screen for this path. - - - - Gets or sets the y-intercept when Type is LinearEquation. - - The intercept value. - Linear equation y-intercept (the b in y=mx+b). - http://en.wikipedia.org/wiki/Linear_equation - - - - Gets or sets the slope when Type is LinearEquation. - - The slope value. - Linear equation slope (the m in y=mx+b) - http://en.wikipedia.org/wiki/Linear_equation - - - - Gets or sets the type of line equation. - - - - - Gets or sets the X position for vertical lines (only for Type==Vertical). - - - - - Gets or sets the Y position for horizontal lines (only for Type==Horizontal) - - - - - Specifies the definition of the line in a . - - - - - Horizontal line given by the Y property - - - - - Vertical line given by the X property - - - - - Linear equation y=mx+b given by the Slope and Intercept properties - - - - - Specifies the layer for an . - - - - - Render the annotation below the gridlines of the axes. - - - - - Render the annotation below the series. - - - - - Render the annotation above the series. - - - - - Specifies the orientation of the text in an annotation. - - - - - Horizontal text. - - - - - Vertical text. - - - - - Oriented along the line. - - - - - Represents an annotation that shows an arrow. - - - - - The end point in screen coordinates. - - - - - The start point in screen coordinates. - - - - - Initializes a new instance of the class. - - - - - Renders the arrow annotation. - - The render context. - The plot model. - - - - When overridden in a derived class, tests if the plot element is hit by the specified point. - - The hit test arguments. - - The result of the hit test. - - - - - Gets or sets the arrow direction. - - Setting this property overrides the property. - - - - Gets or sets the color of the arrow. - - - - - Gets or sets the end point of the arrow. - - - - - Gets or sets the length of the head (relative to the stroke thickness) (the default value is 10). - - The length of the head. - - - - Gets or sets the width of the head (relative to the stroke thickness) (the default value is 3). - - The width of the head. - - - - Gets or sets the line join type. - - The line join type. - - - - Gets or sets the line style. - - The line style. - - - - Gets or sets the start point of the arrow. - - This property is overridden by the ArrowDirection property, if set. - - - - Gets or sets the stroke thickness (the default value is 2). - - The stroke thickness. - - - - Gets or sets the 'veeness' of the arrow head (relative to thickness) (the default value is 0). - - The 'veeness'. - - - - Represents an annotation that shows an ellipse. - - - - - The rectangle transformed to screen coordinates. - - - - - Initializes a new instance of the class. - - - - - Renders the polygon annotation. - - The render context. - The plot model. - - - - When overridden in a derived class, tests if the plot element is hit by the specified point. - - The hit test arguments. - - The result of the hit test. - - - - - Gets or sets the x-coordinate of the center. - - - - - Gets or sets the y-coordinate of the center. - - - - - Gets or sets the width of the ellipse. - - - - - Gets or sets the height of the ellipse. - - - - - Represents an annotation that shows a function rendered as a path. - - - - - Initializes a new instance of the class. - - - - - Gets the screen points. - - The list of screen points defined by this function annotation. - - - - Gets or sets the type of function. Can be either f(x) or f(y). - - The type of the function. - - - - Gets or sets the y=f(x) equation when Type is Equation. - - - - - Gets or sets the resolution. - - The resolution. - - - - Defines the definition of function in a . - - - - - Curve equation x=f(y) given by the Equation property - - - - - Curve equation y=f(x) given by the Equation property - - - - - Represents an annotation that shows an image. - - - - - The actual bounds of the rendered image. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The image. - The position in screen coordinates. - The horizontal alignment. - The vertical alignment. - - - - Initializes a new instance of the class. - - The image. - The position in data coordinates. - The horizontal alignment. - The vertical alignment. - - - - Initializes a new instance of the class. - - The image. - The x-coordinate relative to the plot area (0-1). - The y-coordinate relative to the plot area (0-1). - The horizontal alignment. - The vertical alignment. - - - - Renders the image annotation. - - The render context. - The plot model. - - - - When overridden in a derived class, tests if the plot element is hit by the specified point. - - The hit test arguments. - - The result of the hit test. - - - - - Gets the point. - - The x. - The y. - The render context. - The model. - The point in screen coordinates. - - - - Gets the vector. - - The x component. - The y component. - The render context. - The model. - The vector in screen coordinates. - - - - Gets or sets the image source. - - The image source. - - - - Gets or sets the horizontal alignment. - - The horizontal alignment. - - - - Gets or sets the X position of the image. - - The X. - - - - Gets or sets the Y position of the image. - - The Y. - - - - Gets or sets the X offset. - - The offset X. - - - - Gets or sets the Y offset. - - The offset Y. - - - - Gets or sets the width. - - The width. - - - - Gets or sets the height. - - The height. - - - - Gets or sets the opacity (0-1). - - The opacity value. - - - - Gets or sets a value indicating whether to apply smooth interpolation to the image. - - true if the image should be interpolated (using a high-quality bi-cubic interpolation); false if the nearest neighbor should be used. - - - - Gets or sets the vertical alignment. - - The vertical alignment. - - - - Represents an annotation that shows a polyline. - - - - - The points. - - - - - Gets the screen points. - - The list of points to display on screen for this path. - - - - Gets the points. - - The points. - - - - Gets or sets the minimum length of the segment. - Increasing this number will increase performance, - but make the curve less accurate. - - The minimum length of the segment. - - - - Gets or sets a value indicating whether this is smooth. - - true if smooth; otherwise, false. - - - - Provides an annotation that shows a tile based map. - - The longitude and latitude range of the map is defined by the range of the x and y axis, respectively. - - - - The image cache. - - - - - The download queue. - - - - - The current number of downloads - - - - - Initializes a new instance of the class. - - - - - Renders the annotation on the specified context. - - The render context. - The model. - - - - Transforms a position to a tile coordinate. - - The latitude. - The longitude. - The zoom. - The x. - The y. - - - - Transforms a tile coordinate (x,y) to a position. - - The x. - The y. - The zoom. - The latitude. - The longitude. - - - - Gets the image from the specified uri. - - The URI. - Get the image asynchronously if set to true. The plot model will be invalidated when the image has been downloaded. - The image. - This method gets the image from cache, or starts an async download. - - - - Downloads the image from the specified URI. - - The URI. - The image - - - - Starts the next download in the queue. - - - - - The download completed, set the image. - - The URI. - The result. - - - - Gets the tile URI. - - The tile x. - The tile y. - The zoom. - The uri. - - - - Gets or sets the max number of simultaneous downloads. - - The max number of downloads. - - - - Gets or sets the URL. - - The URL. - - - - Gets or sets the copyright notice. - - The copyright notice. - - - - Gets or sets the size of the tiles. - - The size of the tiles. - - - - Gets or sets the min zoom level. - - The min zoom level. - - - - Gets or sets the max zoom level. - - The max zoom level. - - - - Gets or sets the opacity. - - The opacity. - - - - The OxyPlot.Axes namespace contains classes that represents the axes of the plots. - - - - - Represents an axis with logarithmic scale. - - See http://en.wikipedia.org/wiki/Logarithmic_scale. - - - - Provides an abstract base class for axes. - - - - - Exponent function. - - - - - Mantissa function. - - - - - The offset. - - - - - The scale. - - - - - The position of the axis. - - - - - Initializes a new instance of the class. - - - - - Creates tick values at the specified interval. - - The start value. - The end value. - The interval. - The maximum number of ticks (optional). The default value is 1000. - A sequence of values. - Step cannot be zero or negative.;step - - - - Converts the value of the specified object to a double precision floating point number. DateTime objects are converted using DateTimeAxis.ToDouble and TimeSpan objects are converted using TimeSpanAxis.ToDouble - - The value. - The floating point number value. - - - - Transforms the specified point from screen space to data space. - - The point. - The x axis. - The y axis. - The data point. - - - - Coerces the actual maximum and minimum values. - - - - - Formats the value to be used on the axis. - - The value. - The formatted value. - - - - Gets the coordinates used to draw ticks and tick labels (numbers or category names). - - The major label values. - The major tick values. - The minor tick values. - - - - Gets the value from an axis coordinate, converts from a coordinate value to the actual data type. - - The coordinate. - The converted value. - Examples: The returns the and returns category strings. - - - - Inverse transform the specified screen point. - - The x coordinate. - The y coordinate. - The y-axis. - The data point. - - - - Inverse transforms the specified screen coordinate. This method can only be used with non-polar coordinate systems. - - The screen coordinate. - The value. - - - - Determines whether the axis is horizontal. - - true if the axis is horizontal; otherwise, false . - - - - Determines whether the specified value is valid. - - The value. - true if the specified value is valid; otherwise, false . - - - - Determines whether the axis is vertical. - - true if the axis is vertical; otherwise, false . - - - - Determines whether the axis is used for X/Y values. - - true if it is an XY axis; otherwise, false . - - - - Measures the size of the axis (maximum axis label width/height). - - The render context. - The size of the axis. - - - - Pans the specified axis. - - The previous point (screen coordinates). - The current point (screen coordinates). - - - - Pans the specified axis. - - The delta. - - - - Renders the axis on the specified render context. - - The render context. - The model. - The rendering order. - The pass. - - - - Resets the user's modification (zooming/panning) to minimum and maximum of this axis. - - - - - Returns a that represents this instance. - - A that represents this instance. - - - - Transforms the specified point to screen coordinates. - - The x value (for the current axis). - The y value. - The y axis. - The transformed point. - - - - Transforms the specified coordinate to screen coordinates. This method can only be used with non-polar coordinate systems. - - The value. - The transformed value (screen coordinate). - - - - Zoom to the specified scale. - - The new scale. - - - - Zooms the axis to the range [x0,x1]. - - The new minimum. - The new maximum. - - - - Zooms the axis at the specified coordinate. - - The zoom factor. - The coordinate to zoom at. - - - - Zooms the axis with the specified zoom factor at the center of the axis. - - The zoom factor. - - - - Modifies the data range of the axis [DataMinimum,DataMaximum] to includes the specified value. - - The value. - - - - Resets the and values. - - - - - Updates the and values. - - If the user has zoomed/panned the axis, the internal ViewMaximum/ViewMinimum - values will be used. If Maximum or Minimum have been set, these values will be used. Otherwise the maximum and minimum values - of the series will be used, including the 'padding'. - - - - Updates the axis with information from the plot series. - - The series collection. - This is used by the category axis that need to know the number of series using the axis. - - - - Updates the actual minor and major step intervals. - - The plot area rectangle. - - - - Updates the scale and offset properties of the transform from the specified boundary rectangle. - - The bounds. - - - - Resets the current values. - - The current values may be modified during update of max/min and rendering. - - - - Applies a transformation after the inverse transform of the value. - - The value to transform. - The transformed value. - If this method is overridden, the method must also be overridden. - See for examples on how to implement this. - - - - Applies a transformation before the transform the value. - - The value to transform. - The transformed value. - If this method is overridden, the method must also be overridden. - See for examples on how to implement this. - - - - Formats the value to be used on the axis. - - The value to format. - The formatted value. - - - - Calculates the actual maximum value of the axis, including the . - - The new actual maximum value of the axis. - - - - Calculates the actual minimum value of the axis, including the . - - The new actual minimum value of the axis. - - - - Sets the transform. - - The new scale. - The new offset. - - - - Calculates the actual interval. - - Size of the available area. - Maximum length of the intervals. - The calculate actual interval. - - - - Returns the actual interval to use to determine which values are displayed in the axis. - - The available size. - The maximum interval size. - The range. - Actual interval to use to determine which values are displayed in the axis. - - - - Calculates the minor interval. - - The major interval. - The minor interval. - - - - Raises the event. - - The instance containing the event data. - - - - Raises the event. - - The instance containing the event data. - - - - Occurs when the axis has been changed (by zooming, panning or resetting). - - - - - Occurs when the transform changed (size or axis range was changed). - - - - - Gets or sets the absolute maximum. This is only used for the UI control. It will not be possible to zoom/pan beyond this limit. The default value is double.MaxValue. - - - - - Gets or sets the absolute minimum. This is only used for the UI control. It will not be possible to zoom/pan beyond this limit. The default value is double.MinValue. - - - - - Gets or sets the actual major step. - - - - - Gets or sets the actual maximum value of the axis. - - If is not NaN, this value will be defined by . - Otherwise, if is not NaN, this value will be defined by . - Otherwise, this value will be defined by the maximum (+padding) of the data. - - - - Gets or sets the actual minimum value of the axis. - - If is not NaN, this value will be defined by . - Otherwise, if is not NaN, this value will be defined by . - Otherwise this value will be defined by the minimum (+padding) of the data. - - - - Gets or sets the actual minor step. - - - - - Gets or sets the actual string format being used. - - - - - Gets the actual title of the axis. - - If the property is set, the property is used to format the actual title. - - - - Gets or sets the orientation angle (degrees) for the axis labels. The default value is 0. - - - - - Gets or sets the distance from the end of the tick lines to the labels. The default value is 4. - - - - - Gets or sets the minimum distance from the axis labels to the axis title. The default value is 4. - - - - - Gets or sets the distance between the plot area and the axis. The default value is 0. - - - - - Gets or sets the color of the axis line. The default value is . - - - - - Gets or sets the line style of the axis line. The default value is . - - - - - Gets or sets the thickness of the axis line. The default value is 1. - - - - - Gets or sets a value indicating whether to clip the axis title. The default value is true. - - - - - Gets or sets the maximum value of the data displayed on this axis. - - - - - Gets or sets the minimum value of the data displayed on this axis. - - - - - Gets or sets the end position of the axis on the plot area. The default value is 1. - - The position is defined by a fraction in the range from 0 to 1, where 0 is at the bottom/left - and 1 is at the top/right. - - - - Gets or sets the color of the extra gridlines. The default value is . - - - - - Gets or sets the line style of the extra gridlines. The default value is . - - - - - Gets or sets the thickness of the extra gridlines. The default value is 1. - - - - - Gets or sets the values for the extra gridlines. The default value is null. - - - - - Gets or sets the filter function. The default value is null. - - - - - Gets or sets the maximum value that can be shown using this axis. Values greater or equal to this value will not be shown. The default value is double.MaxValue. - - - - - Gets or sets the minimum value that can be shown using this axis. Values smaller or equal to this value will not be shown. The default value is double.MinValue. - - - - - Gets or sets the maximum length (screen space) of the intervals. The available length of the axis will be divided by this length to get the approximate number of major intervals on the axis. The default value is 60. - - - - - Gets or sets a value indicating whether this axis is visible. The default value is true. - - - - - Gets or sets a value indicating whether panning is enabled. The default value is true. - - - - - Gets a value indicating whether this axis is reversed. It is reversed if > . - - - - - Gets or sets a value indicating whether zooming is enabled. The default value is true. - - - - - Gets or sets the key of the axis. This can be used to specify an axis if you have defined multiple axes in a plot. The default value is null. - - - - - Gets or sets the formatting function for the labels. The default value is null. - - This function can be used instead of overriding the method. - - - - Gets or sets the layer of the axis. The default value is . - - - - - Gets or sets the color of the major gridlines. The default value is #40000000. - - - - - Gets or sets the line style of the major gridlines. The default value is . - - - - - Gets or sets the thickness of the major gridlines. The default value is 1. - - - - - Gets or sets the interval between major ticks. The default value is double.NaN. - - - - - Gets or sets the size of the major ticks. The default value is 7. - - - - - Gets or sets the maximum value of the axis. The default value is double.NaN. - - - - - Gets or sets the 'padding' fraction of the maximum value. The default value is 0.01. - - A value of 0.01 gives 1% more space on the maximum end of the axis. This property is not used if the property is set. - - - - Gets or sets the minimum value of the axis. The default value is double.NaN. - - - - - Gets or sets the 'padding' fraction of the minimum value. The default value is 0.01. - - A value of 0.01 gives 1% more space on the minimum end of the axis. This property is not used if the property is set. - - - - Gets or sets the minimum range of the axis. Setting this property ensures that ActualMaximum-ActualMinimum > MinimumRange. The default value is 0. - - - - - Gets or sets the color of the minor gridlines. The default value is #20000000. - - - - - Gets or sets the line style of the minor gridlines. The default value is . - - - - - Gets or sets the thickness of the minor gridlines. The default value is 1. - - - - - Gets or sets the interval between minor ticks. The default value is double.NaN. - - - - - Gets or sets the size of the minor ticks. The default value is 4. - - - - - Gets the offset. This is used to transform between data and screen coordinates. - - - - - Gets or sets the position of the axis. The default value is . - - - - - Gets or sets a value indicating whether the axis should be positioned at the zero-crossing of the related axis. The default value is false. - - - - - Gets or sets the position tier which defines in which tier the axis is displayed. The default value is 0. - - The bigger the value the further afar is the axis from the graph. - - - - Gets the scaling factor of the axis. This is used to transform between data and screen coordinates. - - - - - Gets or sets the screen coordinate of the maximum end of the axis. - - - - - Gets or sets the screen coordinate of the minimum end of the axis. - - - - - Gets or sets a value indicating whether minor ticks should be shown. The default value is true. - - - - - Gets or sets the start position of the axis on the plot area. The default value is 0. - - The position is defined by a fraction in the range from 0 to 1, where 0 is at the bottom/left - and 1 is at the top/right. - - - - Gets or sets the string format used for formatting the axis values. The default value is null. - - - - - Gets or sets the tick style for major and minor ticks. The default value is . - - - - - Gets or sets the color of the major and minor ticks. The default value is . - - - - - Gets or sets the title of the axis. The default value is null. - - - - - Gets or sets the length of the title clipping rectangle (fraction of the available length of the axis). The default value is 0.9. - - - - - Gets or sets the color of the title. The default value is . - - If the value is null, the will be used. - - - - Gets or sets the title font. The default value is null. - - - - - Gets or sets the size of the title font. The default value is double.NaN. - - - - - Gets or sets the weight of the title font. The default value is . - - - - - Gets or sets the format string used for formatting the title and unit when is defined. - The default value is "{0} [{1}]", where {0} refers to the and {1} refers to the . - - If is null, the actual title is defined by only. - - - - Gets or sets the position of the title. The default value is 0.5. - - The position is defined by a fraction in the range 0 to 1. - - - - Gets or sets the unit of the axis. The default value is null. - - The is used to format the title including this unit. - - - - Gets or sets a value indicating whether to use superscript exponential format. The default value is false. - - - This format will convert 1.5E+03 to 1.5·10^{3} and render the superscript properly. - If is null, 1.0E+03 will be converted to 10^{3}, otherwise it will use the format string for the mantissa. - - - - - Gets or sets the position tier max shift. - - - - - Gets or sets the position tier min shift. - - - - - Gets or sets the size of the position tier. - - - - - Gets the actual color of the title. - - - - - Gets the actual title font. - - - - - Gets the actual size of the title font. - - - - - Gets the actual title font weight. - - - - - Gets or sets the current view's maximum. This value is used when the user zooms or pans. - - The view maximum. - - - - Gets or sets the current view's minimum. This value is used when the user zooms or pans. - - The view minimum. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The position. - The title. - - - - Initializes a new instance of the class. - - The position. - The title. - The minimum value. - The maximum value. - - - - Coerces the actual maximum and minimum values. - - - - - Gets the coordinates used to draw ticks and tick labels (numbers or category names). - - The major label values. - The major tick values. - The minor tick values. - - - - Determines whether the axis is used for X/Y values. - - true if it is an XY axis; otherwise, false . - - - - Pans the specified axis. - - The previous point (screen coordinates). - The current point (screen coordinates). - - - - Inverse transforms the specified screen coordinate. This method can only be used with non-polar coordinate systems. - - The screen coordinate. - The value. - - - - Transforms the specified coordinate to screen coordinates. - - The value. - The transformed value (screen coordinate). - - - - Zooms the axis at the specified coordinate. - - The zoom factor. - The coordinate to zoom at. - - - - Updates the and values. - - - If the user has zoomed/panned the axis, the internal ViewMaximum/ViewMinimum - values will be used. If Maximum or Minimum have been set, these values will be used. Otherwise the maximum and minimum values - of the series will be used, including the 'padding'. - - - - - Applies a transformation after the inverse transform of the value. This is used in logarithmic axis. - - The value to transform. - The transformed value. - - - - Applies a transformation before the transform the value. This is used in logarithmic axis. - - The value to transform. - The transformed value. - - - - Gets or sets the logarithmic base (normally 10). - - The logarithmic base. - See http://en.wikipedia.org/wiki/Logarithm. - - - - Gets or sets a value indicating whether the ActualMaximum and ActualMinimum values should be padded to the nearest power of the Base. - - - - - Represents a color axis that contains colors for specified ranges. - - - - - Represents an axis with linear scale. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The position of the axis. - The title. - - - - Initializes a new instance of the class. - - The position of the axis. - The minimum value. - The maximum value. - The title. - - - - Initializes a new instance of the class. - - The position of the axis. - The minimum value. - The maximum value. - The major step. - The minor step. - The title. - - - - Determines whether the axis is used for X/Y values. - - true if it is an XY axis; otherwise, false . - - - - Formats the value to be used on the axis. - - The value to format. - The formatted value. - - - - Gets or sets a value indicating whether to format numbers as fractions. - - - - - Gets or sets the fraction unit. Remember to set FormatAsFractions to true. - - The fraction unit. - - - - Gets or sets the fraction unit symbol. Use FractionUnit = Math.PI and FractionUnitSymbol = "π" if you want the axis to show "π/2,π,3π/2,2π" etc. Use FractionUnit = 1 and FractionUnitSymbol = "L" if you want the axis to show "0,L/2,L" etc. Remember to set FormatAsFractions to true. - - The fraction unit symbol. - - - - Specifies functionality for color axes. - - - - - Gets the color of the specified index in the color palette. - - The color map index (less than NumberOfEntries). - The color. - - - - Gets the palette index of the specified value. - - The value. - The palette index. - If the value is less than minimum, 0 is returned. If the value is greater than maximum, Palette.Colors.Count+1 is returned. - - - - The ranges - - - - - Initializes a new instance of the class. - - - - - Adds a range. - - The lower bound. - The upper bound. - The color. - - - - Gets the palette index of the specified value. - - The value. - The palette index. - If the value is less than minimum, 0 is returned. If the value is greater than maximum, Palette.Colors.Count+1 is returned. - - - - Gets the color. - - The color map index. - The color. - - - - Renders the axis on the specified render context. - - The render context. - The model. - The rendering order. - The render pass. - - - - Gets or sets the color used to represent NaN values. - - A that defines the color. The default value is OxyColors.Gray. - - - - Gets or sets the color of values above the maximum value. - - The color of the high values. - - - - Gets or sets the color of values below the minimum value. - - The color of the low values. - - - - Defines a range. - - - - - Gets or sets the color. - - The color. - - - - Gets or sets the lower bound. - - The lower bound. - - - - Gets or sets the upper bound. - - The upper bound. - - - - Represents an angular axis for polar plots. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The minimum value. - The maximum value. - The major step. - The minor step. - The title. - - - - Gets the coordinates used to draw ticks and tick labels (numbers or category names). - - The major label values. - The major tick values. - The minor tick values. - - - - Inverse transforms the specified screen point. - - The x coordinate. - The y coordinate. - The y-axis. - The data point. - Angle axis should always be the y-axis. - - - - Determines whether the axis is used for X/Y values. - - true if it is an XY axis; otherwise, false . - - - - Renders the axis on the specified render context. - - The render context. - The model. - The rendering order. - The pass. - - - - Transforms the specified point to screen coordinates. - - The x value (for the current axis). - The y value. - The y axis. - The transformed point. - - - - Updates the scale and offset properties of the transform from the specified boundary rectangle. - - The bounds. - - - - Gets or sets the start angle (degrees). - - - - - Gets or sets the end angle (degrees). - - - - - Provides additional data for the event. - - - - - Initializes a new instance of the class. - - Type of the change. - - - - Gets or sets the type of the change. - - The type of the change. - - - - Defines change types for the event. - - - - - The axis was zoomed by the user. - - - - - The axis was panned by the user. - - - - - The axis zoom/pan was reset by the user. - - - - - Specifies the layer of an . - - - - - Below all series. - - - - - Above all series. - - - - - Specifies the position of an . - - - - - No position. - - - - - Left of the plot area. - - - - - Right of the plot area. - - - - - Top of the plot area. - - - - - Bottom of the plot area. - - - - - Represents a category axis. - - The category axis is using the index of the label collection items as coordinates. - If you have 5 categories in the Labels collection, the categories will be placed at coordinates 0 to 4. - The range of the axis will be from -0.5 to 4.5 (excluding padding). - - - - The labels. - - - - - The labels from the . - - - - - The current offset of the bars (not used for stacked bar series). - - These offsets are modified during rendering. - - - - The current max value per StackIndex and Label. - - These values are modified during rendering. - - - - The current min value per StackIndex and Label. - - These values are modified during rendering. - - - - The base value per StackIndex and Label for positive values of stacked bar series. - - These values are modified during rendering. - - - - The base value per StackIndex and Label for negative values of stacked bar series. - - These values are modified during rendering. - - - - The maximum stack index. - - - - - The maximal width of all labels. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The position. - The title. - The categories. - - - - Initializes a new instance of the class. - - The title. - The categories. - - - - Gets the maximum width of all category labels. - - The maximum width. - - - - Gets the category value. - - Index of the category. - Index of the stack. - Actual width of the bar. - The get category value. - - - - Gets the category value. - - Index of the category. - The get category value. - - - - Gets the coordinates used to draw ticks and tick labels (numbers or category names). - - The major label values. - The major tick values. - The minor tick values. - - - - Gets the value from an axis coordinate, converts from double to the correct data type if necessary. e.g. DateTimeAxis returns the DateTime and CategoryAxis returns category strings. - - The coordinate. - The value. - - - - Gets the current bar offset for the specified category index. - - The category index. - The offset. - - - - Increases the current bar offset for the specified category index. - - The category index. - The offset increase. - - - - Gets the current base value for the specified stack and category index. - - The stack index. - The category index. - if set to true get the base value for negative values. - The current base value. - - - - Sets the current base value for the specified stack and category index. - - Index of the stack. - Index of the category. - if set to true set the base value for negative values. - The new value. - - - - Gets the current maximum value for the specified stack and category index. - - The stack index. - The category index. - The current value. - - - - Sets the current maximum value for the specified stack and category index. - - The stack index. - The category index. - The new value. - - - - Gets the current minimum value for the specified stack and category index. - - The stack index. - The category index. - The current value. - - - - Sets the current minimum value for the specified stack and category index. - - The stack index. - The category index. - The new value. - - - - Gets the stack index for the specified stack group. - - The stack group. - The stack index. - - - - Updates the actual maximum and minimum values. If the user has zoomed/panned the axis, the internal ViewMaximum/ViewMinimum values will be used. If Maximum or Minimum have been set, these values will be used. Otherwise the maximum and minimum values of the series will be used, including the 'padding'. - - - - - Updates the axis with information from the plot series. - - The series collection. - This is used by the category axis that need to know the number of series using the axis. - - - - Resets the current values. - - The current values may be modified during update of max/min and rendering. - - - - Formats the value to be used on the axis. - - The value to format. - The formatted value. - - - - Creates Labels list if no labels were set - - The list of series which are rendered - - - - Gets or sets the gap width. - - The default value is 1.0 (100%). The gap width is given as a fraction of the total width/height of the items in a category. - - - - Gets or sets a value indicating whether the ticks are centered. If this is false, ticks will be drawn between each category. If this is true, ticks will be drawn in the middle of each category. - - - - - Gets or sets the items source (used to update the Labels collection). - - The items source. - - - - Gets or sets the data field for the labels. - - - - - Gets the list of category labels. - - - - - Gets the actual category labels. - - - The actual labels. - - - - - Gets or sets the original offset of the bars (not used for stacked bar series). - - - - - Gets or sets the stack index mapping. The mapping indicates to which rank a specific stack index belongs. - - - - - Gets or sets the offset of the bars per StackIndex and Label (only used for stacked bar series). - - - - - Gets or sets sum of the widths of the single bars per label. This is used to find the bar width of BarSeries - - - - - Represents a categorized color axis. - - - - - Initializes a new instance of the class. - - - - - Gets the color of the specified index in the color palette. - - The color map index (less than NumberOfEntries). - The color. - - - - Gets the palette index of the specified value. - - The value. - The palette index. - If the value is less than minimum, 0 is returned. If the value is greater than maximum, Palette.Colors.Count+1 is returned. - - - - Renders the axis on the specified render context. - - The render context. - The model. - The layer. - The pass. - - - - Gets the high value of the specified palette index. - - Index of the palette. - The value. - - - - Gets the high value. - - Index of the palette. - The major label values. - The value. - - - - Gets the low value. - - Index of the palette. - The major label values. - The value. - - - - Gets or sets the invalid category color. - - The color. - - - - Gets or sets the palette. - - The palette. - - - - Provides extension methods for . - - - - - Gets the color for the specified value. - - The axis. - The value. - The color. - - - - Represents a linear color axis. - - - - - Initializes a new instance of the class. - - - - - Determines whether the axis is used for X/Y values. - - true if it is an XY axis; otherwise, false . - - - - Gets the color. - - The color map index (less than NumberOfEntries). - The color. - - - - Gets the colors. - - The colors. - - - - Gets the palette index of the specified value. - - The value. - The palette index. - If the value is less than minimum, 0 is returned. If the value is greater than maximum, Palette.Colors.Count+1 is returned. - - - - Renders the axis on the specified render context. - - The render context. - The model. - The rendering order. - The render pass. - - - - Gets the high value of the specified palette index. - - Index of the palette. - The value. - - - - Gets the low value of the specified palette index. - - Index of the palette. - The value. - - - - Generates the image used to render the color axis. - - Reverse the colors if set to true. - An used to render the color axis. - - - - Gets or sets the color used to represent NaN values. - - A that defines the color. The default value is OxyColors.Gray. - - - - Gets or sets the color of values above the maximum value. - - The color of the high values. - - - - Gets or sets the color of values below the minimum value. - - The color of the low values. - - - - Gets or sets the palette. - - The palette. - - - - Gets or sets a value indicating whether to render the colors as an image. - - true if the rendering should use an image; otherwise, false. - - - - Represents an axis presenting values. - - The actual numeric values on the axis are days since 1900/01/01. - Use the static ToDouble and ToDateTime to convert numeric values to and from DateTimes. - The StringFormat value can be used to force formatting of the axis values - "yyyy-MM-dd" shows date - "w" or "ww" shows week number - "h:mm" shows hours and minutes - - - - The time origin. - - This gives the same numeric date values as Excel - - - - The maximum day value - - - - - The minimum day value - - - - - The actual interval type. - - - - - The actual minor interval type. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The position of the axis. - The axis title. - The string format for the axis values. - The interval type. - - - - Initializes a new instance of the class. - - The position of the axis. - The first date/time on the axis. - The last date/time on the axis. - The axis title. - The string format for the axis values. - The interval type. - - - - Creates a data point. - - The x value. - The y value. - A data point. - - - - Creates a data point. - - The x value. - The y value. - A data point. - - - - Creates a data point. - - The x value. - The y value. - A data point. - - - - Converts a numeric representation of the date (number of days after the time origin) to a DateTime structure. - - The number of days after the time origin. - A structure. Ticks = 0 if the value is invalid. - - - - Converts a DateTime to days after the time origin. - - The date/time structure. - The number of days after the time origin. - - - - Gets the tick values. - - The major label values. - The major tick values. - The minor tick values. - - - - Gets the value from an axis coordinate, converts from double to the correct data type if necessary. - e.g. DateTimeAxis returns the DateTime and CategoryAxis returns category strings. - - The coordinate. - The value. - - - - Updates the intervals. - - The plot area. - - - - Formats the value to be used on the axis. - - The value to format. - The formatted value. - - - - Calculates the actual interval. - - Size of the available area. - Maximum length of the intervals. - The calculate actual interval. - - - - Creates the date tick values. - - The min. - The max. - The step. - Type of the interval. - Date tick values. - - - - Creates tick values. - - The min. - The max. - The interval. - The interval type. - A list of tick values. - - - - Gets the week number for the specified date. - - The date. - The week number for the current culture. - - - - Gets or sets CalendarWeekRule. - - - - - Gets or sets FirstDayOfWeek. - - - - - Gets or sets IntervalType. - - - - - Gets or sets MinorIntervalType. - - - - - Gets or sets the time zone (used when formatting date/time values). - - The time zone info. - No date/time conversion will be performed if this property is null. - - - - Specifies the interval for a . - - - - - Automatically determine interval. - - - - - Manual definition of intervals. - - - - - Interval type is milliseconds. - - - - - Interval type is seconds. - - - - - Interval type is minutes. - - - - - Interval type is hours. - - - - - Interval type is days. - - - - - Interval type is weeks. - - - - - Interval type is months. - - - - - Interval type is years. - - - - - Represents a magnitude axis for polar plots. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The minimum. - The maximum. - The major step. - The minor step. - The title. - - - - Inverse transform the specified screen point. - - The x coordinate. - The y coordinate. - The y-axis. - The data point. - - - - Determines whether the axis is used for X/Y values. - - true if it is an XY axis; otherwise, false . - - - - Renders the axis on the specified render context. - - The render context. - The model. - The rendering order. - The rendering pass. - - - - Transforms the specified point to screen coordinates. - - The x value (for the current axis). - The y value. - The y axis. - The transformed point. - - - - Updates the scale and offset properties of the transform from the specified boundary rectangle. - - The bounds. - - - - Gets or sets the midpoint (screen coordinates) of the plot area. This is used by polar coordinate systems. - - - - - Defines the style of axis ticks. - - - - - The ticks are rendered crossing the axis line. - - - - - The ticks are rendered inside of the plot area. - - - - - The ticks are rendered Outside the plot area. - - - - - The ticks are not rendered. - - - - - Represents an axis presenting values. - - The values should be in seconds. - The StringFormat value can be used to force formatting of the axis values - "h:mm" shows hours and minutes - "m:ss" shows minutes and seconds - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The position of the axis. - The axis title. - The string format for the axis values. - - - - Initializes a new instance of the class. - - The position of the axis. - The minimum value. - The maximum value. - The axis title. - The string format for the axis values. - - - - Converts a time span to a double. - - The time span. - A double value. - - - - Converts a double to a time span. - - The value. - A time span. - - - - Gets the value from an axis coordinate, converts from double to the correct data type if necessary. e.g. DateTimeAxis returns the DateTime and CategoryAxis returns category strings. - - The coordinate. - The value. - - - - Formats the value to be used on the axis. - - The value to format. - The formatted value. - - - - Calculates the actual interval. - - Size of the available area. - Maximum length of the intervals. - The calculate actual interval. - - - - Provides an abstract base class for axis renderers. - - - - - The plot. - - - - - The render context. - - - - - The major label values - - - - - The major tick values - - - - - The minor tick values - - - - - Initializes a new instance of the class. - - The render context. - The plot. - - - - Renders the specified axis. - - The axis. - The pass. - - - - Creates the pens. - - The axis. - - - - Gets the tick positions. - - The axis. - The tick style. - The tick size. - The position. - The x 0. - The x 1. - - - - Determines whether the specified value is within the specified range. - - The value to check. - The minimum value of the range. - The maximum value of the range. - true if the specified value is within the range; otherwise, false. - - - - Gets the plot. - - The plot. - - - - Gets the render context. - - The render context. - - - - Gets or sets the axis lines pen. - - - - - Gets or sets the extra grid lines pen. - - - - - Gets or sets the major label values. - - - - - Gets or sets the major grid lines pen. - - - - - Gets or sets the major tick pen. - - - - - Gets or sets the major tick values. - - - - - Gets or sets the minor grid lines pen. - - - - - Gets or sets the minor tick pen. - - - - - Gets or sets the minor tick values. - - - - - Gets or sets the zero grid line pen. - - - - - Provides functionality to render . - - - - - Initializes a new instance of the class. - - The render context. - The plot. - - - - Renders the specified axis. - - The axis. - The render pass. - Magnitude axis not defined. - - - - Provides functionality to render . - - - - - Initializes a new instance of the class. - - The render context. - The plot. - - - - Renders the specified axis. - - The axis. - The pass. - Angle axis should not be null. - - - - Returns the angle (in radian) of the axis line in screen coordinate - - The axis. - The angle axis. - The angle (in radians). - - - - Choose the most appropriate alignment for tick text - - The actual angle. - The horizontal alignment. - The vertical alignment. - - - - Renders a tick, chooses the best implementation - - The axis. - The angle axis. - The x-value. - The pen. - - - - Renders a tick by drawing an ellipse - - The axis. - The angle axis. - The x-value. - The pen. - - - - Renders a tick by drawing an lot of segments - - The axis. - The angle axis. - The x-value. - The pen. - - - - Renders major tick text - - The axis. - The x-value. - The angle axis. - - - - Provides functionality to render horizontal and vertical axes. - - - - - Initializes a new instance of the class. - - The render context. - The plot. - - - - Renders the specified axis. - - The axis. - The pass. - - - - Interpolates linearly between two values. - - The x0. - The x1. - The interpolation factor. - The interpolated value. - - - - Snaps v to value if it is within the specified distance. - - The target value. - The value to snap. - The distance tolerance. - - - - Gets the axis title position, rotation and alignment. - - The axis. - The title position. - The angle. - The horizontal alignment. - The vertical alignment. - The . - - - - Gets the alignments given the specified rotation angle. - - The angle. - The default horizontal alignment. - The default vertical alignment. - The rotated horizontal alignment. - The rotated vertical alignment. - - - - Renders the axis title. - - The axis. - The title position. - - - - Renders the major items. - - The axis. - The axis position. - The title position. - Draw the axis line if set to true. - - - - Renders the minor items. - - The axis. - The axis position. - - - - Provides a manipulator for panning functionality. - - - - - Initializes a new instance of the class. - - The plot view. - - - - Occurs when the input device changes position during a manipulation. - - The instance containing the event data. - - - - Gets the cursor for the manipulation. - - The cursor. - - - - Occurs when an input device begins a manipulation on the plot. - - The instance containing the event data. - - - - Gets or sets the previous position. - - - - - Provides data for a tracker hit result. - - This is used as DataContext for the TrackerControl. - The TrackerControl is visible when the user use the left mouse button to "track" points on the series. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The series. - The data point. - The screen point. - The item. - The index. - The text. - - - - Returns a that represents this instance. - - A that represents this instance. - - - - Gets or sets the nearest or interpolated data point. - - - - - Gets or sets the source item of the point. - If the current point is from an ItemsSource and is not interpolated, this property will contain the item. - - - - - Gets or sets the index for the Item. - - - - - Gets or sets the horizontal/vertical line extents. - - - - - Gets or sets the plot model. - - - - - Gets or sets the position in screen coordinates. - - - - - Gets or sets the series that is being tracked. - - - - - Gets or sets the text shown in the tracker. - - - - - Gets the X axis. - - - - - Gets the Y axis. - - - - - Provides a plot manipulator for tracker functionality. - - - - - The current series. - - - - - Initializes a new instance of the class. - - The plot view. - - - - Occurs when a manipulation is complete. - - The instance containing the event data. - - - - Occurs when the input device changes position during a manipulation. - - The instance containing the event data. - - - - Gets the cursor for the manipulation. - - The cursor. - - - - Occurs when an input device begins a manipulation on the plot. - - The instance containing the event data. - - - - Gets the nearest tracker hit. - - The series. - The point. - Snap to points. - Check points only (no interpolation). - A tracker hit result. - - - - Gets or sets a value indicating whether to show tracker on points only (not interpolating). - - - - - Gets or sets a value indicating whether to snap to the nearest point. - - - - - Gets or sets a value indicating whether to lock the tracker to the initial series. - - true if the tracker should be locked; otherwise, false. - - - - Provides a manipulator for rectangle zooming functionality. - - - - - The zoom rectangle. - - - - - Initializes a new instance of the class. - - The plot view. - - - - Occurs when a manipulation is complete. - - The instance containing the event data. - - - - Occurs when the input device changes position during a manipulation. - - The instance containing the event data. - - - - Gets the cursor for the manipulation. - - The cursor. - - - - Occurs when an input device begins a manipulation on the plot. - - The instance containing the event data. - - - - Provides a plot view manipulator for stepwise zoom functionality. - - - - - Initializes a new instance of the class. - - The plot view. - - - - Occurs when an input device begins a manipulation on the plot. - - The instance containing the event data. - - - - Gets or sets a value indicating whether FineControl. - - - - - Gets or sets Step. - - - - - Represents a hit test result. - - - - - Initializes a new instance of the class. - - The element that was hit. - The nearest hit point. - The item. - The index. - - - - Gets the index of the hit (if available). - - The index. - If the hit was in the middle between point 1 and 2, index = 1.5. - - - - Gets the item of the hit (if available). - - The item. - - - - Gets the element that was hit. - - - The element. - - - - - Gets the position of the nearest hit point. - - The nearest hit point. - - - - Represents a selection of items (by index) and features (by enumeration type). - - - - - Static instance representing everything (all items and all features) selected. - - - - - The selection (cannot use HashSet{T} in PCL) - - - - - Determines whether everything is selected. - - true if everything is selected; otherwise, false. - - - - Gets the indices of the selected items in this selection. - - Enumerator of indices. - - - - Gets the selected items by the specified feature. - - The feature. - Enumerator of indices. - - - - Clears the selected items. - - - - - Determines whether the specified item and feature is selected. - - The index of the item. - The feature. - true if the item is selected; otherwise, false. - - - - Selects the specified item/feature. - - The index. - The feature. - - - - Unselects the specified item. - - The index of the item. - The feature. - - - - Gets the everything selected. - - The everything. - - - - Represents an item in a . - - - - - The index - - - - - The feature - - - - - Initializes a new instance of the struct. - - The index. - The feature. - - - - Indicates whether the current object is equal to another object of the same type. - - An object to compare with this object. - true if the current object is equal to the parameter; otherwise, false. - - - - Returns a hash code for this instance. - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - - - - Gets the index. - - The index. - - - - Gets the feature. - - The feature. - - - - Defines the mode of selection used by . - - - - - All the elements will be selected - - - - - A single element will be selected - - - - - Multiple elements can be selected - - - - - Provides data for the tracker event. - - - - - Gets or sets the hit result. - - The hit result. - - - - Specifies functionality for the plot views. - - - - - Hides the tracker. - - - - - Invalidates the plot (not blocking the UI thread) - - if set to true, all data bindings will be updated. - - - - Shows the tracker. - - The tracker data. - - - - Stores text on the clipboard. - - The text. - - - - Gets the actual of the control. - - - - - Defines the cursor type. - - - - - The default cursor - - - - - The pan cursor - - - - - The zoom rectangle cursor - - - - - The horizontal zoom cursor - - - - - The vertical zoom cursor - - - - - Represents an item used in the BarSeries. - - - - - Represents an item used in the BarSeriesBase. - - - - - Represents an item in a CategorizedSeries. - - - - - Initializes a new instance of the class. Initializes a new instance of the class. - - - - - Gets the index of the category. - - The default index. - The index. - - - - Gets or sets the index of the category. - - The index of the category. - - - - Initializes a new instance of the class. Initializes a new instance of the class. - - - - - Returns c# code that generates this instance. - - C# code. - - - - Gets or sets the color of the item. - - If the color is not specified (default), the color of the series will be used. - - - - Gets or sets the value of the item. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The value. - Index of the category. - - - - Generic base class that provides common properties and methods for the BarSeries and ColumnSeries. - - The type of the items. - - - - Base class for BarSeries and ColumnSeries. - - - - - Base class for series where the items are categorized. - - - - - The default category axis title - - - - - The default value axis title - - - - - Gets or sets the width/height of the columns/bars (as a fraction of the available space). - - The width of the bars. - The fractional width. - The available space will be determined by the GapWidth of the CategoryAxis used by this series. - - - - Gets the items of this series. - - The items. - - - - Gets the actual bar width/height of the items in this series. - - The width or height. - The actual width is also influenced by the GapWidth of the CategoryAxis used by this series. - - - - Gets the category axis. - - The category axis. - - - - Defines properties for stacked series. - - - - - Gets a value indicating whether this series is stacked. - - - - - Gets the stack group. - - The stack group. - - - - The default tracker format string - - - - - The default fill color. - - - - - Initializes a new instance of the class. - - - - - Gets the nearest point. - - The point. - interpolate if set to true . - A TrackerHitResult for the current hit. - - - - Renders the series on the specified rendering context. - - The rendering context. - The model. - - - - Renders the legend symbol on the specified rendering context. - - The rendering context. - The legend rectangle. - - - - Check if the data series is using the specified axis. - - An axis which should be checked if used - True if the axis is in use. - - - - Sets the default values. - - The model. - - - - Updates the axes to include the max and min of this series. - - - - - Updates the maximum and minimum values of the series. - - - - - Updates the valid items - - - - - Gets the rectangle for the specified values. - - The base value of the bar - The top value of the bar - The begin value of the bar - The end value of the bar - The rectangle. - - - - Gets the tracker text for the specified item. - - The item. - Category index of the item. - The tracker text. - - - - Gets the value axis. - - The value axis. - - - - Checks if the specified value is valid. - - The value. - The y axis. - True if the value is valid. - - - - Renders the bar/column item. - - The render context. - The clipping rectangle. - The end value of the bar. - The category value. - The actual width of the bar. - The item. - The rectangle of the bar. - - - - Renders the item label. - - The render context - The clipping rectangle - The rectangle of the item. - The value of the label. - The index of the bar item. - - - - Gets or sets the base value. - - The base value. - - - - Gets or sets the color field. - - - - - Gets or sets the color of the interior of the bars. - - The color. - - - - Gets the actual fill color. - - The actual color. - - - - Gets or sets a value indicating whether this bar series is stacked. - - - - - Gets or sets the label format string. - - The label format string. - - - - Gets or sets the label margins. - - - - - Gets or sets label placements. - - - - - Gets or sets the color of the interior of the bars when the value is negative. - - The color. - - - - Gets or sets the stack index indication to which stack the series belongs. Default is 0. Hence, all stacked series belong to the same stack. - - - - - Gets or sets the color of the border around the bars. - - The color of the stroke. - - - - Gets or sets the thickness of the bar border strokes. - - The stroke thickness. - - - - Gets or sets the value field. - - - - - Gets or sets the valid items - - - - - Gets or sets the dictionary which stores the index-inversion for the valid items - - - - - Gets or sets the actual rectangles for the bars. - - - - - The items from the items source. - - - - - Specifies if the ownsItemsSourceItems list can be modified. - - - - - Initializes a new instance of the class. Initializes a new instance of the class. - - - - - Gets the items of this series. - - The items. - - - - Updates the data. - - - - - Gets the item at the specified index. - - The index of the item. - The item of the index. - - - - Clears or creates the list. - - - - - Gets the items list. - - A list of or . - - - - Gets the list of items that should be rendered. - - - - - Represents an item used in the ErrorColumnSeries. - - - - - Represents an item used in the ColumnSeries. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The value. - Index of the category. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The value. - The error. - Index of the category. - - - - Returns c# code that generates this instance. - - C# code. - - - - Gets or sets the error of the item. - - - - - Represents a series for clustered or stacked column charts with an error value. - - - - - Represents a series for clustered or stacked column charts. - - - - - Initializes a new instance of the class. - - - - - Gets or sets the width/height of the columns/bars (as a fraction of the available space). - - The width of the bars. - The fractional width. - The available space will be determined by the GapWidth of the CategoryAxis used by this series. - - - - Gets the actual width/height of the items of this series. - - The width or height. - The actual width is also influenced by the GapWidth of the CategoryAxis used by this series. - - - - Gets the category axis. - - The category axis. - - - - Gets the rectangle for the specified values. - - The base value of the bar - The top value of the bar - The begin value of the bar - The end value of the bar - The rectangle. - - - - Gets the value axis. - - The value axis. - - - - Draws the label. - - The render context. - The clipping rectangle. - The column rectangle. - The value. - The index. - - - - Gets or sets the width of the column. - - The width of the column. - - - - Initializes a new instance of the class. - - - - - Updates the maximum and minimum values of the series. - - - - - Renders the bar/column item. - - The render context. - The clipping rectangle. - The end value of the bar. - The category value. - The actual width of the bar. - The item. - The rectangle of the bar. - - - - Gets or sets the stroke thickness of the error line. - - The stroke thickness of the error line. - - - - Gets or sets the width of the error end lines. - - The width of the error end lines. - - - - Represents an item in a . - - - - - Initializes a new instance of the struct. - - The x. - The lower whisker. - The box bottom. - The median. - The box top. - The upper whisker. - The outliers. - The tag. - - - - Returns a that represents this instance. - - A that represents this instance. - - - - Gets or sets the box bottom value (usually the 25th percentile, Q1). - - The lower quartile value. - - - - Gets or sets the box top value (usually the 75th percentile, Q3)). - - The box top value. - - - - Gets or sets the lower whisker value. - - The lower whisker value. - - - - Gets or sets the median. - - The median. - - - - Gets or sets the outliers. - - The outliers. - - - - Gets or sets the tag. - - The tag. - - - - Gets or sets the upper whisker value. - - The upper whisker value. - - - - Gets a list of all the values in the item. - - - - - Gets or sets the X value. - - The X value. - - - - Represents a series for box plots. - - - - - Initializes a new instance of the class. - - - - - Gets the nearest point. - - The point. - interpolate if set to true . - A TrackerHitResult for the current hit. - - - - Determines whether the specified item contains a valid point. - - The item. - The x axis. - The y axis. - true if the point is valid; otherwise, false . - - - - Renders the series on the specified render context. - - The rendering context. - The model. - - - - Renders the legend symbol on the specified rendering context. - - The rendering context. - The legend rectangle. - - - - Updates the maximum and minimum values of the series. - - - - - Updates the max and min of the series. - - The items. - - - - Gets the screen rectangle for the box. - - The box item. - A rectangle. - - - - Gets or sets the width of the boxes (specified in x-axis units). - - The width of the boxes. - - - - Gets or sets the fill color. If null, this color will be automatically set. - - The fill color. - - - - Gets or sets the box plot items. - - The items. - - - - Gets or sets the line style. - - The line style. - - - - Gets or sets the size of the median point. - - This property is only used when MedianStyle = Dot. - - - - Gets or sets the median thickness, relative to the StrokeThickness. - - The median thickness. - - - - Gets or sets the diameter of the outlier circles (specified in points). - - The size of the outlier. - - - - Gets or sets the tracker format string for the outliers. - - The tracker format string for the outliers. - Use {0} for series title, {1} for x- and {2} for y-value. - - - - Gets or sets the type of the outliers. - - The type of the outliers. - MarkerType.Custom is currently not supported. - - - - Gets or sets the a custom polygon outline for the outlier markers. Set to to use this property. - - A polyline. The default is null. - - - - Gets or sets a value indicating whether to show the boxes. - - - - - Gets or sets a value indicating whether to show the median as a dot. - - - - - Gets or sets the stroke. - - The stroke. - - - - Gets or sets the stroke thickness. - - The stroke thickness. - - - - Gets or sets the width of the whiskers (relative to the BoxWidth). - - The width of the whiskers. - - - - Specifies how the heat map coordinates are defined. - - - - - The coordinates defines the center of the cells - - - - - The coordinates defines the edge of the cells - - - - - Represents a heat map. - - - - - The default color-axis title - - - - - The hash code of the data when the image was updated. - - - - - The hash code of the color axis when the image was updated. - - - - - The image - - - - - Initializes a new instance of the class. - - - - - Invalidates the image that renders the heat map. The image will be regenerated the next time the is rendered. - - Call to refresh the view. - - - - Renders the series on the specified render context. - - The rendering context. - The model. - - - - Gets the point on the series that is nearest the specified point. - - The point. - Interpolate the series if this flag is set to true. - A TrackerHitResult for the current hit. - - - - Ensures that the axes of the series is defined. - - - - - Updates the maximum and minimum values of the series. - - - - - Updates the axes to include the max and min of this series. - - - - - Renders the labels. - - The - The bounding rectangle for the data. - - - - Gets the label for the specified cell. - - The value of the cell. - The first index. - The second index. - The label string. - - - - Gets the interpolated value at the specified position in the data array (by bilinear interpolation). - - The data. - The first index. - The second index. - The interpolated value. - - - - Tests if a is inside the heat map - - The to test. - True if the point is inside the heat map. - - - - Updates the image. - - - - - Gets or sets the x-coordinate of the elements at index [0,*] in the data set. - - - If equals , the value defines the mid point of the element at index [0,*] in the data set. - If equals , the value defines the coordinate of the left edge of the element at index [0,*] in the data set. - - - - - Gets or sets the x-coordinate of the mid point for the elements at index [m-1,*] in the data set. - - - If equals , the value defines the mid point of the element at index [m-1,*] in the data set. - If equals , the value defines the coordinate of the right edge of the element at index [m-1,*] in the data set. - - - - - Gets or sets the y-coordinate of the mid point for the elements at index [*,0] in the data set. - - - If equals , the value defines the mid point of the element at index [*,0] in the data set. - If equals , the value defines the coordinate of the bottom edge of the element at index [*,0] in the data set. - - - - - Gets or sets the y-coordinate of the mid point for the elements at index [*,n-1] in the data set. - - - If equals , the value defines the mid point of the element at index [*,n-1] in the data set. - If equals , the value defines the coordinate of the top edge of the element at index [*,n-1] in the data set. - - - - - Gets or sets the data array. - - Note that the indices of the data array refer to [x,y]. - The first dimension is along the x-axis. - The second dimension is along the y-axis. - Remember to call the method if the contents of the array is changed. - - - - Gets or sets a value indicating whether to interpolate when rendering. The default value is true. - - This property is not supported on all platforms. - - - - Gets the minimum value of the dataset. - - - - - Gets the maximum value of the dataset. - - - - - Gets or sets the color axis. - - The color axis. - - - - Gets or sets the color axis key. - - The color axis key. - - - - Gets or sets the coordinate definition. The default value is . - - The coordinate definition. - - - - Gets or sets the format string for the cell labels. The default value is 0.00. - - The format string. - The label format string is only used when is greater than 0. - - - - Gets or sets the font size of the labels. The default value is 0 (labels not visible). - - The font size relative to the cell height. - - - - Specifies the position of legends rendered on a . - - - - - Do not render legend on the line. - - - - - Render legend at the start of the line. - - - - - Render legend at the end of the line. - - - - - Represents a plot. - - - - - Makes the LegendOrientation property safe. - - If Legend is positioned left or right, force it to vertical orientation - - - - Gets the rectangle of the legend box. - - Size of the legend box. - A rectangle. - - - - Renders the legend for the specified series. - - The render context. - The series. - The position and size of the legend. - - - - Measures the legends. - - The render context. - The available size for the legend box. - The size of the legend box. - - - - Renders or measures the legends. - - The render context. - The rectangle. - - - - Renders or measures the legends. - - The render context. - Provides the available size if measuring, otherwise it provides the position and size of the legend. - Specify if the size of the legend box should be measured only (not rendered). - The size of the legend box. - - - - Renders the plot with the specified rendering context. - - The rendering context. - The width. - The height. - - - - Renders the plot with the specified rendering context. - - The rendering context. - The width. - The height. - - - - Increases margin size if needed, do it on the specified border. - - The current margin. - Minimum size of the border. - The border position. - - - - Calculates the maximum size of the specified axes. - - The render context. - The axes of position tier. - The maximum size. - - - - Renders the specified error message. - - The rendering context. - The title. - The error message. - The font size. The default value is 12. - - - - Determines whether the plot margin for the specified axis position is auto-sized. - - The axis position. - true if it is auto-sized. - - - - Adjusts the plot margins. - - The render context. - true if the margins were adjusted. - - - - Adjust the positions of parallel axes, returns total size - - The render context. - The parallel axes. - The maximum value of the position tier?? - - - - Measures the size of the title and subtitle. - - The rendering context. - Size of the titles. - - - - Renders the annotations. - - The render context. - The layer. - - - - Renders the axes. - - The render context. - The layer. - - - - Renders the series backgrounds. - - The render context. - - - - Renders the border around the plot area. - - The render context. - The border will only by rendered if there are axes in the plot. - - - - Renders the series. - - The render context. - - - - Renders the title and subtitle. - - The render context. - - - - Calculates the plot area (subtract padding, title size and outside legends) - - The rendering context. - - - - The plot view that renders this plot. - - - - - The current color index. - - - - - The last update exception. - - The exception or null if there was no exceptions during the last update. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The title. - The subtitle. - - - - Attaches this model to the specified plot view. - - The plot view. - Only one plot view can be attached to the plot model. - The plot model contains data (e.g. axis scaling) that is only relevant to the current plot view. - - - - Creates a report for the plot. - - A report. - - - - Creates a text report for the plot model. - - A text report that contains information about the contents of the plot model. - - - - Invalidates the plot. - - Updates all data sources if set to true. - - - - Gets the first axes that covers the area of the specified point. - - The point. - The x-axis. - The y-axis. - - - - Gets the default color from the DefaultColors palette. - - The next default color. - - - - Gets the default line style. - - The next default line style. - - - - Gets a series from the specified point. - - The point. - The limit. - The nearest series. - - - - Generates C# code of the model. - - C# code. - - - - Returns a that represents this instance. - - A that represents this instance. - - - - Creates an svg model and return it as a string. - - The width (points). - The height (points). - if set to true, the xml headers will be included (?xml and !DOCTYPE). - The text measurer. - The svg string. - - - - Gets all elements of the model, sorted by rendering priority. - - An enumerator of the elements. - - - - Gets any exception thrown during the last call. - - The exception or null if there was no exception. - - - - Updates all axes and series. - 0. Updates the owner PlotModel of all plot items (axes, series and annotations) - 1. Updates the data of each Series (only if updateData==true). - 2. Ensure that all series have axes assigned. - 3. Updates the max and min of the axes. - - if set to true , all data collections will be updated. - - - - Gets the axis for the specified key. - - The axis key. - The default axis. - The axis, or the defaultAxis if the key is not specified. - Cannot find axis with the specified key. - - - - Resets all axes in the model. - - - - - Pans all axes. - - The horizontal distance to pan (screen coordinates). - The vertical distance to pan (screen coordinates). - - - - Zooms all axes. - - The zoom factor. - - - - Raises the TrackerChanged event. - - The result. - - - - Raises the Updated event. - - - - - Raises the Updating event. - - - - - Updates the axis transforms. - - - - - Enforces the same scale on all axes. - - - - - Updates the intervals (major and minor step values). - - - - - Finds and sets the default horizontal and vertical axes (the first horizontal/vertical axes in the Axes collection). - - - - - Resets the default color index. - - - - - Updates maximum and minimum values of the axes from values of all data series. - - if set to true , the data has been updated. - - - - Occurs when the tracker has been changed. - - - - - Occurs when the plot has been updated. - - - - - Occurs when the plot is about to be updated. - - - - - Gets or sets the default font. - - The default font. - This font is used for text on axes, series, legends and plot titles unless other fonts are specified. - - - - Gets or sets the default size of the fonts. - - The default size of the font. - - - - Gets the actual culture. - - - - - Gets the actual plot margins. - - The actual plot margins. - - - - Gets the plot view that renders this plot. - - The plot view. - Only one view can render the plot at the same time. - - - - Gets the annotations. - - The annotations. - - - - Gets the axes. - - The axes. - - - - Gets or sets the color of the background of the plot. - - The color. The default is . - If the background color is set to , the default color of the plot view will be used. - - - - Gets or sets the culture. - - The culture. - - - - Gets or sets the default colors. - - The default colors. - - - - Gets or sets a value indicating whether the legend is visible. The titles of the series must be set to use the legend. - - - - - Gets the legend area. - - The legend area. - - - - Gets or sets the background color of the legend. Use null for no background. - - The legend background. - - - - Gets or sets the border color of the legend. - - The legend border. - - - - Gets or sets the thickness of the legend border. Use 0 for no border. - - The legend border thickness. - - - - Gets or sets the legend column spacing. - - The legend column spacing. - - - - Gets or sets the legend font. - - The legend font. - - - - Gets or sets the size of the legend font. - - The size of the legend font. - - - - Gets or sets the color of the legend text. - - The color of the legend text. - If this value is null, the TextColor will be used. - - - - Gets or sets the legend font weight. - - The legend font weight. - - - - Gets or sets the legend item alignment. - - The legend item alignment. - - - - Gets or sets the legend item order. - - The legend item order. - - - - Gets or sets the legend spacing. - - The legend spacing. - - - - Gets or sets the legend margin. - - The legend margin. - - - - Gets or sets the max width of the legend. - - The max width of the legend. - - - - Gets or sets the legend orientation. - - The legend orientation. - - - - Gets or sets the legend padding. - - The legend padding. - - - - Gets or sets the legend placement. - - The legend placement. - - - - Gets or sets the legend position. - - The legend position. - - - - Gets or sets the length of the legend symbols (the default value is 16). - - - - - Gets or sets the legend symbol margins (distance between the symbol and the text). - - The legend symbol margin. - - - - Gets or sets the legend symbol placement. - - The legend symbol placement. - - - - Gets or sets the legend title. - - The legend title. - - - - Gets or sets the color of the legend title. - - The color of the legend title. - If this value is null, the TextColor will be used. - - - - Gets or sets the legend title font. - - The legend title font. - - - - Gets or sets the size of the legend title font. - - The size of the legend title font. - - - - Gets or sets the legend title font weight. - - The legend title font weight. - - - - Gets or sets the padding around the plot. - - The padding. - - - - Gets the total width of the plot (in device units). - - - - - Gets the total height of the plot (in device units). - - - - - Gets the area including both the plot and the axes. Outside legends are rendered outside this rectangle. - - The plot and axis area. - - - - Gets the plot area. This area is used to draw the series (not including axes or legends). - - The plot area. - - - - Gets or sets the distance between two neighborhood tiers of the same AxisPosition. - - - - - Gets or sets the color of the background of the plot area. - - - - - Gets or sets the color of the border around the plot area. - - The color of the box. - - - - Gets or sets the thickness of the border around the plot area. - - The box thickness. - - - - Gets or sets the margins around the plot (this should be large enough to fit the axes). - If any of the values is set to double.NaN, the margin is adjusted to the value required by the axes. - - - - - Gets or sets the type of the coordinate system. - - The type of the plot. - - - - Gets the series. - - The series. - - - - Gets or sets the rendering decorator. - - - The rendering decorator. - - - - - Gets or sets the subtitle. - - The subtitle. - - - - Gets or sets the subtitle font. If this property is null, the Title font will be used. - - The subtitle font. - - - - Gets or sets the size of the subtitle font. - - The size of the subtitle font. - - - - Gets or sets the subtitle font weight. - - The subtitle font weight. - - - - Gets or sets the default color of the text in the plot (titles, legends, annotations, axes). - - The color of the text. - - - - Gets or sets the title. - - The title. - - - - Gets or sets the color of the title. - - The color of the title. - If the value is null, the TextColor will be used. - - - - Gets or sets the color of the subtitle. - - The color of the subtitle. - - - - Gets or sets the horizontal alignment of the title and subtitle. - - - The alignment. - - - - - Gets the title area. - - The title area. - - - - Gets or sets the title font. - - The title font. - - - - Gets or sets the size of the title font. - - The size of the title font. - - - - Gets or sets the title font weight. - - The title font weight. - - - - Gets or sets the padding around the title. - - The title padding. - - - - Gets the default angle axis. - - The default angle axis. - - - - Gets the default magnitude axis. - - The default magnitude axis. - - - - Gets the default X axis. - - The default X axis. - - - - Gets the default Y axis. - - The default Y axis. - - - - Gets the default color axis. - - The default color axis. - - - - Gets the actual title font. - - - - - Gets the actual subtitle font. - - - - - Gets the visible series. - - The visible series. - - - - Gets the visible axes. - - The visible axes. - - - - Specifies the coordinate system type. - - - - - XY coordinate system - two perpendicular axes - - - - - Cartesian coordinate system - perpendicular axes with the same scaling. - - See http://en.wikipedia.org/wiki/Cartesian_coordinate_system - - - - Polar coordinate system - with radial and angular axes - - See http://en.wikipedia.org/wiki/Polar_coordinate_system - - - - Specifies the placement of the legend box. - - - - - Place the legends inside the plot area. - - - - - Place the legends outside the plot area. - - - - - Specifies the position of the legend box. - - - - - Place the legend box in the top-left corner. - - - - - Place the legend box centered at the top. - - - - - Place the legend box in the top-right corner. - - - - - Place the legend box in the bottom-left corner. - - - - - Place the legend box centered at the bottom. - - - - - Place the legend box in the bottom-right corner. - - - - - Place the legend box in the left-top corner. - - - - - Place the legend box centered at the left. - - - - - Place the legend box in the left-bottom corner. - - - - - Place the legend box in the right-top corner. - - - - - Place the legend box centered at the right. - - - - - Place the legend box in the right-bottom corner. - - - - - Specifies the orientation of the items in the legend box. - - - - - Orient the items horizontally. - - - - - Orient the items vertically. - - - - - Specifies the item order of the legends. - - - - - Render the items in the normal order. - - - - - Render the items in the reverse order. - - - - - Specifies the placement of the legend symbols. - - - - - Render symbols to the left of the labels. - - - - - Render symbols to the right of the labels. - - - - - Specifies the horizontal alignment of the titles. - - - - - Centered within the plot area. - - - - - Centered within the client view (excluding padding defined in ). - - - - - The OxyPlot.Reporting namespace contains a simple report model. - - - - - Implements a that writes to wiki format. - - This will not write figures/images. - - - - Specifies functionality to write objects. - - - - - Writes the specified drawing. - - The drawing. - - - - Writes the specified equation. - - The equation. - - - - Writes the specified header. - - The header. - - - - Writes the specified image. - - The image. - - - - Writes the specified paragraph. - - The paragraph. - - - - Writes the specified plot. - - The plot. - - - - Writes the specified report with the specified style. - - The report. - The style. - - - - Writes the specified table. - - The table. - - - - The table cell separator. - - - - - The table header cell separator. - - - - - The table header row end. - - - - - The table header row start. - - - - - The table row end. - - - - - The table row start. - - - - - The table counter. - - - - - Initializes a new instance of the class. - - The s. - - - - The write drawing. - - The d. - - - - The write equation. - - The equation. - - - - The write header. - - The h. - - - - The write image. - - The i. - - - - The write paragraph. - - The p. - - - - The write plot. - - The plot. - - - - The write report. - - The report. - The style. - - - - The write table. - - The t. - - - - Gets the formatted string for the specified cell. - - The cell index (column). - The number of columns. - The content of the cell. - if set to true the cell is a header. - The cell representation. - - - - Aligns the specified string. - - The text. - The alignment. - The width. - The padded string. - - - - Gets or sets MaxLineLength. - - - - - Defines the html element type to use when writing plots. - - - - - Use the embed tag and reference an external svg file. - - - - - Use the object tag and reference an external svg file. - - - - - Use the svg tag and include the plot inline. - - - - - Implements a that writes to HTML format. - - - - - The text measurer. - - - - - The figure counter. - - - - - The style. - - - - - Initializes a new instance of the class. - - The stream. - The text measurer. - - - - Closes this instance. - - - - - Writes the class ID. - - The class. - The id. - - - - Writes the drawing. - - The drawing. - - - - Writes the equation. - - The equation. - - - - Writes the header. - - The header. - - - - Writes the image. - - The image. - - - - Writes the paragraph. - - The paragraph. - - - - Writes the plot. - - The plot. - - - - The write report. - - The report. - The style. - - - - Writes the items. - - The table. - - - - Writes the table. - - The t. - - - - Creates the css section. - - The style. - The css. - - - - Gets the alignment string. - - The alignment type. - An alignment string. - - - - Converts a paragraph style to css. - - The style. - The cssformatted style. - - - - Initializes this instance. - - - - - Writes the div. - - The style of the div. - The content. - - - - Writes the end figure. - - The figure text. - - - - Writes the HTML header. - - The title. - The CSS path. - The style. - - - - Writes the start figure element. - - - - - Gets or sets the type of the plot element. - - The type of the plot element. - - - - Provides extension methods for objects. - - - - - Repeats the specified string times. - - The source. - The number of times to repeat. - The repeated string. - - - - Splits the specified string to lines of maximum length. - - The string to split. - The line length. - The split lines. - - - - Finds the length of the line starting at that has maximum length . - - The text source. - The start index. - The maximum line length. - The length of the line. - - - - Implements a that writes to plain text format. - - This will not write figures/images. - - - - The table cell separator. - - - - - The table row end. - - - - - The table row start. - - - - - The table counter. - - - - - Initializes a new instance of the class. - - The stream. - - - - The write drawing. - - The d. - - - - The write equation. - - The equation. - - - - The write header. - - The h. - - - - The write image. - - The i. - - - - The write paragraph. - - The content. - - - - The write plot. - - The plot. - - - - The write report. - - The report. - The style. - - - - The write table. - - The table. - - - - Gets the formatted string for the specified cell. - - The cell index (column). - The number of columns. - The content of the cell. - The cell representation. - - - - Aligns the specified string. - - The text. - The alignment. - The width. - The padded string. - - - - Gets or sets MaxLineLength. - - - - - Represents a table of items. - - - - - Represents a table. - - - - - Provides a base class for report items. - - - - - Initializes a new instance of the class. - - - - - Adds a report item to the report. - - The child. - - - - Adds a drawing to the report. - - The content. - The text. - - - - Adds a plot to the report. - - The plot model. - The text. - The width. - The height. - - - - Adds an equation to the report. - - The equation. - The caption. - - - - Adds a header to the report. - - The level. - The header. - - - - Adds an image to the report. - - The image source file. - The text. - - - - Adds an items table to the report. - - The title. - The items. - The fields. - - - - Adds a paragraph to the report. - - The content. - - - - Adds a property table to the report. - - The title. - The object. - A PropertyTable. - - - - Adds a table of contents. - - The source for the table of contents. - - - - Updates the item. - - - - - Writes the item to a . - - The target . - - - - Writes the content of the item to the specified . - - The target . - - - - Updates the figure numbers. - - - - - Updates the Report property. - - The report. - - - - Updates the figure numbers. - - The figure counter. - - - - Gets the children. - - - - - Gets the report. - - - - - Provides a figure and table counter. - - - - - Initializes a new instance of the class. - - - - - Gets or sets the current figure number. - - - - - Gets or sets the current table number. - - - - - Initializes a new instance of the class. - - - - - Gets the full caption. - - The style. - The caption string. - - - - Updates the table. - - - - - Writes the content of the table. - - The target . - - - - Updates the column widths of the table. - - - - - Gets the actual width of the table (mm). - - The actual width. - - - - Gets or sets Caption. - - - - - Gets Columns. - - - - - Gets Rows. - - - - - Gets or sets TableNumber. - - - - - Gets or sets the width of the table (mm). - NaN: auto width. - 0..-1: fraction of page width. - - - - - Initializes a new instance of the class. - - The items in rows. - - - - Determines if the table has a header. - - true if the table has a header. - - - - Converts the table to an array of strings. - - A string array. - - - - Updates the table. - - - - - Updates the table items. - - - - - Writes the content of the item. - - The writer. - - - - Transposes the specified string array. - - The input. - A transposed string array. - - - - Gets or sets Alignment. - - - - - Gets or sets Fields. - - - - - Gets or sets the items. - - The items. - The table will be filled when this property is set. - - - - Gets a value indicating whether the items should be exported in rows. - - - - - Represents a paragraph style. - - - - - The default font. - - - - - The default font size. - - - - - The bold. - - - - - The font family. - - - - - The font size. - - - - - The italic. - - - - - The left indentation. - - - - - The line spacing. - - - - - The page break before. - - - - - The right indentation. - - - - - The spacing after. - - - - - The spacing before. - - - - - The text color. - - - - - Gets or sets the style that this style is based on. - - - - - Gets or sets a value indicating whether text should be written in bold. - - - - - Gets or sets the font family. - - - - - Gets or sets the font size. - - - - - Gets or sets a value indicating whether text should be written in italic. - - - - - Gets or sets the left indentation. - - - - - Gets or sets the line spacing. - - - - - Gets or sets a value indicating whether there should be a page break before the paragraph. - - - - - Gets or sets the right indentation. - - - - - Gets or sets spacing after the paragraph. - - - - - Gets or sets spacing before the paragraph. - - - - - Gets or sets text color. - - - - - Represents a report style. - - - - - Initializes a new instance of the class. - - The title font family. - The body text font family. - The table text font family. - - - - Gets or sets the body text style. - - - - - Gets or sets the default style. - - - - - Gets or sets the figure text format string. - - - - - Gets or sets figure text style. - - - - - Gets or sets header styles. - - - - - Gets or sets the page margins (mm). - - - - - Gets or sets the table caption format string. - - - - - Gets or sets the table caption style. - - - - - Gets or sets the table header style. - - - - - Gets or sets the table text style. - - - - - Represents a table of contents. - - - - - Initializes a new instance of the class. - - The source. - - - - Updates the table of contents. - - - - - Appends headers (recursively) to the of the object. - - The item. - The header formatter. - - - - Gets the source item. - - - - - Gets the contents. - - - - - Represents an item in the table of contents. - - - - - Gets or sets the chapter. - - - - - Gets or sets the title. - - - - - Represents a drawing report item. - - Drawing currently only supports SVG format. - - - - Provides a base class for figures (drawings, images and plots). - - - - - Gets the full caption for the figure. - - The style. - The caption string. - - - - Gets or sets the figure number. - - - - - Gets or sets the figure text. - - No figure text will be shown if set to null. - A figure number will be counted if the figure text is not null. - - - - The write content. - - The w. - - - - Gets or sets Content. - - - - - Gets or sets Format. - - - - - The drawing format. - - - - - The svg. - - - - - Represents an equation. - - - - - The write content. - - The w. - - - - Gets or sets Caption. - - - - - Gets or sets Content. - - - - - Represents a header. - - - - - Returns a string that represents the header. - - A string that represents the header. - - - - The write content. - - The w. - - - - Gets or sets the chapter number(s). - - - - - Gets or sets the level of the header (1-5). - - - - - Gets or sets the header text. - - - - - The header helper. - - - - - The header level. - - - - - Gets the header. - - The header level. - The header. - - - - Represents an image report item. - - - - - The write content. - - The w. - - - - Gets or sets Source. - - - - - Represents a paragraph. - - - - - Writes the content of the paragraph. - - The target . - - - - Gets or sets the paragraph text. - - - - - Represents a plot figure. - - - - - Writes the figure to the specified . - - The target . - - - - Gets or sets the height of the figure. - - - - - Gets or sets the plot source. - - - - - Gets or sets the width of the figure. - - - - - Represents a table of auto generated property values. - - The PropertyTable auto generates columns or rows based on reflecting the Items type. - - - - Initializes a new instance of the class. - - The items. - The items in rows. - - - - Gets the item type. - - The items. - The type of the items. - - - - Updates the fields. - - The items. - - - - Represents a report. - - - - - Writes the report to a . - - The target . - - - - Gets the actual culture. - - - - - Gets or sets the name of the author. - - - - - Gets or sets the culture. - - The culture. - - - - Gets or sets the subtitle. - - - - - Gets or sets the title. - - - - - Represents a report section. - - - - - Represents a field in an items table. - - - - - Initializes a new instance of the class. - - The header. - The path. - The string format. - The alignment. - - - - Gets the text. - - The item. - The format provider. - The text. - - - - Gets or sets Alignment. - - - - - Gets or sets Header. - - - - - Gets or sets Path. - - - - - Gets or sets StringFormat. - - - - - Gets or sets Width. - - - - - Defines the horizontal alignment. - - - - - The left. - - - - - The right. - - - - - The center. - - - - - Represents a table cell. - - - - - Gets or sets the content of the cell. - - - - - Represents a table column definition. - - - - - Initializes a new instance of the class. - - - - - Gets the actual width (mm). - - The actual width. - - - - Gets or sets the horizontal alignment of the column. - - - - - Gets or sets a value indicating whether the column is a header. - - - - - Gets or sets the width. - - The width. - NaN: auto width. - Negative numbers: weights - - - - Represents a table row definition. - - - - - Initializes a new instance of the class. - - - - - Gets Cells. - - - - - Gets or sets a value indicating whether IsHeader. - - - - - The OxyPlot.Series namespace contains the series and related types. - - - - - Represents an area series that fills the polygon defined by two sets of points or one set of points and a constant. - - - - - Represents a line series. - - - - - Provides an abstract base class for series that contain a collection of s. - - - - - The list of data points. - - - - - The data points from the items source. - - - - - Specifies if the itemsSourcePoints list can be modified. - - - - - Gets the point on the series that is nearest the specified point. - - The point. - Interpolate the series if this flag is set to true. - A TrackerHitResult for the current hit. - - - - Updates the data. - - - - - Updates the maximum and minimum values of the series. - - - - - Gets the item at the specified index. - - The index of the item. - The item of the index. - - - - Clears or creates the list. - - - - - Updates the points from the . - - - - - Gets or sets a value indicating whether the tracker can interpolate points. - - - - - Gets or sets the data field X. The default is null. - - The data field X. - - - - Gets or sets the data field Y. The default is null. - - The data field Y. - - - - Gets or sets the delegate used to map from to the . The default is null. - - The mapping. - Example: series1.Mapping = item => new DataPoint(((MyType)item).Time,((MyType)item).Value); - - - - Gets the list of points. - - A list of . - - - - Gets the list of points that should be rendered. - - A list of . - - - - The divisor value used to calculate tolerance for line smoothing. - - - - - The output buffer. - - - - - The buffer for contiguous screen points. - - - - - The buffer for decimated points. - - - - - The default color. - - - - - The default marker fill color. - - - - - The default line style. - - - - - The smoothed points. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The title. - - - - Initializes a new instance of the class. - - The color of the line stroke. - The stroke thickness (optional). - The title (optional). - - - - Gets the point on the series that is nearest the specified point. - - The point. - Interpolate the series if this flag is set to true. - A TrackerHitResult for the current hit. - - - - Renders the series on the specified rendering context. - - The rendering context. - The owner plot model. - - - - Renders the legend symbol for the line series on the - specified rendering context. - - The rendering context. - The bounding rectangle of the legend box. - - - - Sets default values from the plot model. - - The plot model. - - - - Updates the maximum and minimum values of the series. - - - - - Renders the points as line, broken line and markers. - - The rendering context. - The clipping rectangle. - The points to render. - - - - Extracts a single contiguous line segment beginning with the element at the position of the enumerator when the method - is called. Initial invalid data points are ignored. - - The enumerator to use to traverse the collection. The enumerator must be on a valid element. - Initially set to null, but I will update I won't give a broken line if this is null - place to put broken segment - place to put contiguous segment - - true if line segments are extracted, false if reached end. - - - - - Renders the point labels. - - The render context. - The clipping rectangle. - - - - Renders a legend on the line. - - The render context. - - - - Renders the transformed points as a line (smoothed if is true) and markers (if is not None). - - The render context. - The clipping rectangle. - The points to render. - - - - Renders a continuous line. - - The render context. - The clipping rectangle. - The points to render. - - - - Force the smoothed points to be re-evaluated. - - - - - Gets or sets the color of the curve. - - The color. - - - - Gets or sets the color of the broken line segments. The default is . Set it to if it should follow the . - - Add DataPoint.Undefined in the Points collection to create breaks in the line. - - - - Gets or sets the broken line style. The default is . - - - - - Gets or sets the broken line thickness. The default is 0 (no line). - - - - - Gets or sets the dash array for the rendered line (overrides ). The default is null. - - The dash array. - If this is not null it overrides the property. - - - - Gets or sets the decimator. - - - The decimator action. - - The decimator can be used to improve the performance of the rendering. See the example. - - - - Gets or sets the label format string. The default is null (no labels). - - The label format string. - - - - Gets or sets the label margins. The default is 6. - - - - - Gets or sets the line join. The default is . - - The line join. - - - - Gets or sets the line style. The default is . - - The line style. - - - - Gets or sets a value specifying the position of a legend rendered on the line. The default is LineLegendPosition.None. - - A value specifying the position of the legend. - - - - Gets or sets the marker fill color. The default is . - - The marker fill. - - - - Gets or sets the a custom polygon outline for the markers. Set to to use this property. The default is null. - - A polyline. - - - - Gets or sets the marker resolution. The default is 0. - - The marker resolution. - - - - Gets or sets the size of the marker. The default is 3. - - The size of the marker. - - - - Gets or sets the marker stroke. The default is OxyColors.Automatic. - - The marker stroke. - - - - Gets or sets the marker stroke thickness. The default is 2. - - The marker stroke thickness. - - - - Gets or sets the type of the marker. The default is MarkerType.None. - - The type of the marker. - If MarkerType.Custom is used, the MarkerOutline property must be specified. - - - - Gets or sets the minimum length of the segment. - Increasing this number will increase performance, - but make the curve less accurate. The default is 2. - - The minimum length of the segment. - - - - Gets or sets a value indicating whether this is smooth. - - true if smooth; otherwise, false. - - - - Gets or sets the thickness of the curve. - - The stroke thickness. - - - - Gets the actual color. - - The actual color. - - - - Gets the actual marker fill color. - - The actual color. - - - - Gets the actual line style. - - The actual line style. - - - - Gets the actual dash array for the line. - - - - - Gets or sets the smoothed points. - - The smoothed points. - - - - Represents a line segment. - - - - - Initializes a new instance of the class. - - The first point of the segment. - The second point of the segment. - - - - Gets the first point1 of the segment. - - - - - Gets the second point of the segment. - - - - - The second list of points. - - - - - The secondary data points from the items source. - - - - - Initializes a new instance of the class. - - - - - Gets the nearest point. - - The point. - interpolate if set to true . - A TrackerHitResult for the current hit. - - - - Renders the series on the specified rendering context. - - The rendering context. - The owner plot model. - - - - Renders the legend symbol for the line series on the - specified rendering context. - - The rendering context. - The bounding rectangle of the legend box. - - - - The update data. - - - - - Updates the maximum and minimum values of the series. - - - - - Gets or sets a constant value for the area definition. - This is used if DataFieldBase and BaselineValues are null. - - The baseline. - - - - Gets or sets the second X data field. - - - - - Gets or sets the second Y data field. - - - - - Gets or sets the color of the second line. - - The color. - - - - Gets the actual color of the second line. - - The actual color. - - - - Gets or sets the area fill color. - - The fill. - - - - Gets the actual fill color. - - The actual fill. - - - - Gets the second list of points. - - The second list of points. - - - - Gets or sets a value indicating whether the second - data collection should be reversed. - The first dataset is not reversed, and normally - the second dataset should be reversed to get a - closed polygon. - - - - - Gets the second list of points. - - The second list of points. - - - - Placement of the labels. - - - - - Placed outside the bar. - - - - - Placed inside the bar. - - - - - Placed inside in the middle/center of the bar. - - - - - Placed inside at the base of the bar. - - - - - Represents a series for candlestick charts. - - See also Wikipedia and - Matlab documentation. - - - - Represents a series for high-low plots. - - See link - - - - High/low items - - - - - The default color. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The title. - - - - Initializes a new instance of the class. - - The color. - The stroke thickness. - The title. - - - - Gets the point on the series that is nearest the specified point. - - The point. - Interpolate the series if this flag is set to true. - A TrackerHitResult for the current hit. - - - - Determines whether the point is valid. - - The point. - The x axis. - The y axis. - true if [is valid point] [the specified pt]; otherwise, false. - - - - Renders the series on the specified rendering context. - - The rendering context. - The owner plot model. - - - - Renders the legend symbol for the series on the specified rendering context. - - The rendering context. - The bounding rectangle of the legend box. - - - - Sets the default values. - - The model. - - - - Updates the data. - - - - - Updates the maximum and minimum values of the series. - - - - - Gets or sets the color of the item. - - The color. - - - - Gets the actual color of the item. - - The actual color. - - - - Gets or sets the dashes array. - If this is not null it overrides the LineStyle property. - - The dashes. - - - - Gets or sets the data field for the Close value. - - - - - Gets or sets the data field for the High value. - - - - - Gets or sets the data field for the Low value. - - - - - Gets or sets the data field for the Open value. - - - - - Gets or sets the x data field (time). - - - - - Gets the items of the series. - - The items. - - - - Gets or sets the line join. - - The line join. - - - - Gets or sets the line style. - - The line style. - - - - Gets or sets the mapping delegate. - - The mapping. - Example: series1.Mapping = item => new HighLowItem(((MyType)item).Time,((MyType)item).Value); - - - - Gets or sets the thickness of the curve. - - The stroke thickness. - - - - Gets or sets the length of the open/close ticks (screen coordinates). - - The length of the open/close ticks. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The title. - - - - Initializes a new instance of the class. - - The color. - The stroke thickness. - The title. - - - - Renders the series on the specified rendering context. - - The rendering context. - The owner plot model. - - - - Renders the legend symbol for the series on the specified rendering context. - - The rendering context. - The bounding rectangle of the legend box. - - - - Gets or sets the width of the candle (in screen space units). - - - - - Gets or sets the color used when the closing value is greater than opening value. - - - - - Gets or sets the fill color used when the closing value is less than opening value. - - - - - Gets or sets the end color of the shadow. - - The end color of the shadow. - - - - Gets or sets the lengths of the shadow ends. - - The length relative to the width of the candle. - - - - Gets the actual increasing fill color. - - - - - Represents a series that renders contours. - - See wikipedia and link. - - - - The contour collection. - - - - - The temporary segment collection. - - - - - The default color. - - - - - Initializes a new instance of the class. - - - - - Calculates the contours. - - - - - Gets the point in the dataset that is nearest the specified point. - - The point. - The interpolate. - A hit result object. - - - - Renders the series on the specified rendering context. - - The rendering context. - The model. - - - - Sets default values from the plot model. - - The plot model. - - - - Updates the maximum and minimum values of the series. - - - - - Determines if two values are close. - - The first value. - The second value. - The squared tolerance. - True if the values are close. - - - - Determines if two points are close. - - The first point. - The second point. - The squared tolerance. - True if the points are close. - - - - Gets the index of item that is closest to the specified value. - - A list of values. - A value. - An index. - - - - The add contour labels. - - The contour. - The points of the contour. - The clipping rectangle. - The contour labels. - - - - Finds the connected segment. - - The point. - The contour level. - The distance tolerance. - reverse the segment if set to true. - The connected segment, or null if no segment was found. - - - - Joins the contour segments. - - The tolerance for segment ends to connect (squared distance). - - - - Renders the contour label. - - The render context. - The contour label. - - - - Renders the contour label background. - - The render context. - The contour label. - - - - Gets or sets the color. - - The color. - - - - Gets the actual color. - - The actual color. - - - - Gets or sets the column coordinates. - - The column coordinates. - - - - Gets or sets the contour level step size. - This property is not used if the ContourLevels vector is set. - - The contour level step size. - - - - Gets or sets the contour levels. - - The contour levels. - - - - Gets or sets the contour colors. - - The contour colors. - These colors will override the Color of the series. - If there are less colors than the number of contour levels, the colors will cycle. - - - - Gets or sets the data. - - The data. - - - - Gets or sets the text background color. - - The text background color. - - - - Gets or sets the format string for contour values. - - The format string. - - - - Gets or sets the label spacing. - - The label spacing. - - - - Gets or sets the label step (number of contours per label). - - The label step. - - - - Gets or sets the line style. - - The line style. - - - - Gets or sets the row coordinates. - - The row coordinates. - - - - Gets or sets the stroke thickness. - - The stroke thickness. - - - - Represents a contour. - - - - - Gets or sets the contour level. - - The contour level. - - - - Gets or sets the points. - - The points. - - - - Initializes a new instance of the class. - - The points. - The contour level. - - - - Gets or sets the color of the contour. - - - - - Represents a contour label. - - - - - Gets or sets the angle. - - The angle. - - - - Gets or sets the position. - - The position. - - - - Gets or sets the text. - - The text. - - - - Represents a contour segment. - - - - - The contour level. - - - - - The end point. - - - - - The start point. - - - - - Initializes a new instance of the class. - - The start point. - The end point. - The contour level. - - - - Represents a series for clustered or stacked bar charts. - - - - - Initializes a new instance of the class. - - - - - Gets or sets the width of the columns/bars (as a fraction of the available space). - - The width of the bars. - The fractional width. - The available space will be determined by the GapWidth of the CategoryAxis used by this series. - - - - Gets the actual width/height of the items of this series. - - The width or height. - The actual width is also influenced by the GapWidth of the CategoryAxis used by this series. - - - - Gets the category axis. - - The category axis. - - - - Gets the rectangle for the specified values. - - The base value of the bar - The top value of the bar - The begin value of the bar - The end value of the bar - The rectangle. - - - - Gets the value axis. - - The value axis. - - - - Renders the item label. - - The render context - The clipping rectangle - The rectangle of the item. - The value of the label. - The index of the bar item. - - - - Gets or sets the width (height) of the bars. - - The width of the bars. - - - - Represents an item in an IntervalBarSeries. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The start. - The end. - The title. - - - - Returns c# code that generates this instance. - - C# code. - - - - Gets or sets the color. - - - - - Gets or sets the end value. - - - - - Gets or sets the start value. - - - - - Gets or sets the title. - - - - - Represents a rectangle item in a RectangleBarSeries. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The x0. - The y0. - The x1. - The y1. - - - - Returns c# code that generates this instance. - - C# code. - - - - Gets or sets the color. - - If set to Automatic, the FillColor of the RectangleBarSeries will be used. - - - - Gets or sets the title. - - - - - Gets or sets the x0 coordinate. - - - - - Gets or sets the x1 coordinate. - - - - - Gets or sets the y0 coordinate. - - - - - Gets or sets the y1 coordinate. - - - - - Represents a series for bar charts where the bars are defined by rectangles. - - - - - The default fill color. - - - - - Initializes a new instance of the class. - - - - - Gets the point in the dataset that is nearest the specified point. - - The point. - Specifies whether to interpolate or not. - A for the current hit. - - - - Renders the series on the specified rendering context. - - The rendering context. - The model. - - - - Renders the legend symbol on the specified rendering context. - - The rendering context. - The legend rectangle. - - - - Sets the default values. - - The model. - - - - Updates the data. - - - - - Updates the maximum and minimum values of the series. - - - - - Checks if the specified value is valid. - - The value. - True if the value is valid. - - - - Gets or sets the default color of the interior of the rectangles. - - The color. - - - - Gets the actual fill color. - - The actual color. - - - - Gets the rectangle bar items. - - - - - Gets or sets the label color. - - - - - Gets or sets the format string for the labels. - - - - - Gets or sets the color of the border around the rectangles. - - The color of the stroke. - - - - Gets or sets the thickness of the border around the rectangles. - - The stroke thickness. - - - - Gets or sets the actual rectangles for the rectangles. - - - - - Represents a series for bar charts defined by to/from values. - - - - - The default fill color. - - - - - Initializes a new instance of the class. - - - - - Gets the point in the dataset that is nearest the specified point. - - The point. - The interpolate. - A TrackerHitResult for the current hit. - - - - Checks if the specified value is valid. - - The value. - The y axis. - True if the value is valid. - - - - Renders the Series on the specified rendering context. - - The rendering context. - The model. - - - - Renders the legend symbol on the specified rendering context. - - The rendering context. - The legend rectangle. - - - - Gets or sets the width/height of the columns/bars (as a fraction of the available space). - - The width of the bars. - The fractional width. - The available space will be determined by the GapWidth of the CategoryAxis used by this series. - - - - Gets the items of this series. - - The items. - - - - Check if the data series is using the specified axis. - - An axis which should be checked if used - True if the axis is in use. - - - - Sets the default values. - - The model. - - - - Updates the axis maximum and minimum values. - - - - - Updates the data. - - - - - Updates the maximum and minimum values of the series. - - - - - Updates the valid items - - - - - Gets the actual width/height of the items of this series. - - The width or height. - The actual width is also influenced by the GapWidth of the CategoryAxis used by this series. - - - - Gets the category axis. - - The category axis. - - - - Gets the item at the specified index. - - The index of the item. - The item of the index. - - - - Gets the value axis. - - The value axis. - - - - Gets or sets the width of the bars (as a fraction of the available width). The default value is 0.5 (50%) - - The width of the bars. - - - - Gets or sets the default color of the interior of the Maximum bars. - - The color. - - - - Gets the actual fill color. - - The actual color. - - - - Gets a value indicating whether IsStacked. - - - - - Gets the range bar items. - - - - - Gets or sets the label color. - - - - - Gets or sets the label field. - - - - - Gets or sets the format string for the maximum labels. - - - - - Gets or sets the label margins. - - - - - Gets or sets the maximum value field. - - - - - Gets or sets the minimum value field. - - - - - Gets StackGroup. - - - - - Gets or sets the color of the border around the bars. - - The color of the stroke. - - - - Gets or sets the thickness of the bar border strokes. - - The stroke thickness. - - - - Gets or sets the actual rectangles for the maximum bars. - - - - - Gets or sets the valid items - - - - - Gets or sets the dictionary which stores the index-inversion for the valid items - - - - - Represents an item for the TornadoBarSeries. - - - - - Initializes a new instance of the class. - - - - - Returns c# code that generates this instance. - - C# code. - - - - Gets or sets the base value. - - - - - Gets or sets the maximum value. - - - - - Gets or sets the color for the maximum bar. - - - - - Gets or sets the minimum value. - - - - - Gets or sets the color for the minimum bar. - - - - - Represents a series that can be used to create tornado plots. - - See http://en.wikipedia.org/wiki/Tornado_diagram. - - - - The default fill color. - - - - - The default minimum fill color. - - - - - Initializes a new instance of the class. - - - - - Gets the point in the dataset that is nearest the specified point. - - The point. - The interpolate. - A TrackerHitResult for the current hit. - - - - Checks if the specified value is valid. - - The value. - The y axis. - True if the value is valid. - - - - Renders the Series on the specified rendering context. - - The rendering context. - The model. - - - - Renders the legend symbol on the specified rendering context. - - The rendering context. - The legend rectangle. - - - - Gets or sets the width/height of the columns/bars (as a fraction of the available space). - - The width of the bars. - The fractional width. - The available space will be determined by the GapWidth of the CategoryAxis used by this series. - - - - Gets the items of this series. - - The items. - - - - Check if the data series is using the specified axis. - - An axis which should be checked if used - True if the axis is in use. - - - - Sets the default values. - - The model. - - - - Updates the axis maximum and minimum values. - - - - - Updates the data. - - - - - Updates the maximum and minimum values of the series. - - - - - Updates the valid items - - - - - Gets the actual width/height of the items of this series. - - The width or height. - The actual width is also influenced by the GapWidth of the CategoryAxis used by this series. - - - - Gets the category axis. - - The category axis. - - - - Gets the item at the specified index. - - The index of the item. - The item of the index. - - - - Gets the value axis. - - The value axis. - - - - Gets or sets the width of the bars (as a fraction of the available width). The default value is 0.5 (50%) - - The width of the bars. - - - - Gets or sets the base value. - - The base value. - - - - Gets the tornado bar items. - - The items. - - - - Gets or sets the label color. - - - - - Gets or sets the label field. - - - - - Gets or sets the label margins. - - - - - Gets or sets the maximum value field. - - - - - Gets or sets the color of the interior of the Maximum bars. - - The color. - - - - Gets the actual fill color. - - The actual color. - - - - Gets or sets the format string for the maximum labels. - - - - - Gets or sets the minimum value field. - - - - - Gets or sets the default color of the interior of the Minimum bars. - - The color. - - - - Gets the actual minimum fill color. - - The actual color. - - - - Gets or sets the format string for the minimum labels. - - - - - Gets or sets the color of the border around the bars. - - The color of the stroke. - - - - Gets or sets the thickness of the bar border strokes. - - The stroke thickness. - - - - Gets or sets the actual rectangles for the maximum bars. - - - - - Gets or sets the actual rectangles for the minimum bars. - - - - - Gets or sets the valid items - - - - - Gets or sets the dictionary which stores the index-inversion for the valid items - - - - - Represents an item in a . - - - - - The undefined. - - - - - The close. - - - - - The high. - - - - - The low. - - - - - The open. - - - - - The x. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The x value. - The high value. - The low value. - The open value. - The close value. - - - - Gets or sets the close value. - - The close value. - - - - Gets or sets the high value. - - The high value. - - - - Gets or sets the low value. - - The low value. - - - - Gets or sets the open value. - - The open value. - - - - Gets or sets the X value (time). - - The X value. - - - - Represents a series that plots discrete data in a stem plot. - - See Stem plot and - stem. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The title. - - - - Initializes a new instance of the class. - - The color of the line stroke. - The stroke thickness (optional). - The title (optional). - - - - Gets the point on the series that is nearest the specified point. - - The point. - Interpolate the series if this flag is set to true. - A TrackerHitResult for the current hit. - - - - Renders the LineSeries on the specified rendering context. - - The rendering context. - The owner plot model. - - - - Gets or sets Base. - - - - - Represents a series for stair step graphs. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The title. - - - - Initializes a new instance of the class. - - The color. - The stroke thickness. - The title. - - - - Gets the nearest point. - - The point. - interpolate if set to true . - A TrackerHitResult for the current hit. - - - - Renders the LineSeries on the specified rendering context. - - The rendering context. - The owner plot model. - - - - Gets or sets the stroke thickness of the vertical line segments. - - The vertical stroke thickness. - Set the value to NaN to use the StrokeThickness property for both horizontal and vertical segments. - Using the VerticalStrokeThickness property will have a small performance hit. - - - - Gets or sets the line style of the vertical line segments. - - The vertical line style. - - - - Represents a series for scatter plots. - - See http://en.wikipedia.org/wiki/Scatter_plot - - - - Represents a two-color line series. - - - - - The default second color. - - - - - Initializes a new instance of the class. - - - - - Sets the default values. - - The model. - - - - Renders the smoothed line. - - The render context. - The clipping rectangle. - The points. - - - - Gets or sets the color for the part of the line that is below the limit. - - - - - Gets the actual second color. - - The actual color. - - - - Gets or sets the limit. - - The parts of the line that is below this limit will be rendered with Color2. - The parts of the line that is above the limit will be rendered with Color. - - - - Gets or sets the dash array for the rendered line that is below the limit (overrides ). - - The dash array. - If this is not null it overrides the property. - - - - Gets or sets the line style for the part of the line that is below the limit. - - The line style. - - - - Gets the actual line style for the part of the line that is below the limit. - - The line style. - - - - Gets the actual dash array for the line that is below the limit. - - - - - Represents a series for pie/circle/doughnut charts. - - The arc length/central angle/area of each slice is proportional to the quantity it represents. - See Pie charts. - - - - The slices. - - - - - Initializes a new instance of the class. - - - - - Gets the point on the series that is nearest the specified point. - - The point. - Interpolate the series if this flag is set to true . - A TrackerHitResult for the current hit. - - - - Renders the series on the specified render context. - - The rendering context. - The model. - - - - Renders the legend symbol on the specified render context. - - The rendering context. - The legend rectangle. - - - - Checks if this data series requires X/Y axes. (e.g. PieSeries does not require axes) - - True if no axes are required. - - - - Ensures that the axes of the series is defined. - - - - - Check if the data series is using the specified axis. - - An axis. - True if the axis is in use. - - - - Sets the default values. - - The model. - - - - Updates the maximum and minimum values of the axes used by this series. - - - - - Updates the data. - - - - - Updates the maximum and minimum values of the series. - - - - - Gets or sets AngleIncrement. - - - - - Gets or sets AngleSpan. - - - - - Gets or sets a value indicating whether AreInsideLabelsAngled. - - - - - Gets or sets the name of the property containing the color. - - The color field. - - - - Gets or sets the diameter. - - The diameter. - - - - Gets or sets the exploded distance. - - The exploded distance. - - - - Gets or sets the inner diameter. - - The inner diameter. - - - - Gets or sets the color of the inside labels. - - If the value is OxyColors.Automatic, the will be used. - - - - Gets or sets the inside label format. - - The inside label format. - The formatting arguments are: value {0}, label {1} and percentage {2}. - - - - Gets or sets the inside label position. - - The inside label position. - - - - Gets or sets the is exploded field. - - The is exploded field. - - - - Gets or sets the label field. - - The label field. - - - - Gets or sets the legend format. - - The legend format. - - - - Gets or sets the outside label format. - - The outside label format. - - - - Gets or sets the slices. - - The slices. - - - - Gets or sets the start angle. - - The start angle. - - - - Gets or sets the stroke color. - - The stroke. - - - - Gets or sets the stroke thickness. - - The stroke thickness. - - - - Gets or sets the distance from the edge of the pie slice to the tick line. - - The distance. - - - - Gets or sets the length of the horizontal part of the tick. - - The length. - - - - Gets or sets the distance from the tick line to the outside label. - - The distance. - - - - Gets or sets the length of the radial part of the tick line. - - The length. - - - - Gets or sets the name of the property containing the value. - - The value field. - - - - Represents a line series that generates its dataset from a function. - - Define f(x) and make a plot on the range [x0,x1] or define x(t) and y(t) and make a plot on the range [t0,t1]. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class using a function f(x). - - The function f(x). - The start x value. - The end x value. - The increment in x. - The title (optional). - - - - Initializes a new instance of the class using a function f(x). - - The function f(x). - The start x value. - The end x value. - The number of points. - The title (optional). - - - - Initializes a new instance of the class using functions x(t) and y(t). - - The function x(t). - The function y(t). - The start t parameter. - The end t parameter. - The increment in t. - The title. - - - - Initializes a new instance of the class using functions x(t) and y(t). - - The function x(t). - The function y(t). - The start t parameter. - The end t parameter. - The number of points. - The title. - - - - Represent a slice of a . - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The label. - The value. - - - - Gets or sets Fill. - - - - - Gets the actual fill color. - - The actual color. - - - - Gets or sets a value indicating whether IsExploded. - - - - - Gets or sets Label. - - - - - Gets or sets Value. - - - - - Gets or sets the default fill color. - - The default fill color. - -
-
diff --git a/packages/OxyPlot.Wpf.2014.1.546/OxyPlot.Wpf.2014.1.546.nupkg b/packages/OxyPlot.Wpf.2014.1.546/OxyPlot.Wpf.2014.1.546.nupkg deleted file mode 100644 index bbe259a..0000000 Binary files a/packages/OxyPlot.Wpf.2014.1.546/OxyPlot.Wpf.2014.1.546.nupkg and /dev/null differ diff --git a/packages/OxyPlot.Wpf.2014.1.546/README.md b/packages/OxyPlot.Wpf.2014.1.546/README.md deleted file mode 100644 index f365550..0000000 --- a/packages/OxyPlot.Wpf.2014.1.546/README.md +++ /dev/null @@ -1,40 +0,0 @@ -OxyPlot is a cross-platform plotting library for .NET - -- [Web page](http://oxyplot.org) -- [Documentation](http://oxyplot.org/documentation) -- [Announcements](http://oxyplot.org/announcements) / [atom](http://oxyplot.org/atom.xml) -- [Discussion forum](http://discussion.oxyplot.org) -- [Source repository](http://github.com/oxyplot/oxyplot) -- [Issue tracker](http://github.com/oxyplot/oxyplot/issues) -- [NuGet packages](http://www.nuget.org/packages?q=oxyplot) -- [Stack Overflow](http://stackoverflow.com/questions/tagged/oxyplot) -- [Twitter](https://twitter.com/hashtag/oxyplot) -- [Gitter](https://gitter.im/oxyplot/oxyplot) - -[![Build status](https://ci.appveyor.com/api/projects/status/mlaqnruo6ic3oe60)](https://ci.appveyor.com/project/objorke/oxyplot) - -[![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/oxyplot/oxyplot?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) - -![Plot](http://oxyplot.org/public/images/normal-distributions.png) - -#### Branches - -`master` - the release branch (stable channel) -`develop` - the main branch with the latest development changes (pre-release channel) - -See '[A successful git branching model](http://nvie.com/posts/a-successful-git-branching-model/)' for more information about the branching model in use. - -#### Getting started - -1. Use the NuGet package manager to add a reference to OxyPlot -2. Add a `PlotView` to your user interface -3. Create a `PlotModel` in your code -4. Bind the `PlotModel` to the `Model` property of your `PlotView` - -#### Examples - -You can find examples in the `/Source/Examples` folder in the code repository. - -#### Contribute - -See [the documentation](http://oxyplot.org/documentation/contributions) for information about how to contribute! diff --git a/packages/OxyPlot.Wpf.2014.1.546/lib/net40/OxyPlot.Wpf.XML b/packages/OxyPlot.Wpf.2014.1.546/lib/net40/OxyPlot.Wpf.XML deleted file mode 100644 index 1ace924..0000000 --- a/packages/OxyPlot.Wpf.2014.1.546/lib/net40/OxyPlot.Wpf.XML +++ /dev/null @@ -1,5540 +0,0 @@ - - - - OxyPlot.Wpf - - - - - The annotation base class. - - - - - Identifies the dependency property. - - - - - Creates the internal annotation object. - - The annotation. - - - - Synchronizes the properties. - - - - - Handles changes in appearance. - - The sender. - The instance containing the event data. - - - - Handles changes in data. - - The sender. - The instance containing the event data. - - - - Gets or sets the rendering layer of the annotation. The default value is . - - - - - Gets or sets the internal annotation object. - - - - - This is a WPF wrapper of OxyPlot.ArrowAnnotation - - - - - Provides an abstract base class for annotations that contains text. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Synchronizes the properties. - - - - - Gets or sets the text. - - - - - Gets or sets the color of the text. - - - - - Gets or sets the text position. - - If the value is DataPoint.Undefined, the centroid of the polygon will be used. - - - - Gets or sets the text horizontal alignment. - - The text horizontal alignment. - - - - Gets or sets the vertical alignment of text (above or below the line). - - - - - Gets or sets the rotation angle (degrees). - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - - - - Creates the internal annotation object. - - The annotation. - - - - Synchronizes the properties. - - - - - Gets or sets the arrow direction. - - - - - Gets or sets the color. - - - - - Gets or sets the end point. - - - - - Gets or sets the length of the head (relative to the stroke thickness). - - The length of the head. - - - - Gets or sets the width of the head (relative to the stroke thickness). - - The width of the head. - - - - Gets or sets the line join. - - The line join. - - - - Gets or sets LineStyle. - - - - - Gets or sets the start point. - - This property is overridden by the ArrowDirection property, if set. - - - - Gets or sets the stroke thickness. - - - - - Gets or sets the 'veeness' of the arrow head (relative to thickness). - - - - - This is a WPF wrapper of . - - - - - Provides an abstract base class for shape annotations. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Synchronizes the properties. - - - - - Gets or sets the fill color. - - - - - Gets or sets the stroke color. - - - - - Gets or sets the stroke thickness. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - - - - Creates the internal annotation object. - - The annotation. - - - - Synchronizes the properties. - - - - - Gets or sets the size. - - - - - Gets or sets the text margin. - - - - - Gets or sets the shape. - - - - - Gets or sets the X coordinate. - - - - - Gets or sets the Y coordinate. - - - - - This is a WPF wrapper of OxyPlot.EllipseAnnotation - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - - - - Creates the internal annotation object. - - The annotation. - - - - Synchronizes the properties. - - - - - Gets or sets the X. - - - - - Gets or sets the Y. - - - - - This is a WPF wrapper of OxyPlot.PathAnnotation - - - - - This is a WPF wrapper of OxyPlot.PathAnnotation - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Creates the internal annotation object. - - The annotation. - - - - Synchronizes the properties. - - - - - Gets or sets a value indicating whether to clip the annotation line by the X axis range. - - true if clipping by the X axis is enabled; otherwise, false. - - - - Gets or sets a value indicating whether to clip the annotation line by the Y axis range. - - true if clipping by the Y axis is enabled; otherwise, false. - - - - Gets or sets a value indicating whether the text should be clipped within the plot area. - - true if text should be clipped; otherwise, false. - - - - Gets or sets the annotation color. - - The color. - - - - Gets or sets the line join. - - The line join. - - - - Gets or sets LineStyle. - - - - - Gets or sets StrokeThickness. - - - - - Gets or sets the text margin (along the line). - - The text margin. - - - - Gets or sets the text orientation. - - The text orientation. - - - - Gets or sets the text position relative to the line. - - The text position in the interval [0,1]. - Positions smaller than 0.25 are left aligned at the start of the line - Positions larger than 0.75 are right aligned at the end of the line - Other positions are center aligned at the specified position - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - - - - Creates the internal annotation object. - - The annotation. - - - - Synchronizes the properties. - - - - - Gets or sets the equation. - - The equation. - - - - Gets or sets the resolution. - - The resolution. - - - - Gets or sets Type. - - - - - This is a WPF wrapper of OxyPlot.PolygonAnnotation - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - - - - Creates the internal annotation object. - - The annotation. - - - - Synchronizes the properties. - - - - - Gets or sets the line join. - - The line join. - - - - Gets or sets the line style. - - - - - Gets or sets the points. - - - - - This is a WPF wrapper of OxyPlot.PolylineAnnotation - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - - - - Creates the internal annotation object. - - The annotation. - - - - Synchronizes the properties. - - - - - Gets or sets the points. - - The points. - - - - Gets or sets the minimum length of the segment. - Increasing this number will increase performance, - but make the curve less accurate. - - The minimum length of the segment. - - - - Gets or sets a value indicating whether the polyline should be smoothed. - - true if smooth; otherwise, false. - - - - This is a WPF wrapper of OxyPlot.RectangleAnnotation - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - - - - Creates the internal annotation object. - - The annotation. - - - - Synchronizes the properties. - - - - - Gets or sets the Maximum X. - - - - - Gets or sets the Maximum Y. - - - - - Gets or sets the Minimum X. - - - - - Gets or sets the Minimum Y. - - - - - This is a WPF wrapper of OxyPlot.TextAnnotation - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - - - - Creates the internal annotation object. - - The annotation. - - - - Synchronizes the properties. - - - - - Gets or sets the fill color of the background rectangle. - - - - - Gets or sets the position offset (screen coordinates). - - - - - Gets or sets the padding of the background rectangle. - - - - - Gets or sets the stroke color of the background rectangle. - - - - - Gets or sets the stroke thickness of the background rectangle. - - - - - This is a WPF wrapper of OxyPlot.LineAnnotation - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - - - - Creates the internal annotation object. - - The annotation. - - - - Synchronizes the properties. - - - - - Gets or sets Intercept. - - - - - Gets or sets MaximumX. - - - - - Gets or sets MaximumY. - - - - - Gets or sets MinimumX. - - - - - Gets or sets MinimumY. - - - - - Gets or sets Slope. - - - - - Gets or sets Type. - - - - - Gets or sets X. - - - - - Gets or sets Y. - - - - - This is a WPF wrapper of OxyPlot.AngleAxis. - - - - - This is a WPF wrapper of OxyPlot.LinearAxis. - - - - - The axis base. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Creates the model. - - An axis object. - - - - The visual appearance changed. - - The sender. - The event args. - - - - The data changed. - - The sender. - The event args. - - - - The on data changed handler. - - - - - The on property changed handler. - - The event args. - - - - Handles changed visuals. - - - - - Synchronizes the properties. - - - - - Gets or sets the internal axis. - - - - - Gets or sets the absolute maximum. This is only used for the UI control. It will not be possible to zoom/pan beyond this limit. - - - - - Gets or sets the absolute minimum. This is only used for the UI control. It will not be possible to zoom/pan beyond this limit. - - - - - Gets or sets Angle. - - - - - Gets or sets AxisDistance. - - - - - Gets or sets AxisTickToLabelDistance. - - - - - Gets or sets AxisTitleDistance. - - - - - Gets or sets the color of the axis line. - - The color of the axis line. - - - - Gets or sets the axis line style. - - The axis line style. - - - - Gets or sets the axis line thickness. - - The axis line thickness. - - - - Gets or sets a value indicating whether [clip title]. - - true if [clip title]; otherwise, false . - - - - Gets or sets EndPosition. - - - - - Gets or sets ExtraGridlineColor. - - - - - Gets or sets ExtraGridlineStyle. - - - - - Gets or sets ExtraGridlineThickness. - - - - - Gets or sets ExtraGridLines. - - - - - Gets or sets the filter function. - - The filter function. - - - - Gets or sets FilterMaxValue. - - - - - Gets or sets FilterMinValue. - - - - - Gets or sets Font. - - - - - Gets or sets FontSize. - - - - - Gets or sets the font weight. - - - - - Gets or sets the interval length. - - - - - Gets or sets a value indicating whether the axis is visible. - - - - - Gets or sets a value indicating whether pan is enabled. - - - - - Gets or sets a value indicating whether zoom is enabled. - - - - - Gets or sets the axis key. - - - - - Gets or sets the label formatter. - - - - - Gets or sets the layer. - - - - - Gets or sets the color of the major gridlines. - - - - - Gets or sets the line style of the major gridlines. - - - - - Gets or sets MajorGridlineThickness. - - - - - Gets or sets MajorStep. - - - - - Gets or sets MajorTickSize. - - - - - Gets or sets Maximum. - - - - - Gets or sets MaximumPadding. - - - - - Gets or sets Minimum. - - - - - Gets or sets MinimumPadding. - - - - - Gets or sets MinimumRange. - - - - - Gets or sets MinorGridlineColor. - - - - - Gets or sets MinorGridlineStyle. - - - - - Gets or sets MinorGridlineThickness. - - - - - Gets or sets MinorStep. - - - - - Gets or sets MinorTickSize. - - - - - Gets or sets Position. - - - - - Gets or sets a value indicating whether PositionAtZeroCrossing. - - - - - Gets or sets the position tier which defines in which tier the axis is displayed. - - The bigger the value the further afar is the axis from the graph. - - - - Gets or sets the start position. - - - - - Gets or sets the string format. - - - - - Gets or sets the tick style. - - - - - Gets or sets the tick line color. - - - - - Gets or sets the title. - - - - - Gets or sets the length of the title clipping. - - The length of the title clipping. - - - - Gets or sets the color of the title. - - The color of the title. - - - - Gets or sets the title font. - - The title font. - - - - Gets or sets the size of the title font. - - The size of the title font. - - - - Gets or sets the title font weight. - - The title font weight. - - - - Gets or sets TitleFormatString. - - - - - Gets or sets TitlePosition. - - - - - Gets or sets Unit. - - - - - Gets or sets a value indicating whether UseSuperExponentialFormat. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes a new instance of the class. - - - - - Creates the internal axis. - - The internal axis. - - - - Synchronizes the properties. - - - - - Gets or sets a value indicating whether FormatAsFractions. - - - - - Gets or sets FractionUnit. - - - - - Gets or sets FractionUnitSymbol. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - - - - Synchronizes the properties. - - - - - Gets or sets the start angle (degrees). - - - - - Gets or sets the end angle (degrees). - - - - - This is a WPF wrapper of OxyPlot.CategoryAxis. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - - - - Creates the internal axis. - - The internal axis. - - - - Synchronizes the properties. - - - - - Gets or sets the gap width. - - The width of the gap. - - - - Gets or sets a value indicating whether IsTickCentered. - - - - - Gets or sets ItemsSource. - - - - - Gets or sets LabelField. - - - - - Gets or sets Labels. - - - - - This is a WPF wrapper of OxyPlot.DateTimeAxis. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - - - - Creates the internal model. - - The internal axis. - - - - Synchronizes the properties. - - - - - Gets or sets CalendarWeekRule. - - - - - Gets or sets FirstDateTime. - - - - - Gets or sets FirstDayOfWeek. - - - - - Gets or sets IntervalType. - - - - - Gets or sets LastDateTime. - - - - - Gets or sets MinorIntervalType. - - - - - Provides a WPF wrapper for the . - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes a new instance of the class. - - - - - Creates the model. - - - An axis object. - - - - - Synchronizes the properties. - - - - - Translates a collection of to an . - - - The gradient stops collection to convert. - - - The palette size. - - - The interpolated . - - - - - Validates the palette size. - - - The property value. - - - The validation result. - - - - - Gets or sets the palette size. - - - - - Gets or sets the high color. - - - - - Gets or sets the low color. - - - - - Gets or sets the gradient stops. - - - - - This is a WPF wrapper of OxyPlot.MagnitudeAxis. - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - - - - This is a WPF wrapper of OxyPlot.TimeSpanAxis. - - - - - Initializes a new instance of the class. - - - - - Creates the internal axis. - - The internal axis. - - - - The synchronize properties. - - - - - This is a WPF wrapper of OxyPlot.LogarithmicAxis. - - - - - Identifies the dependency property. - - The logarithmic base. - - - - Identifies the dependency property. - - - - - Initializes a new instance of the class. - - - - - Creates the internal axis. - - The internal axis. - - - - Synchronizes the properties. - - - - - Gets or sets Base. - - - - - Gets or sets a value indicating whether the ActualMaximum and ActualMinimum values should be padded to the nearest power of the Base. - - - - - Converts from to the maximum thicknesses. - - This is used in the to convert BorderThickness properties to Path.StrokeThickness (double). - The maximum thickness value is used. - - - - Converts a value. - - The value produced by the binding source. - The type of the binding target property. - The converter parameter to use. - The culture to use in the converter. - A converted value. If the method returns null, the valid null value is used. - - - - Converts a value. - - The value that is produced by the binding target. - The type to convert to. - The converter parameter to use. - The culture to use in the converter. - A converted value. If the method returns null, the valid null value is used. - - - - Converts between and . - - - - - Converts a value. - - The value produced by the binding source. - The type of the binding target property. - The converter parameter to use. - The culture to use in the converter. - A converted value. If the method returns null, the valid null value is used. - - - - Converts a value. - - The value that is produced by the binding target. - The type to convert to. - The converter parameter to use. - The culture to use in the converter. - A converted value. If the method returns null, the valid null value is used. - - - - Provides a standard set of commands for the control. - - - - - Gets the value that represents the "Reset all axes" command. - - - - - Represents a control that displays a . - - - Represents a control that displays a . - - This file contains dependency properties used for defining the PlotView in XAML. These properties are only used when Model is null. In this case an internal PlotModel is created and the dependency properties are copied from the control to the internal PlotModel. - - Represents a control that displays a . - - - - - Provides an abstract base class for Control objects that listens to the CompositionTarget.Rendering event. - - - - - The renderingEventListener - - - - - Initializes a new instance of the class. - - - - - Subscribes to CompositionTarget.Rendering event. - - - - - Unsubscribes the CompositionTarget.Rendering event. - - - - - Handles the CompositionTarget.Rendering event. - - The sender. - The instance containing the event data. - - - - The Grid PART constant. - - - - - The model lock. - - - - - The tracker definitions. - - - - - The canvas. - - - - - The currently attached model. - - - - - The current model (synchronized with the property, but can be accessed from all threads. - - - - - The current tracker. - - - - - The grid. - - - - - The internal model. - - - - - The default controller. - - - - - Invalidation flag (0: no update, 1: update visual elements only, 2:update data). - - - - - The is rendering flag. - - - - - The mouse down point. - - - - - The overlays. - - - - - The render context - - - - - The zoom control. - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - - - - Hides the tracker. - - - - - Hides the zoom rectangle. - - - - - Invalidate the PlotView (not blocking the UI thread) - - The update Data. - - - - Sets the cursor type. - - The cursor type. - - - - Shows the tracker. - - The tracker data. - - - - Shows the zoom rectangle. - - The rectangle. - - - - Stores text on the clipboard. - - The text. - - - - When overridden in a derived class, is invoked whenever application code or internal processes call . - - - - - Pans all axes. - - The delta. - - - - Zooms all axes. - - The zoom factor. - - - - Resets all axes. - - - - - Saves the PlotView as a bitmap. - - Name of the file. - The width. - The height. - The background. - - - - Saves the PlotView as xaml. - - Name of the file. - - - - Renders the PlotView to a bitmap. - - A bitmap. - - - - Renders the PlotView to xaml. - - The xaml. - - - - Called to arrange and size the content of a object. - - The computed size that is used to arrange the content. - The size of the control. - - - - Called when the visual appearance is changed. - - - - - Invoked when an unhandled KeyDown attached event reaches an element in its route that is derived from this class. Implement this method to add class handling for this event. - - The that contains the event data. - - - - Invoked when an unhandled MouseDown attached event reaches an element in its route that is derived from this class. Implement this method to add class handling for this event. - - The that contains the event data. This event data reports details about the mouse button that was pressed and the handled state. - - - - Invoked when an unhandled MouseMove attached event reaches an element in its route that is derived from this class. Implement this method to add class handling for this event. - - The that contains the event data. - - - - Invoked when an unhandled MouseUp routed event reaches an element in its route that is derived from this class. Implement this method to add class handling for this event. - - The that contains the event data. The event data reports that the mouse button was released. - - - - Invoked when an unhandled  attached event is raised on this element. Implement this method to add class handling for this event. - - The that contains the event data. - - - - Invoked when an unhandled  attached event is raised on this element. Implement this method to add class handling for this event. - - The that contains the event data. - - - - Invoked when an unhandled MouseWheel attached event reaches an element in its route that is derived from this class. Implement this method to add class handling for this event. - - The that contains the event data. - - - - Called when the parent of visual object is changed. - - A value of type that represents the previous parent of the object. If the object did not have a previous parent, the value of the parameter is null. - - - - Handles the Loaded event. - - The sender. - The instance containing the event data. - - - - Handles the Unloaded event. - - The sender. - The instance containing the event data. - - - - Called when the visual appearance is changed. - - The d. - The instance containing the event data. - - - - Called when the model is changed. - - The sender. - The instance containing the event data. - - - - Performs the copy operation. - - The sender. - The instance containing the event data. - - - - Invokes the specified action on the UI Thread (blocking the calling thread). - - The action. - - - - Invokes the specified action on the UI Thread (without blocking the calling thread). - - The action. - - - - Called when annotations is changed. - - The sender. - The instance containing the event data. - - - - Called when axes is changed. - - The sender. - The instance containing the event data. - - - - Called when the model is changed. - - - - - Called when series is changed. - - The sender. - The instance containing the event data. - - - - Called when size of the control is changed. - - The sender. - The instance containing the event data. - - - - Synchronizes the logical tree. - - The instance containing the event data. - - - - Updates the model. If Model==null, an internal model will be created. The ActualModel.Update will be called (updates all series data). - - if set to true , all data collections will be updated. - - - - Synchronize properties in the internal PlotView model - - - - - Synchronizes the annotations in the internal model. - - - - - Synchronizes the axes in the internal model. - - - - - Synchronizes the series in the internal model. - - - - - Updates the visuals. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - The annotations. - - - - - The axes. - - - - - The series. - - - - - Invalidates the PlotView control/view when the property is changed. - - - - - Called when the event occurs. - - The data for the event. - - - - Called when the event occurs. - - The data for the event. - - - - Called when the event occurs. - - The data for the event. - - - - Gets the annotations. - - The annotations. - - - - Gets or sets a value indicating whether to disconnect the canvas while updating. - - true if canvas should be disconnected while updating; otherwise, false. - - - - Gets or sets a value indicating whether this instance is being rendered. - - When the visual is removed from the visual tree, this property should be set to false. - - - - Gets the tracker definitions. - - The tracker definitions. - - - - Gets the actual model. - - The actual model. - - - - Gets the actual model. - - The actual model. - - - - Gets the actual PlotView controller. - - The actual PlotView controller. - - - - Gets the coordinates of the client area of the view. - - - - - Gets the actual PlotView controller. - - The actual PlotView controller. - - - - Gets the axes. - - The axes. - - - - Gets or sets Culture. - - - - - Gets or sets the tracker template. - - The tracker template. - - - - Gets or sets a value indicating whether IsLegendVisible. - - - - - Gets or sets a value indicating whether the mouse wheel is enabled. - - - - - Gets or sets LegendBackground. - - - - - Gets or sets LegendBorder. - - - - - Gets or sets LegendBorderThickness. - - - - - Gets or sets LegendFont. - - - - - Gets or sets LegendFontSize. - - - - - Gets or sets LegendFontWeight. - - - - - Gets or sets LegendItemAlignment. - - - - - Gets or sets LegendItemOrder. - - - - - Gets or sets LegendItemSpacing. - - - - - Gets or sets the max width of the legends. - - The max width of the legends. - - - - Gets or sets LegendMargin. - - - - - Gets or sets LegendOrientation. - - - - - Gets or sets the legend column spacing. - - The legend column spacing. - - - - Gets or sets the legend padding. - - - - - Gets or sets LegendPlacement. - - - - - Gets or sets the legend position. - - The legend position. - - - - Gets or sets LegendSymbolLength. - - - - - Gets or sets LegendSymbolMargin. - - - - - Gets or sets LegendSymbolPlacement. - - - - - Gets or sets LegendTitleFont. - - - - - Gets or sets the default font. - - - - - Gets or sets the default font size. - - - - - Gets or sets the default colors. - - - - - Gets or sets the text color of the legends. - - - - - Gets or sets the legend title. - - - - - Gets or sets color of the legend title. - - - - - Gets or sets the axis tier distance. - - - - - Gets or sets the color of selected elements. - - - - - Gets or sets a rendering decorator. - - - - - Gets or sets the font of the subtitles. - - - - - Gets or sets the color of the titles. - - - - - Gets or sets the font size of the legend titles. - - - - - Gets or sets the color of the subtitles. - - - - - Gets or sets the font weight of the legend titles. - - - - - Gets or sets the model. - - The model. - - - - Gets or sets the pan cursor. - - The pan cursor. - - - - Gets or sets the background brush of the PlotView area. - - The brush. - - - - Gets or sets the color of the PlotView area border. - - The color of the PlotView area border. - - - - Gets or sets the thickness of the PlotView area border. - - The thickness of the PlotView area border. - - - - Gets or sets the PlotView controller. - - The PlotView controller. - - - - Gets or sets the PlotView margins. - - The PlotView margins. - - - - Gets or sets PlotType. - - - - - Gets the series. - - The series. - - - - Gets or sets the subtitle. - - The subtitle. - - - - Gets or sets the font size of the subtitle. - - - - - Gets or sets the font weight of the subtitle. - - - - - Gets or sets text color. - - - - - Gets or sets the title. - - The title. - - - - Gets or sets the horizontal alignment of the title and subtitle. - - - The alignment. - - - - - Gets or sets font of the title. - - - - - Gets or sets font size of the title. - - - - - Gets or sets font weight of the title. - - - - - Gets or sets padding around the title. - - - - - Gets or sets the refresh flag (an integer value). When the flag is changed, the PlotView will be refreshed. - - The refresh value. - - - - Gets or sets the horizontal zoom cursor. - - The zoom horizontal cursor. - - - - Gets or sets the rectangle zoom cursor. - - The zoom rectangle cursor. - - - - Gets or sets the zoom rectangle template. - - The zoom rectangle template. - - - - Gets or sets the vertical zoom cursor. - - The zoom vertical cursor. - - - - HeatMapSeries WPF wrapper - - - - - Abstract base class for series that use X and Y axes. - - - - - Abstract base class for series that use X and Y axes. - - - - - Abstract base class for series. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Creates the model. - - A series. - - - - The appearance changed. - - The d. - The e. - - - - The data changed. - - The d. - The e. - - - - The on data changed. - - - - - The on items source changed. - - The old value. - The new value. - - - - The on visual changed. - - - - - Synchronizes the properties. - - The series. - - - - Gets or sets Color. - - - - - Gets or sets the internal series. - - - - - Gets or sets Title. - - - - - Gets or sets TrackerFormatString. - - - - - Gets or sets TrackerKey. - - - - - Synchronizes the properties. - - The series. - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Synchronizes the properties. - - The series. - - - - Gets or sets the x-axis key. - - - - - Gets or sets the y axis key. - - - - - Identifies this dependency property. - - - - - Identifies this dependency property. - - - - - Identifies this dependency property. - - - - - Identifies this dependency property. - - - - - Identifies this dependency property. - - - - - Identifies this dependency property. - - - - - Identifies this dependency property. - - - - - Identifies this dependency property. - - - - - Initializes a new instance of the class. - - - - - The create model. - - - The . - - - - - The synchronize properties. - - - The series. - - - - - Gets or sets LowColor - - - - - Gets or sets HighColor - - - - - Gets or sets ColorAxisKey property. - - - - - Gets or sets X0. - - - - - Gets or sets X1 - - - - - Gets or sets Y0 - - - - - Gets or sets Y1 - - - - - Gets or sets Data - - - - - Provides a base class for scatter series. - - The type of the points. - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes a new instance of the class. - - - - - Creates the internal series. - - The series. - - - - Synchronizes the properties. - - The series. - - - - Gets or sets bin size. - - - - - Gets or sets size data field. - - - - - Gets or sets tag data field. - - - - - Gets or sets value (color) data field. - - - - - Gets or sets X data field. - - - - - Gets or sets Y data field. - - - - - Gets or sets mapping function. - - - - - Gets or sets fill color of the markers. - - - - - Gets or sets custom outline of the markers. - - - - - Gets or sets the size of the markers. - - - - - Gets or sets color of the marker strokes. - - - - - Gets or sets thickness of the marker strokes. - - - - - Gets or sets type of the markers. - - - - - Gets or sets the color axis key. - - The color axis key. - - - - This is a WPF wrapper of OxyPlot.StairStepSeries - - - - - This is a WPF wrapper of OxyPlot.LineSeries - - - - - Base class for data series - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Synchronizes the properties. - - The series. - - - - Gets or sets a value indicating whether the tracker can interpolate points. - - - - - Gets or sets DataFieldX. - - - - - Gets or sets DataFieldY. - - - - - Gets or sets the mapping. - - The mapping. - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - - - - Creates the internal series. - - The internal series. - - - - Synchronizes the properties. - - The series. - - - - Gets or sets the broken line color. - - - - - Gets or sets the broken line style. - - - - - Gets or sets the broken line thickness. - - - - - Gets or sets Dashes. - - - - - Gets or sets the decimator. - - - The decimator. - - - - - Gets or sets the label format string. - - The label format string. - - - - Gets or sets the label margin. - - The label margin. - - - - Gets or sets LineJoin. - - - - - Gets or sets LineLegendPosition. - - - - - Gets or sets LineStyle. - - - - - Gets or sets MarkerFill. - - - - - Gets or sets MarkerOutline. - - - - - Gets or sets the marker resolution. - - The marker resolution. - - - - Gets or sets the marker size. - - - - - Gets or sets MarkerStroke. - - - - - Gets or sets MarkerStrokeThickness. - - - - - Gets or sets MarkerType. - - - - - Gets or sets MinimumSegmentLength. - - - - - Gets or sets a value indicating whether this is smooth. - - true if smooth; otherwise, false . - - - - Gets or sets StrokeThickness. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes a new instance of the class. - - - - - Creates the internal series. - - - The internal series. - - - - - Synchronizes the properties. - - The series. - - - - Gets or sets the stroke thickness of the vertical line segments. - - The vertical stroke thickness. - Set the value to NaN to use the StrokeThickness property for both horizontal and vertical segments. - Using the VerticalStrokeThickness property will have a small performance hit. - - - - Gets or sets the line style of the vertical line segments. - - The vertical line style. - - - - This is a WPF wrapper of OxyPlot.ScatterErrorSeries - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes a new instance of the class. - - - - - Synchronizes the properties. - - The series. - - - - Gets or sets the data field X error. - - - The data field error. - - - - - Gets or sets the data field Y error. - - - The data field error. - - - - - Gets or sets the color of the error bar. - - - The color of the error bar. - - - - - Gets or sets the width of the error bar stop. - - - The width of the error bar stop. - - - - - Gets or sets the error bar stroke thickness. - - - The error bar stroke thickness. - - - - - Gets or sets the minimum size (relative to ) of the error bars to be shown. - - - - - Provides a weak event listener that pass the CompositionTarget.Rendering event to the specified handler. - - - - - Provides a weak event listener that pass the events of the specified event manager to the specified event handler. - - The type of the event manager. - The type of the event args. - - - - The real event handler. - - - - - Initializes a new instance of the class. - - The handler. - - - - Receives events from the centralized event manager. - - The type of the calling this method. - Object that originated the event. - Event data. - true if the listener handled the event. It is considered an error by the handling in WPF to register a listener for an event that the listener does not handle. Regardless, the method should return false if it receives an event that it does not recognize or handle. - - - - Initializes a new instance of the class. - - The handler. - - - - Represents a weak event manager for the CompositionTarget.Rendering event. - - - - - Provides a generic base class for weak event managers that handle static events. - - The type of the manager. - - - - Adds the specified listener. - - The listener. - - - - Removes the specified listener. - - The listener. - - - - When overridden in a derived class, starts listening for the event being managed. After is first called, the manager should be in the state of calling or whenever the relevant event from the provided source is handled. - - The source to begin listening on. - - - - When overridden in a derived class, stops listening on the provided source for the event being managed. - - The source to stop listening on. - - - - Handlers the specified sender. - - The sender. - The instance containing the event data. - - - - Starts the listening. - - - - - Stops the listening. - - - - - Gets the current manager. - - The current manager. - - - - Start listening to the CompositionTarget.Rendering event. - - - - - Stop listening to the CompositionTarget.Rendering event. - - - - - Defines additional . - - - - - The undefined color. - - - - - The automatic color. - - - - - The OxyPlot.Wpf namespace contains WPF controls and PNG export functionality based on WPF. - - - - - This is a WPF wrapper of OxyPlot.BarSeries - - - - - This is a WPF wrapper of OxyPlot.BarSeries<T>. - - The type of the items. - - - - This is a WPF wrapper of OxyPlot.BarSeriesBase - - - - - This is a WPF wrapper of OxyPlot.BarSeries - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Creates the model. - - The series. - - - - Synchronizes the properties. - - The series. - - - - Gets or sets BaseValue. - - - - - Gets or sets the color field. - - The color field. - - - - Gets or sets the color of the fill. - - The color of the fill. - - - - Gets or sets a value indicating whether the series is stacked. - - - - - Gets or sets the label format string. - - The label format string. - - - - Gets or sets the label margin. - - The label margin. - - - - Gets or sets the label placement. - - The label placement. - - - - Gets or sets NegativeFillColor. - - - - - Gets or sets the stack group. - - The stack group. - - - - Gets or sets the stroke color. - - - - - Gets or sets the stroke thickness. - - - - - Gets or sets the value field. - - - - - Synchronizes the properties. - - The series. - - - - Identifies the dependency property. - - - - - Initializes a new instance of the class. - - - - - Synchronizes the properties. - - The series. - - - - Gets or sets ColumnWidth. - - - - - Provides functionality to export plots to scalable vector graphics using text measuring in WPF. - - - - - Initializes a new instance of the class. - - - - - Provides utility methods related to the keyboard. - - - - - Gets the current modifier keys. - - A value. - - - - Provides functionality to export plots to XAML. - - - - - Export the specified plot model to an xaml string. - - The model. - The width. - The height. - The background. - A xaml string. - - - - Exports the specified plot model to a xaml file. - - The model. - Name of the file. - The width. - The height. - The background. - - - - Provides functionality to export plots to png. - - - - - Initializes a new instance of the class. - - - - - Exports the specified plot model to a file. - - The model to export. - The file name. - The width of the output bitmap. - The height of the output bitmap. - The background color. The default value is null. - The resolution (resolution). The default value is 96. - - - - Exports the specified plot model to a stream. - - The model to export. - The stream. - The width of the output bitmap. - The height of the output bitmap. - The background color. The default value is null. - The resolution (resolution). The default value is 96. - - - - Exports the specified plot model to a bitmap. - - The plot model. - The width. - The height. - The background. - The resolution (dpi). - A bitmap. - - - - Exports the specified to the specified . - - The model. - The output stream. - - - - Exports the specified plot model to a bitmap. - - The model to export. - A bitmap. - - - - Gets or sets the width of the output image. - - - - - Gets or sets the height of the output image. - - - - - Gets or sets the resolution of the output image. - - The resolution in dots per inch (dpi). - - - - Gets or sets the background color. - - - - - This is a WPF wrapper of OxyPlot.BarSeries - - - - - Identifies the dependency property. - - - - - Initializes a new instance of the class. - - - - - Synchronizes the properties. - - The series. - - - - Gets or sets the bar width. - - - - - The WPF wrapper for OxyPlot.TwoColorLineSeries. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes a new instance of the class. - - - - - Synchronizes the properties. - - The series. - - - - Gets or sets Color2. - - - - - Gets or sets Limit. - - - - - Gets or sets LineStyle2. - - - - - This is a WPF wrapper of OxyPlot.ScatterSeries - - - - - The tracker control. - - - - - The path part string. - - - - - The content part string. - - - - - The content container part string. - - - - - The horizontal line part string. - - - - - The vertical line part string. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - The content. - - - - - The horizontal line. - - - - - The path. - - - - - The content container. - - - - - The vertical line. - - - - - Initializes static members of the class. - - - - - When overridden in a derived class, is invoked whenever application code or internal processes call . - - - - - Called when the position is changed. - - The sender. - The instance containing the event data. - - - - Called when the position is changed. - - The dependency property changed event args. - - - - Update the position and border of the tracker. - - - - - Create the border geometry. - - The horizontal alignment. - The vertical alignment. - The width. - The height. - The margin. - The border geometry. - - - - Create a border geometry with a 'pointer'. - - The horizontal alignment. - The vertical alignment. - The width. - The height. - The margin. - The border geometry. - - - - Gets or sets BorderEdgeMode. - - - - - Gets or sets HorizontalLineVisibility. - - - - - Gets or sets VerticalLineVisibility. - - - - - Gets or sets LineStroke. - - - - - Gets or sets LineExtents. - - - - - Gets or sets LineDashArray. - - - - - Gets or sets a value indicating whether to show a 'pointer' on the border. - - - - - Gets or sets the corner radius (only used when ShowPoint=false). - - - - - Gets or sets the distance of the content container from the trackers Position. - - - - - Gets or sets a value indicating whether the tracker can center its content box horizontally. - - - - - Gets or sets a value indicating whether the tracker can center its content box vertically. - - - - - Gets or sets Position of the tracker. - - - - - Represents a tracker definition. - - The tracker definitions make it possible to show different trackers for different series. - The property is matched with the - in the TrackerDefinitions collection in the control. - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Gets or sets the tracker key. - - The Plot will use this property to find the TrackerDefinition that matches the TrackerKey of the current series. - - - - Gets or sets the tracker template. - - The tracker control will be added/removed from the Tracker overlay as necessary. - The DataContext of the tracker will be set to a TrackerHitResult with the current tracker data. - - - - This is a WPF wrapper of OxyPlot.AreaSeries - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes a new instance of the class. - - - - - Creates the internal series. - - The internal series. - - - - Synchronizes the properties. - - The series. - - - - Gets or sets the color of the second line. - - - - - Gets or sets ConstantY2. - - - - - Gets or sets DataFieldX2. - - - - - Gets or sets DataFieldY2. - - - - - Gets or sets Fill. - - - - - Gets or sets a value indicating whether Reverse2. - - - - - Represents a control that displays a . - - - - - Extension method used to convert to/from Windows/Windows.Media classes. - - - - - Calculate the distance between two points. - - The first point. - The second point. - The distance. - - - - Converts an to a . - - The color. - A . - - - - Converts an to a . - - The color. - A Color. - - - - Converts an OxyThickness to a Thickness. - - The thickness. - A instance. - - - - Converts a ScreenVector to a Vector. - - The c. - A instance. - - - - Converts a HorizontalAlignment to a HorizontalAlignment. - - The alignment. - A HorizontalAlignment. - - - - Converts a HorizontalAlignment to a VerticalAlignment. - - The alignment. - A VerticalAlignment. - - - - Converts a Color to an OxyColor. - - The color. - An OxyColor. - - - - Converts a to an . - - The brush. - An . - - - - Converts a Thickness to an . - - The thickness. - An . - - - - Converts a to a . - - The point. - A . - - - - Converts a Point array to a ScreenPoint array. - - The points. - A ScreenPoint array. - - - - Converts the specified vector to a ScreenVector. - - The vector. - A . - - - - Converts the specified key. - - The key to convert. - The converted key. - - - - Converts the specified button. - - The button to convert. - The converted mouse button. - - - - Converts to for a mouse wheel event. - - The instance containing the event data. - The that the event is relative to. - A containing the converted event arguments. - - - - Converts to for a mouse down event. - - The instance containing the event data. - The that the event is relative to. - A containing the converted event arguments. - - - - Converts to for a mouse up event. - - The instance containing the event data. - The that the event is relative to. - A containing the converted event arguments. - - - - Converts to for a mouse event. - - The instance containing the event data. - The that the event is relative to. - A containing the converted event arguments. - - - - Converts to for a touch started event. - - The instance containing the event data. - The that the event is relative to. - A containing the converted event arguments. - - - - Converts to for a touch delta event. - - The instance containing the event data. - The that the event is relative to. - A containing the converted event arguments. - - - - Converts to for a touch completed event. - - The instance containing the event data. - The that the event is relative to. - A containing the converted event arguments. - - - - The text measurement methods. - - - - - Measurement by TextBlock. - - - - - Measurement by glyph typeface. - - - - - Provides a implementation that adds WPF shapes to a . - - - - - The maximum number of figures per geometry. - - - - - The maximum number of polylines per line. - - - - - The minimum number of points per polyline. - - - - - The images in use - - - - - The image cache - - - - - The brush cache. - - - - - The font family cache - - - - - The canvas. - - - - - The clip rectangle. - - - - - The current tool tip - - - - - The pixel scale - - - - - Initializes a new instance of the class. - - The canvas. - - - - Draws an ellipse. - - The rectangle. - The fill color. If set to OxyColors.Undefined, the ellipse will not be filled. - The stroke color. If set to OxyColors.Undefined, the ellipse will not be stroked. - The thickness (in device independent units, 1/96 inch). - - - - Draws a collection of ellipses, where all have the same stroke and fill. - This performs better than calling DrawEllipse multiple times. - - The rectangles. - The fill color. If set to OxyColors.Undefined, the ellipses will not be filled. - The stroke color. If set to OxyColors.Undefined, the ellipses will not be stroked. - The stroke thickness (in device independent units, 1/96 inch). - - - - Draws a polyline. - - The points. - The stroke color. - The stroke thickness (in device independent units, 1/96 inch). - The dash array (in device independent units, 1/96 inch). Use null to get a solid line. - The line join type. - if set to true the shape will be aliased. - - - - Draws line segments defined by points (0,1) (2,3) (4,5) etc. - This should have better performance than calling DrawLine for each segment. - - The points. - The stroke color. - The stroke thickness (in device independent units, 1/96 inch). - The dash array (in device independent units, 1/96 inch). - The line join type. - if set to true the shape will be aliased. - - - - Draws a polygon. - - The points. - The fill color. If set to OxyColors.Undefined, the polygon will not be filled. - The stroke color. If set to OxyColors.Undefined, the polygon will not be stroked. - The stroke thickness (in device independent units, 1/96 inch). - The dash array (in device independent units, 1/96 inch). - The line join type. - If set to true the polygon will be aliased. - - - - Draws a collection of polygons, where all polygons have the same stroke and fill. - This performs better than calling DrawPolygon multiple times. - - The polygons. - The fill color. If set to OxyColors.Undefined, the polygons will not be filled. - The stroke color. If set to OxyColors.Undefined, the polygons will not be stroked. - The stroke thickness (in device independent units, 1/96 inch). - The dash array (in device independent units, 1/96 inch). - The line join type. - if set to true the shape will be aliased. - - - - Draws a rectangle. - - The rectangle. - The fill color. If set to OxyColors.Undefined, the rectangle will not be filled. - The stroke color. If set to OxyColors.Undefined, the rectangle will not be stroked. - The stroke thickness (in device independent units, 1/96 inch). - - - - Draws a collection of rectangles, where all have the same stroke and fill. - This performs better than calling DrawRectangle multiple times. - - The rectangles. - The fill color. If set to OxyColors.Undefined, the rectangles will not be filled. - The stroke color. If set to OxyColors.Undefined, the rectangles will not be stroked. - The stroke thickness (in device independent units, 1/96 inch). - - - - Draws text. - - The position. - The text. - The text color. - The font family. - Size of the font (in device independent units, 1/96 inch). - The font weight. - The rotation angle. - The horizontal alignment. - The vertical alignment. - The maximum size of the text (in device independent units, 1/96 inch). - - - - Measures the size of the specified text. - - The text. - The font family. - Size of the font (in device independent units, 1/96 inch). - The font weight. - - The size of the text (in device independent units, 1/96 inch). - - - - - Sets the tool tip for the following items. - - The text in the tool tip. - - - - Draws a portion of the specified . - - The source. - The x-coordinate of the upper-left corner of the portion of the source image to draw. - The y-coordinate of the upper-left corner of the portion of the source image to draw. - Width of the portion of the source image to draw. - Height of the portion of the source image to draw. - The x-coordinate of the upper-left corner of drawn image. - The y-coordinate of the upper-left corner of drawn image. - The width of the drawn image. - The height of the drawn image. - The opacity. - interpolate if set to true. - - - - Sets the clipping rectangle. - - The clipping rectangle. - true if the clip rectangle was set. - - - - Resets the clip rectangle. - - - - - Cleans up resources not in use. - - This method is called at the end of each rendering. - - - - Measures the size of the specified text by a faster method (using GlyphTypefaces). - - The text. - The font family. - The font size. - The font weight. - The size of the text. - - - - Gets the font weight. - - The font weight value. - The font weight. - - - - Fast text size calculation - - The glyph typeface. - The size. - The text. - The text size. - - - - Creates an element of the specified type and adds it to the canvas. - - Type of element to create. - The clip offset executable. - The clip offset asynchronous. - The element. - - - - Applies the current tool tip to the specified element. - - The element. - - - - Draws the line segments by stream geometry. - - The points. - The stroke color. - The thickness. - The dash array. Use null to get a solid line. - The line join. - Draw aliased line if set to true . - - - - Gets the cached brush. - - The color. - The brush. - - - - Gets the cached font family. - - Name of the family. - The FontFamily. - - - - Sets the stroke properties of the specified shape object. - - The shape. - The stroke color. - The thickness. - The line join. - The dash array. Use null to get a solid line. - The dash offset. - The aliased. - - - - Gets the bitmap source. - - The image. - The bitmap source. - - - - Draws the line using the MaxPolylinesPerLine and MinPointsPerPolyline properties. - - The points. - The stroke color. - The thickness. - The dash array. Use null to get a solid line. - The line join. - Render aliased if set to true. - See discussion. - - - - Converts a to a . - - The screen point. - A . - - - - Converts a to a pixel aligned. - - The screen point. - A pixel aligned . - - - - Converts an to a . - - The rectangle. - A . - - - - Converts an to a pixel aligned . - - The rectangle. - A pixel aligned. - - - - Converts a to a . - - The screen point. - use pixel alignment conversion if set to true. - A . - - - - Creates a point collection from the specified points. - - The points to convert. - convert to pixel aligned points if set to true. - The point collection. - - - - Gets or sets the text measurement method. - - The text measurement method. - - - - Gets or sets the text formatting mode. - - The text formatting mode. The default value is . - - - - Gets or sets the thickness limit for "balanced" line drawing. - - - - - Gets or sets a value indicating whether to use stream geometry for lines and polygons rendering. - - true if stream geometry should be used; otherwise, false . - The XamlWriter does not serialize StreamGeometry, so set this to false if you want to export to XAML. Using stream geometry seems to be slightly faster than using path geometry. - - - - Gets or sets a value indicating whether the context renders to screen. - - true if the context renders to screen; otherwise, false. - - - - A strongly-typed resource class, for looking up localized strings, etc. - - - - - Returns the cached ResourceManager instance used by this class. - - - - - Overrides the current thread's CurrentUICulture property for all - resource lookups using this strongly typed resource class. - - - - diff --git a/packages/OxyPlot.Wpf.2014.1.546/lib/net40/OxyPlot.Wpf.dll b/packages/OxyPlot.Wpf.2014.1.546/lib/net40/OxyPlot.Wpf.dll deleted file mode 100644 index 83d35df..0000000 Binary files a/packages/OxyPlot.Wpf.2014.1.546/lib/net40/OxyPlot.Wpf.dll and /dev/null differ diff --git a/packages/OxyPlot.Wpf.2014.1.546/lib/net40/OxyPlot.Xps.XML b/packages/OxyPlot.Wpf.2014.1.546/lib/net40/OxyPlot.Xps.XML deleted file mode 100644 index 1c93da7..0000000 --- a/packages/OxyPlot.Wpf.2014.1.546/lib/net40/OxyPlot.Xps.XML +++ /dev/null @@ -1,235 +0,0 @@ - - - - OxyPlot.Xps - - - - - The OxyPlot.Xps namespace contains functionality to export plots and reports to .xps files. - - - - - Provides functionality to export plots to xps. - - - - - Initializes a new instance of the class. - - - - - Exports the specified plot model to an xps file. - - The model. - The file name. - The width. - The height. - The background color. - - - - Exports the specified to the specified . - - The model. - The stream. - The width. - The height. - - - - Prints the specified plot model. - - The model. - The width (using the actual media width if set to NaN). - The height (using the actual media height if set to NaN). - - - - Exports the specified to the specified . - - The model. - The stream. - - - - Prints the specified plot model. - - The model. - - - - Gets or sets the width of the output document. - - - - - Gets or sets the height of the output document. - - - - - Gets or sets the background color. - - - - - Gets or sets the text formatting mode. - - The text formatting mode. - - - - Provides an XPS report writer. - - - - - The document. - - - - - The disposed flag. - - - - - Initializes a new instance of the class. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - - - - Prints the document. - - - - - Saves the document. - - The filename. - The width. - The height. - - - - Writes a drawing. - - The drawing. - - - - Writes an equation. - - The equation. - - - - Writes a header. - - The header. - - - - Writes an image. - - The image. - - - - Writes a paragraph. - - The paragraph. - - - - Writes a plot. - - The plot. - - - - Writes a report. - - The report. - The style. - - - - Writes a table. - - The t. - - - - The set style. - - The run. - The s. - - - - Adds a page body. - - The source flow document paginator. - The page number. - The page canvas. - The margins. - - - - Adds a page to the document. - - The fixed document. - The page canvas. - The page size. - - - - Builds the fixed document. - - The source flow doc paginator. - The size. - The margins. - The document. - - - - Creates the fixed document. - - The size. - The document. - - - - Creates a paragraph. - - The text. - The style. - A paragraph. - - - - Releases unmanaged and - optionally - managed resources - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Gets the FlowDocument. - - - - - Gets or sets the report style. - - - - diff --git a/packages/OxyPlot.Wpf.2014.1.546/lib/net40/OxyPlot.Xps.dll b/packages/OxyPlot.Wpf.2014.1.546/lib/net40/OxyPlot.Xps.dll deleted file mode 100644 index 09bf064..0000000 Binary files a/packages/OxyPlot.Wpf.2014.1.546/lib/net40/OxyPlot.Xps.dll and /dev/null differ diff --git a/packages/OxyPlot.Wpf.2014.1.546/lib/net45/OxyPlot.Wpf.XML b/packages/OxyPlot.Wpf.2014.1.546/lib/net45/OxyPlot.Wpf.XML deleted file mode 100644 index 1ace924..0000000 --- a/packages/OxyPlot.Wpf.2014.1.546/lib/net45/OxyPlot.Wpf.XML +++ /dev/null @@ -1,5540 +0,0 @@ - - - - OxyPlot.Wpf - - - - - The annotation base class. - - - - - Identifies the dependency property. - - - - - Creates the internal annotation object. - - The annotation. - - - - Synchronizes the properties. - - - - - Handles changes in appearance. - - The sender. - The instance containing the event data. - - - - Handles changes in data. - - The sender. - The instance containing the event data. - - - - Gets or sets the rendering layer of the annotation. The default value is . - - - - - Gets or sets the internal annotation object. - - - - - This is a WPF wrapper of OxyPlot.ArrowAnnotation - - - - - Provides an abstract base class for annotations that contains text. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Synchronizes the properties. - - - - - Gets or sets the text. - - - - - Gets or sets the color of the text. - - - - - Gets or sets the text position. - - If the value is DataPoint.Undefined, the centroid of the polygon will be used. - - - - Gets or sets the text horizontal alignment. - - The text horizontal alignment. - - - - Gets or sets the vertical alignment of text (above or below the line). - - - - - Gets or sets the rotation angle (degrees). - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - - - - Creates the internal annotation object. - - The annotation. - - - - Synchronizes the properties. - - - - - Gets or sets the arrow direction. - - - - - Gets or sets the color. - - - - - Gets or sets the end point. - - - - - Gets or sets the length of the head (relative to the stroke thickness). - - The length of the head. - - - - Gets or sets the width of the head (relative to the stroke thickness). - - The width of the head. - - - - Gets or sets the line join. - - The line join. - - - - Gets or sets LineStyle. - - - - - Gets or sets the start point. - - This property is overridden by the ArrowDirection property, if set. - - - - Gets or sets the stroke thickness. - - - - - Gets or sets the 'veeness' of the arrow head (relative to thickness). - - - - - This is a WPF wrapper of . - - - - - Provides an abstract base class for shape annotations. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Synchronizes the properties. - - - - - Gets or sets the fill color. - - - - - Gets or sets the stroke color. - - - - - Gets or sets the stroke thickness. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - - - - Creates the internal annotation object. - - The annotation. - - - - Synchronizes the properties. - - - - - Gets or sets the size. - - - - - Gets or sets the text margin. - - - - - Gets or sets the shape. - - - - - Gets or sets the X coordinate. - - - - - Gets or sets the Y coordinate. - - - - - This is a WPF wrapper of OxyPlot.EllipseAnnotation - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - - - - Creates the internal annotation object. - - The annotation. - - - - Synchronizes the properties. - - - - - Gets or sets the X. - - - - - Gets or sets the Y. - - - - - This is a WPF wrapper of OxyPlot.PathAnnotation - - - - - This is a WPF wrapper of OxyPlot.PathAnnotation - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Creates the internal annotation object. - - The annotation. - - - - Synchronizes the properties. - - - - - Gets or sets a value indicating whether to clip the annotation line by the X axis range. - - true if clipping by the X axis is enabled; otherwise, false. - - - - Gets or sets a value indicating whether to clip the annotation line by the Y axis range. - - true if clipping by the Y axis is enabled; otherwise, false. - - - - Gets or sets a value indicating whether the text should be clipped within the plot area. - - true if text should be clipped; otherwise, false. - - - - Gets or sets the annotation color. - - The color. - - - - Gets or sets the line join. - - The line join. - - - - Gets or sets LineStyle. - - - - - Gets or sets StrokeThickness. - - - - - Gets or sets the text margin (along the line). - - The text margin. - - - - Gets or sets the text orientation. - - The text orientation. - - - - Gets or sets the text position relative to the line. - - The text position in the interval [0,1]. - Positions smaller than 0.25 are left aligned at the start of the line - Positions larger than 0.75 are right aligned at the end of the line - Other positions are center aligned at the specified position - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - - - - Creates the internal annotation object. - - The annotation. - - - - Synchronizes the properties. - - - - - Gets or sets the equation. - - The equation. - - - - Gets or sets the resolution. - - The resolution. - - - - Gets or sets Type. - - - - - This is a WPF wrapper of OxyPlot.PolygonAnnotation - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - - - - Creates the internal annotation object. - - The annotation. - - - - Synchronizes the properties. - - - - - Gets or sets the line join. - - The line join. - - - - Gets or sets the line style. - - - - - Gets or sets the points. - - - - - This is a WPF wrapper of OxyPlot.PolylineAnnotation - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - - - - Creates the internal annotation object. - - The annotation. - - - - Synchronizes the properties. - - - - - Gets or sets the points. - - The points. - - - - Gets or sets the minimum length of the segment. - Increasing this number will increase performance, - but make the curve less accurate. - - The minimum length of the segment. - - - - Gets or sets a value indicating whether the polyline should be smoothed. - - true if smooth; otherwise, false. - - - - This is a WPF wrapper of OxyPlot.RectangleAnnotation - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - - - - Creates the internal annotation object. - - The annotation. - - - - Synchronizes the properties. - - - - - Gets or sets the Maximum X. - - - - - Gets or sets the Maximum Y. - - - - - Gets or sets the Minimum X. - - - - - Gets or sets the Minimum Y. - - - - - This is a WPF wrapper of OxyPlot.TextAnnotation - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - - - - Creates the internal annotation object. - - The annotation. - - - - Synchronizes the properties. - - - - - Gets or sets the fill color of the background rectangle. - - - - - Gets or sets the position offset (screen coordinates). - - - - - Gets or sets the padding of the background rectangle. - - - - - Gets or sets the stroke color of the background rectangle. - - - - - Gets or sets the stroke thickness of the background rectangle. - - - - - This is a WPF wrapper of OxyPlot.LineAnnotation - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - - - - Creates the internal annotation object. - - The annotation. - - - - Synchronizes the properties. - - - - - Gets or sets Intercept. - - - - - Gets or sets MaximumX. - - - - - Gets or sets MaximumY. - - - - - Gets or sets MinimumX. - - - - - Gets or sets MinimumY. - - - - - Gets or sets Slope. - - - - - Gets or sets Type. - - - - - Gets or sets X. - - - - - Gets or sets Y. - - - - - This is a WPF wrapper of OxyPlot.AngleAxis. - - - - - This is a WPF wrapper of OxyPlot.LinearAxis. - - - - - The axis base. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Creates the model. - - An axis object. - - - - The visual appearance changed. - - The sender. - The event args. - - - - The data changed. - - The sender. - The event args. - - - - The on data changed handler. - - - - - The on property changed handler. - - The event args. - - - - Handles changed visuals. - - - - - Synchronizes the properties. - - - - - Gets or sets the internal axis. - - - - - Gets or sets the absolute maximum. This is only used for the UI control. It will not be possible to zoom/pan beyond this limit. - - - - - Gets or sets the absolute minimum. This is only used for the UI control. It will not be possible to zoom/pan beyond this limit. - - - - - Gets or sets Angle. - - - - - Gets or sets AxisDistance. - - - - - Gets or sets AxisTickToLabelDistance. - - - - - Gets or sets AxisTitleDistance. - - - - - Gets or sets the color of the axis line. - - The color of the axis line. - - - - Gets or sets the axis line style. - - The axis line style. - - - - Gets or sets the axis line thickness. - - The axis line thickness. - - - - Gets or sets a value indicating whether [clip title]. - - true if [clip title]; otherwise, false . - - - - Gets or sets EndPosition. - - - - - Gets or sets ExtraGridlineColor. - - - - - Gets or sets ExtraGridlineStyle. - - - - - Gets or sets ExtraGridlineThickness. - - - - - Gets or sets ExtraGridLines. - - - - - Gets or sets the filter function. - - The filter function. - - - - Gets or sets FilterMaxValue. - - - - - Gets or sets FilterMinValue. - - - - - Gets or sets Font. - - - - - Gets or sets FontSize. - - - - - Gets or sets the font weight. - - - - - Gets or sets the interval length. - - - - - Gets or sets a value indicating whether the axis is visible. - - - - - Gets or sets a value indicating whether pan is enabled. - - - - - Gets or sets a value indicating whether zoom is enabled. - - - - - Gets or sets the axis key. - - - - - Gets or sets the label formatter. - - - - - Gets or sets the layer. - - - - - Gets or sets the color of the major gridlines. - - - - - Gets or sets the line style of the major gridlines. - - - - - Gets or sets MajorGridlineThickness. - - - - - Gets or sets MajorStep. - - - - - Gets or sets MajorTickSize. - - - - - Gets or sets Maximum. - - - - - Gets or sets MaximumPadding. - - - - - Gets or sets Minimum. - - - - - Gets or sets MinimumPadding. - - - - - Gets or sets MinimumRange. - - - - - Gets or sets MinorGridlineColor. - - - - - Gets or sets MinorGridlineStyle. - - - - - Gets or sets MinorGridlineThickness. - - - - - Gets or sets MinorStep. - - - - - Gets or sets MinorTickSize. - - - - - Gets or sets Position. - - - - - Gets or sets a value indicating whether PositionAtZeroCrossing. - - - - - Gets or sets the position tier which defines in which tier the axis is displayed. - - The bigger the value the further afar is the axis from the graph. - - - - Gets or sets the start position. - - - - - Gets or sets the string format. - - - - - Gets or sets the tick style. - - - - - Gets or sets the tick line color. - - - - - Gets or sets the title. - - - - - Gets or sets the length of the title clipping. - - The length of the title clipping. - - - - Gets or sets the color of the title. - - The color of the title. - - - - Gets or sets the title font. - - The title font. - - - - Gets or sets the size of the title font. - - The size of the title font. - - - - Gets or sets the title font weight. - - The title font weight. - - - - Gets or sets TitleFormatString. - - - - - Gets or sets TitlePosition. - - - - - Gets or sets Unit. - - - - - Gets or sets a value indicating whether UseSuperExponentialFormat. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes a new instance of the class. - - - - - Creates the internal axis. - - The internal axis. - - - - Synchronizes the properties. - - - - - Gets or sets a value indicating whether FormatAsFractions. - - - - - Gets or sets FractionUnit. - - - - - Gets or sets FractionUnitSymbol. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - - - - Synchronizes the properties. - - - - - Gets or sets the start angle (degrees). - - - - - Gets or sets the end angle (degrees). - - - - - This is a WPF wrapper of OxyPlot.CategoryAxis. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - - - - Creates the internal axis. - - The internal axis. - - - - Synchronizes the properties. - - - - - Gets or sets the gap width. - - The width of the gap. - - - - Gets or sets a value indicating whether IsTickCentered. - - - - - Gets or sets ItemsSource. - - - - - Gets or sets LabelField. - - - - - Gets or sets Labels. - - - - - This is a WPF wrapper of OxyPlot.DateTimeAxis. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - - - - Creates the internal model. - - The internal axis. - - - - Synchronizes the properties. - - - - - Gets or sets CalendarWeekRule. - - - - - Gets or sets FirstDateTime. - - - - - Gets or sets FirstDayOfWeek. - - - - - Gets or sets IntervalType. - - - - - Gets or sets LastDateTime. - - - - - Gets or sets MinorIntervalType. - - - - - Provides a WPF wrapper for the . - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes a new instance of the class. - - - - - Creates the model. - - - An axis object. - - - - - Synchronizes the properties. - - - - - Translates a collection of to an . - - - The gradient stops collection to convert. - - - The palette size. - - - The interpolated . - - - - - Validates the palette size. - - - The property value. - - - The validation result. - - - - - Gets or sets the palette size. - - - - - Gets or sets the high color. - - - - - Gets or sets the low color. - - - - - Gets or sets the gradient stops. - - - - - This is a WPF wrapper of OxyPlot.MagnitudeAxis. - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - - - - This is a WPF wrapper of OxyPlot.TimeSpanAxis. - - - - - Initializes a new instance of the class. - - - - - Creates the internal axis. - - The internal axis. - - - - The synchronize properties. - - - - - This is a WPF wrapper of OxyPlot.LogarithmicAxis. - - - - - Identifies the dependency property. - - The logarithmic base. - - - - Identifies the dependency property. - - - - - Initializes a new instance of the class. - - - - - Creates the internal axis. - - The internal axis. - - - - Synchronizes the properties. - - - - - Gets or sets Base. - - - - - Gets or sets a value indicating whether the ActualMaximum and ActualMinimum values should be padded to the nearest power of the Base. - - - - - Converts from to the maximum thicknesses. - - This is used in the to convert BorderThickness properties to Path.StrokeThickness (double). - The maximum thickness value is used. - - - - Converts a value. - - The value produced by the binding source. - The type of the binding target property. - The converter parameter to use. - The culture to use in the converter. - A converted value. If the method returns null, the valid null value is used. - - - - Converts a value. - - The value that is produced by the binding target. - The type to convert to. - The converter parameter to use. - The culture to use in the converter. - A converted value. If the method returns null, the valid null value is used. - - - - Converts between and . - - - - - Converts a value. - - The value produced by the binding source. - The type of the binding target property. - The converter parameter to use. - The culture to use in the converter. - A converted value. If the method returns null, the valid null value is used. - - - - Converts a value. - - The value that is produced by the binding target. - The type to convert to. - The converter parameter to use. - The culture to use in the converter. - A converted value. If the method returns null, the valid null value is used. - - - - Provides a standard set of commands for the control. - - - - - Gets the value that represents the "Reset all axes" command. - - - - - Represents a control that displays a . - - - Represents a control that displays a . - - This file contains dependency properties used for defining the PlotView in XAML. These properties are only used when Model is null. In this case an internal PlotModel is created and the dependency properties are copied from the control to the internal PlotModel. - - Represents a control that displays a . - - - - - Provides an abstract base class for Control objects that listens to the CompositionTarget.Rendering event. - - - - - The renderingEventListener - - - - - Initializes a new instance of the class. - - - - - Subscribes to CompositionTarget.Rendering event. - - - - - Unsubscribes the CompositionTarget.Rendering event. - - - - - Handles the CompositionTarget.Rendering event. - - The sender. - The instance containing the event data. - - - - The Grid PART constant. - - - - - The model lock. - - - - - The tracker definitions. - - - - - The canvas. - - - - - The currently attached model. - - - - - The current model (synchronized with the property, but can be accessed from all threads. - - - - - The current tracker. - - - - - The grid. - - - - - The internal model. - - - - - The default controller. - - - - - Invalidation flag (0: no update, 1: update visual elements only, 2:update data). - - - - - The is rendering flag. - - - - - The mouse down point. - - - - - The overlays. - - - - - The render context - - - - - The zoom control. - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - - - - Hides the tracker. - - - - - Hides the zoom rectangle. - - - - - Invalidate the PlotView (not blocking the UI thread) - - The update Data. - - - - Sets the cursor type. - - The cursor type. - - - - Shows the tracker. - - The tracker data. - - - - Shows the zoom rectangle. - - The rectangle. - - - - Stores text on the clipboard. - - The text. - - - - When overridden in a derived class, is invoked whenever application code or internal processes call . - - - - - Pans all axes. - - The delta. - - - - Zooms all axes. - - The zoom factor. - - - - Resets all axes. - - - - - Saves the PlotView as a bitmap. - - Name of the file. - The width. - The height. - The background. - - - - Saves the PlotView as xaml. - - Name of the file. - - - - Renders the PlotView to a bitmap. - - A bitmap. - - - - Renders the PlotView to xaml. - - The xaml. - - - - Called to arrange and size the content of a object. - - The computed size that is used to arrange the content. - The size of the control. - - - - Called when the visual appearance is changed. - - - - - Invoked when an unhandled KeyDown attached event reaches an element in its route that is derived from this class. Implement this method to add class handling for this event. - - The that contains the event data. - - - - Invoked when an unhandled MouseDown attached event reaches an element in its route that is derived from this class. Implement this method to add class handling for this event. - - The that contains the event data. This event data reports details about the mouse button that was pressed and the handled state. - - - - Invoked when an unhandled MouseMove attached event reaches an element in its route that is derived from this class. Implement this method to add class handling for this event. - - The that contains the event data. - - - - Invoked when an unhandled MouseUp routed event reaches an element in its route that is derived from this class. Implement this method to add class handling for this event. - - The that contains the event data. The event data reports that the mouse button was released. - - - - Invoked when an unhandled  attached event is raised on this element. Implement this method to add class handling for this event. - - The that contains the event data. - - - - Invoked when an unhandled  attached event is raised on this element. Implement this method to add class handling for this event. - - The that contains the event data. - - - - Invoked when an unhandled MouseWheel attached event reaches an element in its route that is derived from this class. Implement this method to add class handling for this event. - - The that contains the event data. - - - - Called when the parent of visual object is changed. - - A value of type that represents the previous parent of the object. If the object did not have a previous parent, the value of the parameter is null. - - - - Handles the Loaded event. - - The sender. - The instance containing the event data. - - - - Handles the Unloaded event. - - The sender. - The instance containing the event data. - - - - Called when the visual appearance is changed. - - The d. - The instance containing the event data. - - - - Called when the model is changed. - - The sender. - The instance containing the event data. - - - - Performs the copy operation. - - The sender. - The instance containing the event data. - - - - Invokes the specified action on the UI Thread (blocking the calling thread). - - The action. - - - - Invokes the specified action on the UI Thread (without blocking the calling thread). - - The action. - - - - Called when annotations is changed. - - The sender. - The instance containing the event data. - - - - Called when axes is changed. - - The sender. - The instance containing the event data. - - - - Called when the model is changed. - - - - - Called when series is changed. - - The sender. - The instance containing the event data. - - - - Called when size of the control is changed. - - The sender. - The instance containing the event data. - - - - Synchronizes the logical tree. - - The instance containing the event data. - - - - Updates the model. If Model==null, an internal model will be created. The ActualModel.Update will be called (updates all series data). - - if set to true , all data collections will be updated. - - - - Synchronize properties in the internal PlotView model - - - - - Synchronizes the annotations in the internal model. - - - - - Synchronizes the axes in the internal model. - - - - - Synchronizes the series in the internal model. - - - - - Updates the visuals. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - The annotations. - - - - - The axes. - - - - - The series. - - - - - Invalidates the PlotView control/view when the property is changed. - - - - - Called when the event occurs. - - The data for the event. - - - - Called when the event occurs. - - The data for the event. - - - - Called when the event occurs. - - The data for the event. - - - - Gets the annotations. - - The annotations. - - - - Gets or sets a value indicating whether to disconnect the canvas while updating. - - true if canvas should be disconnected while updating; otherwise, false. - - - - Gets or sets a value indicating whether this instance is being rendered. - - When the visual is removed from the visual tree, this property should be set to false. - - - - Gets the tracker definitions. - - The tracker definitions. - - - - Gets the actual model. - - The actual model. - - - - Gets the actual model. - - The actual model. - - - - Gets the actual PlotView controller. - - The actual PlotView controller. - - - - Gets the coordinates of the client area of the view. - - - - - Gets the actual PlotView controller. - - The actual PlotView controller. - - - - Gets the axes. - - The axes. - - - - Gets or sets Culture. - - - - - Gets or sets the tracker template. - - The tracker template. - - - - Gets or sets a value indicating whether IsLegendVisible. - - - - - Gets or sets a value indicating whether the mouse wheel is enabled. - - - - - Gets or sets LegendBackground. - - - - - Gets or sets LegendBorder. - - - - - Gets or sets LegendBorderThickness. - - - - - Gets or sets LegendFont. - - - - - Gets or sets LegendFontSize. - - - - - Gets or sets LegendFontWeight. - - - - - Gets or sets LegendItemAlignment. - - - - - Gets or sets LegendItemOrder. - - - - - Gets or sets LegendItemSpacing. - - - - - Gets or sets the max width of the legends. - - The max width of the legends. - - - - Gets or sets LegendMargin. - - - - - Gets or sets LegendOrientation. - - - - - Gets or sets the legend column spacing. - - The legend column spacing. - - - - Gets or sets the legend padding. - - - - - Gets or sets LegendPlacement. - - - - - Gets or sets the legend position. - - The legend position. - - - - Gets or sets LegendSymbolLength. - - - - - Gets or sets LegendSymbolMargin. - - - - - Gets or sets LegendSymbolPlacement. - - - - - Gets or sets LegendTitleFont. - - - - - Gets or sets the default font. - - - - - Gets or sets the default font size. - - - - - Gets or sets the default colors. - - - - - Gets or sets the text color of the legends. - - - - - Gets or sets the legend title. - - - - - Gets or sets color of the legend title. - - - - - Gets or sets the axis tier distance. - - - - - Gets or sets the color of selected elements. - - - - - Gets or sets a rendering decorator. - - - - - Gets or sets the font of the subtitles. - - - - - Gets or sets the color of the titles. - - - - - Gets or sets the font size of the legend titles. - - - - - Gets or sets the color of the subtitles. - - - - - Gets or sets the font weight of the legend titles. - - - - - Gets or sets the model. - - The model. - - - - Gets or sets the pan cursor. - - The pan cursor. - - - - Gets or sets the background brush of the PlotView area. - - The brush. - - - - Gets or sets the color of the PlotView area border. - - The color of the PlotView area border. - - - - Gets or sets the thickness of the PlotView area border. - - The thickness of the PlotView area border. - - - - Gets or sets the PlotView controller. - - The PlotView controller. - - - - Gets or sets the PlotView margins. - - The PlotView margins. - - - - Gets or sets PlotType. - - - - - Gets the series. - - The series. - - - - Gets or sets the subtitle. - - The subtitle. - - - - Gets or sets the font size of the subtitle. - - - - - Gets or sets the font weight of the subtitle. - - - - - Gets or sets text color. - - - - - Gets or sets the title. - - The title. - - - - Gets or sets the horizontal alignment of the title and subtitle. - - - The alignment. - - - - - Gets or sets font of the title. - - - - - Gets or sets font size of the title. - - - - - Gets or sets font weight of the title. - - - - - Gets or sets padding around the title. - - - - - Gets or sets the refresh flag (an integer value). When the flag is changed, the PlotView will be refreshed. - - The refresh value. - - - - Gets or sets the horizontal zoom cursor. - - The zoom horizontal cursor. - - - - Gets or sets the rectangle zoom cursor. - - The zoom rectangle cursor. - - - - Gets or sets the zoom rectangle template. - - The zoom rectangle template. - - - - Gets or sets the vertical zoom cursor. - - The zoom vertical cursor. - - - - HeatMapSeries WPF wrapper - - - - - Abstract base class for series that use X and Y axes. - - - - - Abstract base class for series that use X and Y axes. - - - - - Abstract base class for series. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Creates the model. - - A series. - - - - The appearance changed. - - The d. - The e. - - - - The data changed. - - The d. - The e. - - - - The on data changed. - - - - - The on items source changed. - - The old value. - The new value. - - - - The on visual changed. - - - - - Synchronizes the properties. - - The series. - - - - Gets or sets Color. - - - - - Gets or sets the internal series. - - - - - Gets or sets Title. - - - - - Gets or sets TrackerFormatString. - - - - - Gets or sets TrackerKey. - - - - - Synchronizes the properties. - - The series. - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Synchronizes the properties. - - The series. - - - - Gets or sets the x-axis key. - - - - - Gets or sets the y axis key. - - - - - Identifies this dependency property. - - - - - Identifies this dependency property. - - - - - Identifies this dependency property. - - - - - Identifies this dependency property. - - - - - Identifies this dependency property. - - - - - Identifies this dependency property. - - - - - Identifies this dependency property. - - - - - Identifies this dependency property. - - - - - Initializes a new instance of the class. - - - - - The create model. - - - The . - - - - - The synchronize properties. - - - The series. - - - - - Gets or sets LowColor - - - - - Gets or sets HighColor - - - - - Gets or sets ColorAxisKey property. - - - - - Gets or sets X0. - - - - - Gets or sets X1 - - - - - Gets or sets Y0 - - - - - Gets or sets Y1 - - - - - Gets or sets Data - - - - - Provides a base class for scatter series. - - The type of the points. - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes a new instance of the class. - - - - - Creates the internal series. - - The series. - - - - Synchronizes the properties. - - The series. - - - - Gets or sets bin size. - - - - - Gets or sets size data field. - - - - - Gets or sets tag data field. - - - - - Gets or sets value (color) data field. - - - - - Gets or sets X data field. - - - - - Gets or sets Y data field. - - - - - Gets or sets mapping function. - - - - - Gets or sets fill color of the markers. - - - - - Gets or sets custom outline of the markers. - - - - - Gets or sets the size of the markers. - - - - - Gets or sets color of the marker strokes. - - - - - Gets or sets thickness of the marker strokes. - - - - - Gets or sets type of the markers. - - - - - Gets or sets the color axis key. - - The color axis key. - - - - This is a WPF wrapper of OxyPlot.StairStepSeries - - - - - This is a WPF wrapper of OxyPlot.LineSeries - - - - - Base class for data series - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Synchronizes the properties. - - The series. - - - - Gets or sets a value indicating whether the tracker can interpolate points. - - - - - Gets or sets DataFieldX. - - - - - Gets or sets DataFieldY. - - - - - Gets or sets the mapping. - - The mapping. - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Initializes a new instance of the class. - - - - - Creates the internal series. - - The internal series. - - - - Synchronizes the properties. - - The series. - - - - Gets or sets the broken line color. - - - - - Gets or sets the broken line style. - - - - - Gets or sets the broken line thickness. - - - - - Gets or sets Dashes. - - - - - Gets or sets the decimator. - - - The decimator. - - - - - Gets or sets the label format string. - - The label format string. - - - - Gets or sets the label margin. - - The label margin. - - - - Gets or sets LineJoin. - - - - - Gets or sets LineLegendPosition. - - - - - Gets or sets LineStyle. - - - - - Gets or sets MarkerFill. - - - - - Gets or sets MarkerOutline. - - - - - Gets or sets the marker resolution. - - The marker resolution. - - - - Gets or sets the marker size. - - - - - Gets or sets MarkerStroke. - - - - - Gets or sets MarkerStrokeThickness. - - - - - Gets or sets MarkerType. - - - - - Gets or sets MinimumSegmentLength. - - - - - Gets or sets a value indicating whether this is smooth. - - true if smooth; otherwise, false . - - - - Gets or sets StrokeThickness. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes a new instance of the class. - - - - - Creates the internal series. - - - The internal series. - - - - - Synchronizes the properties. - - The series. - - - - Gets or sets the stroke thickness of the vertical line segments. - - The vertical stroke thickness. - Set the value to NaN to use the StrokeThickness property for both horizontal and vertical segments. - Using the VerticalStrokeThickness property will have a small performance hit. - - - - Gets or sets the line style of the vertical line segments. - - The vertical line style. - - - - This is a WPF wrapper of OxyPlot.ScatterErrorSeries - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes a new instance of the class. - - - - - Synchronizes the properties. - - The series. - - - - Gets or sets the data field X error. - - - The data field error. - - - - - Gets or sets the data field Y error. - - - The data field error. - - - - - Gets or sets the color of the error bar. - - - The color of the error bar. - - - - - Gets or sets the width of the error bar stop. - - - The width of the error bar stop. - - - - - Gets or sets the error bar stroke thickness. - - - The error bar stroke thickness. - - - - - Gets or sets the minimum size (relative to ) of the error bars to be shown. - - - - - Provides a weak event listener that pass the CompositionTarget.Rendering event to the specified handler. - - - - - Provides a weak event listener that pass the events of the specified event manager to the specified event handler. - - The type of the event manager. - The type of the event args. - - - - The real event handler. - - - - - Initializes a new instance of the class. - - The handler. - - - - Receives events from the centralized event manager. - - The type of the calling this method. - Object that originated the event. - Event data. - true if the listener handled the event. It is considered an error by the handling in WPF to register a listener for an event that the listener does not handle. Regardless, the method should return false if it receives an event that it does not recognize or handle. - - - - Initializes a new instance of the class. - - The handler. - - - - Represents a weak event manager for the CompositionTarget.Rendering event. - - - - - Provides a generic base class for weak event managers that handle static events. - - The type of the manager. - - - - Adds the specified listener. - - The listener. - - - - Removes the specified listener. - - The listener. - - - - When overridden in a derived class, starts listening for the event being managed. After is first called, the manager should be in the state of calling or whenever the relevant event from the provided source is handled. - - The source to begin listening on. - - - - When overridden in a derived class, stops listening on the provided source for the event being managed. - - The source to stop listening on. - - - - Handlers the specified sender. - - The sender. - The instance containing the event data. - - - - Starts the listening. - - - - - Stops the listening. - - - - - Gets the current manager. - - The current manager. - - - - Start listening to the CompositionTarget.Rendering event. - - - - - Stop listening to the CompositionTarget.Rendering event. - - - - - Defines additional . - - - - - The undefined color. - - - - - The automatic color. - - - - - The OxyPlot.Wpf namespace contains WPF controls and PNG export functionality based on WPF. - - - - - This is a WPF wrapper of OxyPlot.BarSeries - - - - - This is a WPF wrapper of OxyPlot.BarSeries<T>. - - The type of the items. - - - - This is a WPF wrapper of OxyPlot.BarSeriesBase - - - - - This is a WPF wrapper of OxyPlot.BarSeries - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes static members of the class. - - - - - Creates the model. - - The series. - - - - Synchronizes the properties. - - The series. - - - - Gets or sets BaseValue. - - - - - Gets or sets the color field. - - The color field. - - - - Gets or sets the color of the fill. - - The color of the fill. - - - - Gets or sets a value indicating whether the series is stacked. - - - - - Gets or sets the label format string. - - The label format string. - - - - Gets or sets the label margin. - - The label margin. - - - - Gets or sets the label placement. - - The label placement. - - - - Gets or sets NegativeFillColor. - - - - - Gets or sets the stack group. - - The stack group. - - - - Gets or sets the stroke color. - - - - - Gets or sets the stroke thickness. - - - - - Gets or sets the value field. - - - - - Synchronizes the properties. - - The series. - - - - Identifies the dependency property. - - - - - Initializes a new instance of the class. - - - - - Synchronizes the properties. - - The series. - - - - Gets or sets ColumnWidth. - - - - - Provides functionality to export plots to scalable vector graphics using text measuring in WPF. - - - - - Initializes a new instance of the class. - - - - - Provides utility methods related to the keyboard. - - - - - Gets the current modifier keys. - - A value. - - - - Provides functionality to export plots to XAML. - - - - - Export the specified plot model to an xaml string. - - The model. - The width. - The height. - The background. - A xaml string. - - - - Exports the specified plot model to a xaml file. - - The model. - Name of the file. - The width. - The height. - The background. - - - - Provides functionality to export plots to png. - - - - - Initializes a new instance of the class. - - - - - Exports the specified plot model to a file. - - The model to export. - The file name. - The width of the output bitmap. - The height of the output bitmap. - The background color. The default value is null. - The resolution (resolution). The default value is 96. - - - - Exports the specified plot model to a stream. - - The model to export. - The stream. - The width of the output bitmap. - The height of the output bitmap. - The background color. The default value is null. - The resolution (resolution). The default value is 96. - - - - Exports the specified plot model to a bitmap. - - The plot model. - The width. - The height. - The background. - The resolution (dpi). - A bitmap. - - - - Exports the specified to the specified . - - The model. - The output stream. - - - - Exports the specified plot model to a bitmap. - - The model to export. - A bitmap. - - - - Gets or sets the width of the output image. - - - - - Gets or sets the height of the output image. - - - - - Gets or sets the resolution of the output image. - - The resolution in dots per inch (dpi). - - - - Gets or sets the background color. - - - - - This is a WPF wrapper of OxyPlot.BarSeries - - - - - Identifies the dependency property. - - - - - Initializes a new instance of the class. - - - - - Synchronizes the properties. - - The series. - - - - Gets or sets the bar width. - - - - - The WPF wrapper for OxyPlot.TwoColorLineSeries. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes a new instance of the class. - - - - - Synchronizes the properties. - - The series. - - - - Gets or sets Color2. - - - - - Gets or sets Limit. - - - - - Gets or sets LineStyle2. - - - - - This is a WPF wrapper of OxyPlot.ScatterSeries - - - - - The tracker control. - - - - - The path part string. - - - - - The content part string. - - - - - The content container part string. - - - - - The horizontal line part string. - - - - - The vertical line part string. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - The content. - - - - - The horizontal line. - - - - - The path. - - - - - The content container. - - - - - The vertical line. - - - - - Initializes static members of the class. - - - - - When overridden in a derived class, is invoked whenever application code or internal processes call . - - - - - Called when the position is changed. - - The sender. - The instance containing the event data. - - - - Called when the position is changed. - - The dependency property changed event args. - - - - Update the position and border of the tracker. - - - - - Create the border geometry. - - The horizontal alignment. - The vertical alignment. - The width. - The height. - The margin. - The border geometry. - - - - Create a border geometry with a 'pointer'. - - The horizontal alignment. - The vertical alignment. - The width. - The height. - The margin. - The border geometry. - - - - Gets or sets BorderEdgeMode. - - - - - Gets or sets HorizontalLineVisibility. - - - - - Gets or sets VerticalLineVisibility. - - - - - Gets or sets LineStroke. - - - - - Gets or sets LineExtents. - - - - - Gets or sets LineDashArray. - - - - - Gets or sets a value indicating whether to show a 'pointer' on the border. - - - - - Gets or sets the corner radius (only used when ShowPoint=false). - - - - - Gets or sets the distance of the content container from the trackers Position. - - - - - Gets or sets a value indicating whether the tracker can center its content box horizontally. - - - - - Gets or sets a value indicating whether the tracker can center its content box vertically. - - - - - Gets or sets Position of the tracker. - - - - - Represents a tracker definition. - - The tracker definitions make it possible to show different trackers for different series. - The property is matched with the - in the TrackerDefinitions collection in the control. - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Gets or sets the tracker key. - - The Plot will use this property to find the TrackerDefinition that matches the TrackerKey of the current series. - - - - Gets or sets the tracker template. - - The tracker control will be added/removed from the Tracker overlay as necessary. - The DataContext of the tracker will be set to a TrackerHitResult with the current tracker data. - - - - This is a WPF wrapper of OxyPlot.AreaSeries - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Identifies the dependency property. - - - - - Initializes a new instance of the class. - - - - - Creates the internal series. - - The internal series. - - - - Synchronizes the properties. - - The series. - - - - Gets or sets the color of the second line. - - - - - Gets or sets ConstantY2. - - - - - Gets or sets DataFieldX2. - - - - - Gets or sets DataFieldY2. - - - - - Gets or sets Fill. - - - - - Gets or sets a value indicating whether Reverse2. - - - - - Represents a control that displays a . - - - - - Extension method used to convert to/from Windows/Windows.Media classes. - - - - - Calculate the distance between two points. - - The first point. - The second point. - The distance. - - - - Converts an to a . - - The color. - A . - - - - Converts an to a . - - The color. - A Color. - - - - Converts an OxyThickness to a Thickness. - - The thickness. - A instance. - - - - Converts a ScreenVector to a Vector. - - The c. - A instance. - - - - Converts a HorizontalAlignment to a HorizontalAlignment. - - The alignment. - A HorizontalAlignment. - - - - Converts a HorizontalAlignment to a VerticalAlignment. - - The alignment. - A VerticalAlignment. - - - - Converts a Color to an OxyColor. - - The color. - An OxyColor. - - - - Converts a to an . - - The brush. - An . - - - - Converts a Thickness to an . - - The thickness. - An . - - - - Converts a to a . - - The point. - A . - - - - Converts a Point array to a ScreenPoint array. - - The points. - A ScreenPoint array. - - - - Converts the specified vector to a ScreenVector. - - The vector. - A . - - - - Converts the specified key. - - The key to convert. - The converted key. - - - - Converts the specified button. - - The button to convert. - The converted mouse button. - - - - Converts to for a mouse wheel event. - - The instance containing the event data. - The that the event is relative to. - A containing the converted event arguments. - - - - Converts to for a mouse down event. - - The instance containing the event data. - The that the event is relative to. - A containing the converted event arguments. - - - - Converts to for a mouse up event. - - The instance containing the event data. - The that the event is relative to. - A containing the converted event arguments. - - - - Converts to for a mouse event. - - The instance containing the event data. - The that the event is relative to. - A containing the converted event arguments. - - - - Converts to for a touch started event. - - The instance containing the event data. - The that the event is relative to. - A containing the converted event arguments. - - - - Converts to for a touch delta event. - - The instance containing the event data. - The that the event is relative to. - A containing the converted event arguments. - - - - Converts to for a touch completed event. - - The instance containing the event data. - The that the event is relative to. - A containing the converted event arguments. - - - - The text measurement methods. - - - - - Measurement by TextBlock. - - - - - Measurement by glyph typeface. - - - - - Provides a implementation that adds WPF shapes to a . - - - - - The maximum number of figures per geometry. - - - - - The maximum number of polylines per line. - - - - - The minimum number of points per polyline. - - - - - The images in use - - - - - The image cache - - - - - The brush cache. - - - - - The font family cache - - - - - The canvas. - - - - - The clip rectangle. - - - - - The current tool tip - - - - - The pixel scale - - - - - Initializes a new instance of the class. - - The canvas. - - - - Draws an ellipse. - - The rectangle. - The fill color. If set to OxyColors.Undefined, the ellipse will not be filled. - The stroke color. If set to OxyColors.Undefined, the ellipse will not be stroked. - The thickness (in device independent units, 1/96 inch). - - - - Draws a collection of ellipses, where all have the same stroke and fill. - This performs better than calling DrawEllipse multiple times. - - The rectangles. - The fill color. If set to OxyColors.Undefined, the ellipses will not be filled. - The stroke color. If set to OxyColors.Undefined, the ellipses will not be stroked. - The stroke thickness (in device independent units, 1/96 inch). - - - - Draws a polyline. - - The points. - The stroke color. - The stroke thickness (in device independent units, 1/96 inch). - The dash array (in device independent units, 1/96 inch). Use null to get a solid line. - The line join type. - if set to true the shape will be aliased. - - - - Draws line segments defined by points (0,1) (2,3) (4,5) etc. - This should have better performance than calling DrawLine for each segment. - - The points. - The stroke color. - The stroke thickness (in device independent units, 1/96 inch). - The dash array (in device independent units, 1/96 inch). - The line join type. - if set to true the shape will be aliased. - - - - Draws a polygon. - - The points. - The fill color. If set to OxyColors.Undefined, the polygon will not be filled. - The stroke color. If set to OxyColors.Undefined, the polygon will not be stroked. - The stroke thickness (in device independent units, 1/96 inch). - The dash array (in device independent units, 1/96 inch). - The line join type. - If set to true the polygon will be aliased. - - - - Draws a collection of polygons, where all polygons have the same stroke and fill. - This performs better than calling DrawPolygon multiple times. - - The polygons. - The fill color. If set to OxyColors.Undefined, the polygons will not be filled. - The stroke color. If set to OxyColors.Undefined, the polygons will not be stroked. - The stroke thickness (in device independent units, 1/96 inch). - The dash array (in device independent units, 1/96 inch). - The line join type. - if set to true the shape will be aliased. - - - - Draws a rectangle. - - The rectangle. - The fill color. If set to OxyColors.Undefined, the rectangle will not be filled. - The stroke color. If set to OxyColors.Undefined, the rectangle will not be stroked. - The stroke thickness (in device independent units, 1/96 inch). - - - - Draws a collection of rectangles, where all have the same stroke and fill. - This performs better than calling DrawRectangle multiple times. - - The rectangles. - The fill color. If set to OxyColors.Undefined, the rectangles will not be filled. - The stroke color. If set to OxyColors.Undefined, the rectangles will not be stroked. - The stroke thickness (in device independent units, 1/96 inch). - - - - Draws text. - - The position. - The text. - The text color. - The font family. - Size of the font (in device independent units, 1/96 inch). - The font weight. - The rotation angle. - The horizontal alignment. - The vertical alignment. - The maximum size of the text (in device independent units, 1/96 inch). - - - - Measures the size of the specified text. - - The text. - The font family. - Size of the font (in device independent units, 1/96 inch). - The font weight. - - The size of the text (in device independent units, 1/96 inch). - - - - - Sets the tool tip for the following items. - - The text in the tool tip. - - - - Draws a portion of the specified . - - The source. - The x-coordinate of the upper-left corner of the portion of the source image to draw. - The y-coordinate of the upper-left corner of the portion of the source image to draw. - Width of the portion of the source image to draw. - Height of the portion of the source image to draw. - The x-coordinate of the upper-left corner of drawn image. - The y-coordinate of the upper-left corner of drawn image. - The width of the drawn image. - The height of the drawn image. - The opacity. - interpolate if set to true. - - - - Sets the clipping rectangle. - - The clipping rectangle. - true if the clip rectangle was set. - - - - Resets the clip rectangle. - - - - - Cleans up resources not in use. - - This method is called at the end of each rendering. - - - - Measures the size of the specified text by a faster method (using GlyphTypefaces). - - The text. - The font family. - The font size. - The font weight. - The size of the text. - - - - Gets the font weight. - - The font weight value. - The font weight. - - - - Fast text size calculation - - The glyph typeface. - The size. - The text. - The text size. - - - - Creates an element of the specified type and adds it to the canvas. - - Type of element to create. - The clip offset executable. - The clip offset asynchronous. - The element. - - - - Applies the current tool tip to the specified element. - - The element. - - - - Draws the line segments by stream geometry. - - The points. - The stroke color. - The thickness. - The dash array. Use null to get a solid line. - The line join. - Draw aliased line if set to true . - - - - Gets the cached brush. - - The color. - The brush. - - - - Gets the cached font family. - - Name of the family. - The FontFamily. - - - - Sets the stroke properties of the specified shape object. - - The shape. - The stroke color. - The thickness. - The line join. - The dash array. Use null to get a solid line. - The dash offset. - The aliased. - - - - Gets the bitmap source. - - The image. - The bitmap source. - - - - Draws the line using the MaxPolylinesPerLine and MinPointsPerPolyline properties. - - The points. - The stroke color. - The thickness. - The dash array. Use null to get a solid line. - The line join. - Render aliased if set to true. - See discussion. - - - - Converts a to a . - - The screen point. - A . - - - - Converts a to a pixel aligned. - - The screen point. - A pixel aligned . - - - - Converts an to a . - - The rectangle. - A . - - - - Converts an to a pixel aligned . - - The rectangle. - A pixel aligned. - - - - Converts a to a . - - The screen point. - use pixel alignment conversion if set to true. - A . - - - - Creates a point collection from the specified points. - - The points to convert. - convert to pixel aligned points if set to true. - The point collection. - - - - Gets or sets the text measurement method. - - The text measurement method. - - - - Gets or sets the text formatting mode. - - The text formatting mode. The default value is . - - - - Gets or sets the thickness limit for "balanced" line drawing. - - - - - Gets or sets a value indicating whether to use stream geometry for lines and polygons rendering. - - true if stream geometry should be used; otherwise, false . - The XamlWriter does not serialize StreamGeometry, so set this to false if you want to export to XAML. Using stream geometry seems to be slightly faster than using path geometry. - - - - Gets or sets a value indicating whether the context renders to screen. - - true if the context renders to screen; otherwise, false. - - - - A strongly-typed resource class, for looking up localized strings, etc. - - - - - Returns the cached ResourceManager instance used by this class. - - - - - Overrides the current thread's CurrentUICulture property for all - resource lookups using this strongly typed resource class. - - - - diff --git a/packages/OxyPlot.Wpf.2014.1.546/lib/net45/OxyPlot.Wpf.dll b/packages/OxyPlot.Wpf.2014.1.546/lib/net45/OxyPlot.Wpf.dll deleted file mode 100644 index 61b733b..0000000 Binary files a/packages/OxyPlot.Wpf.2014.1.546/lib/net45/OxyPlot.Wpf.dll and /dev/null differ diff --git a/packages/OxyPlot.Wpf.2014.1.546/lib/net45/OxyPlot.Xps.XML b/packages/OxyPlot.Wpf.2014.1.546/lib/net45/OxyPlot.Xps.XML deleted file mode 100644 index 1c93da7..0000000 --- a/packages/OxyPlot.Wpf.2014.1.546/lib/net45/OxyPlot.Xps.XML +++ /dev/null @@ -1,235 +0,0 @@ - - - - OxyPlot.Xps - - - - - The OxyPlot.Xps namespace contains functionality to export plots and reports to .xps files. - - - - - Provides functionality to export plots to xps. - - - - - Initializes a new instance of the class. - - - - - Exports the specified plot model to an xps file. - - The model. - The file name. - The width. - The height. - The background color. - - - - Exports the specified to the specified . - - The model. - The stream. - The width. - The height. - - - - Prints the specified plot model. - - The model. - The width (using the actual media width if set to NaN). - The height (using the actual media height if set to NaN). - - - - Exports the specified to the specified . - - The model. - The stream. - - - - Prints the specified plot model. - - The model. - - - - Gets or sets the width of the output document. - - - - - Gets or sets the height of the output document. - - - - - Gets or sets the background color. - - - - - Gets or sets the text formatting mode. - - The text formatting mode. - - - - Provides an XPS report writer. - - - - - The document. - - - - - The disposed flag. - - - - - Initializes a new instance of the class. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - - - - Prints the document. - - - - - Saves the document. - - The filename. - The width. - The height. - - - - Writes a drawing. - - The drawing. - - - - Writes an equation. - - The equation. - - - - Writes a header. - - The header. - - - - Writes an image. - - The image. - - - - Writes a paragraph. - - The paragraph. - - - - Writes a plot. - - The plot. - - - - Writes a report. - - The report. - The style. - - - - Writes a table. - - The t. - - - - The set style. - - The run. - The s. - - - - Adds a page body. - - The source flow document paginator. - The page number. - The page canvas. - The margins. - - - - Adds a page to the document. - - The fixed document. - The page canvas. - The page size. - - - - Builds the fixed document. - - The source flow doc paginator. - The size. - The margins. - The document. - - - - Creates the fixed document. - - The size. - The document. - - - - Creates a paragraph. - - The text. - The style. - A paragraph. - - - - Releases unmanaged and - optionally - managed resources - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Gets the FlowDocument. - - - - - Gets or sets the report style. - - - - diff --git a/packages/OxyPlot.Wpf.2014.1.546/lib/net45/OxyPlot.Xps.dll b/packages/OxyPlot.Wpf.2014.1.546/lib/net45/OxyPlot.Xps.dll deleted file mode 100644 index fd96e93..0000000 Binary files a/packages/OxyPlot.Wpf.2014.1.546/lib/net45/OxyPlot.Xps.dll and /dev/null differ diff --git a/packages/repositories.config b/packages/repositories.config deleted file mode 100644 index 83a1c83..0000000 --- a/packages/repositories.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/readme.md b/readme.md index c2096c3..d5b3531 100644 --- a/readme.md +++ b/readme.md @@ -1,29 +1,23 @@ -## Cloud Seed VST +# Cloud Seed has moved to a new home -Cloud Seed is an algorithmic reverb plugin built in C# and C++ for emulating huge, endless spaces and modulated echoes. The algorithms are based on the same principles as manu classic studio reverb units from the 1980's, but Cloud Seed does not attempt to model any specific device, or even to be a general-purpose reverb plugin at all. It is best employed as a special effect, for creating thick, lush pads out of simple input sounds. +For the latest version of Cloud Seed, please visit **[Ghost Note Audio](https://ghostnoteaudio.uk/products/cloudseed)**. -![](Documentation/Screenshot.png) +This is my new business, where Cloud Seed development will continue and new versions will be published. -## Download & Install +![](interface.png) -1. Download the latest version of Cloud Seed from the [**Releases Page**](https://github.com/ValdemarOrn/CloudSeed/releases). -2. Please read the **[Installation Instructions](https://github.com/ValdemarOrn/CloudSeed/tree/master/Installation%20Instructions)** +Cloud Seed is an algorithmic reverb plugin built in C# and C++ for emulating huge, endless spaces and modulated echoes. The algorithms are based on the same principles as manu classic studio reverb units from the 1980's, but Cloud Seed does not attempt to model any specific device, or even to be a general-purpose reverb plugin at all. It is best employed as a special effect, for creating thick, lush pads out of simple input sounds. -**If you get errors about either "vcruntime140.dll" or -"msvcp140.dll", you need to install the Microsoft Visual C Runtime Redistributable as described in the Installation Instructions.** +## Cloud Seed Core - Open Source -## System Requirements +If you are interested in using Cloud Seed in your own software, you can download the latest version of the core algorithm from the repository: -* Microsoft Windows 7, 8, 8.1, 10 or above -* 64 Bit Processor and operating system (support for 32 bit removes as of v1.0) -* .NET Framework 4.5. This can be installed using the provided installer. **Please make sure to check all the required dependencies on your system.** If you're not sure, leave them checked, the installer will automatically determine whether you already have the required libraries installed. +https://github.com/GhostNoteAudio/CloudSeedCore -## Documentation +## Legacy Code -See the [**Documentation Page**](https://github.com/ValdemarOrn/CloudSeed/tree/master/Documentation) for an overview of the user interface and an explanation of the reverberation kernel. +If you would like to study the legacy C# code and the original Cloud Seed plugin, the last released version is available on this branch: -## Reverb Kernel Architecture (for developers) +https://github.com/ValdemarOrn/CloudSeed/tree/legacy-v1 -![](Documentation/CloudSeed.png) -the code was originally developed in C# and then ported over to C++. The current version contains a full implementation of the reverb kernel in CPU-efficient C++ code. The user interface is built using WPF (Windows Presentation Foundation), and the plugin uses [SharpSoundDevice](https://github.com/ValdemarOrn/SharpSoundDevice) to communicate with a VST host. \ No newline at end of file