7.13 Special data classes

Раздел описывает специальные классы данных mglDataV, mglDataF, mglDataT и mglDataR, которые могут заметно ускорить рисование и обработку данных. Классы определены в #include <mgl2/data.h>. Отмечу, что все функции рисования и обработки данных можно выполнить используя только основные классы mglData и/или mglDataC. Также специальные классы доступны только в коде на С++.

Класс mglDataV

представляет переменную со значениями равнораспределенными в заданном интервале.

Конструктор mglDataV: mglDataV (const mglDataV & d)

Конструктор копирования.

Конструктор mglDataV: mglDataV (long nx=1, long ny=1, long nz=1, mreal v1=0, mreal v2=NaN, char dir='x')

Создает переменную "размером" nxxnyxnz, изменяющуюся от v1 до v2 (или постоянную при v2=NaN) вдоль направления dir.

Метод класса mglDataV: void Create (long nx=1, long ny=1, long nz=1)

Задает "размеры" переменной nxxnyxnz.

Метод класса mglDataV: void Fill (mreal x1, mreal x2=NaN, char dir='x')

Задает диапазон изменения переменной.

Метод класса mglDataV: void Freq (mreal dp, char dir='x')

Задает переменную для частоты с шагом dp.

Класс mglDataF

представляет функцию, которая будет вызываться вместо обращения к элементам массива (как в классе mglData).

Конструктор mglDataF: mglDataF (const mglDataF & d)

Конструктор копирования.

Конструктор mglDataF: mglDataF (long nx=1, long ny=1, long nz=1)

Создает данные "размером" nxxnyxnz с нулевой функцией.

Метод класса mglDataF: void Create (long nx=1, long ny=1, long nz=1)

Задает "размеры" данных nxxnyxnz.

Метод класса mglDataF: void SetRanges (mglPoint p1, mglPoint p2)

Задает диапазоны изменения внутренних переменных x,y,z.

Метод класса mglDataF: void SetFormula (const char *func)

Задает строку, которая будет разобрана в функцию. Это вариант более чем 10 раз медленнее в сравнении с SetFunc().

Метод класса mglDataF: void SetFunc (mreal (*f)(mreal x,mreal y,mreal z,void *p), void *p=NULL)

Задает указатель на функцию, которая будет использована вместо доступа к элементам массива.

Класс mglDataT

представляет именнованную ссылку на столбец в другом массиве данных.

Конструктор mglDataT: mglDataT (const mglDataT & d)

Конструктор копирования.

Конструктор mglDataT: mglDataT (const mglDataA & d, long col=0)

Создает ссылку на col-ый столбец данных d.

Метод класса mglDataT: void SetInd (long col, wchar_t name)
Метод класса mglDataT: void SetInd (long col, const wchar_t * name)

Задает ссылку на другой столбец того же массива данных.

Класс mglDataR

представляет именнованную ссылку на строку в другом массиве данных.

Конструктор mglDataR: mglDataR (const mglDataR & d)

Конструктор копирования.

Конструктор mglDataR: mglDataR (const mglDataA & d, long row=0)

Создает ссылку на row-ую строку данных d.

Метод класса mglDataR: void SetInd (long row, wchar_t name)
Метод класса mglDataR: void SetInd (long row, const wchar_t * name)

Задает ссылку на другой столбец того же массива данных.

Class mglDataW

представляет часоту для FFT в виде массива данных.

Конструктор mglDataW: mglDataW (const mglDataW & d)

Конструктор копирования.

Конструктор mglDataW: mglDataW (long xx=1, long yy=1, long zz=1, double dp=0, char dir='x')

Задает размеры, направление dir и шаг dp для частоты.

Метод класса mglDataR: void Freq (double dp, char dir='x')

Равномерно распределяет данные с шагом dp в направлении dir.

Class mglDataS

представляет std::vector в виде массива данных.

Variable of mglDataS: std::vector<mreal> dat

Собственно данные.

Конструктор mglDataS: mglDataS (const mglDataS & d)

Конструктор копирования.

Конструктор mglDataS: mglDataS (const std::vector<mreal> & d)

Копирует данные из d.

Конструктор mglDataS: mglDataS (size_t s)

Выделяет память для s элементов.

Метод класса mglDataS: void reserve (size_t num)

Резервирует место для num элементов.

Метод класса mglDataS: void push_back (double v)

Добавляет значение v к концу массива данных.