Раздел описывает специальные классы данных 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)
¶Задает ссылку на другой столбец того же массива данных.
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.
mglDataS
¶представляет std::vector в виде массива данных.
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 к концу массива данных.