You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

141 lines
2.7 KiB
Plaintext

TITLE:: FluidDataSetQuery
summary:: Query a FluidDataSet
categories:: UGens>FluidManipulation
related:: Classes/FluidDataSet
DESCRIPTION::
A selection of columns and a set of conditions that match rows of a FluidDataSet.
Use to filter and search in a database of descriptors.
CLASSMETHODS::
METHOD:: new
Make a new instance
ARGUMENT:: server
The server on which to run this object
INSTANCEMETHODS::
PRIVATE:: init
METHOD:: addColumn
Add a column to the query
ARGUMENT:: column
Column index
ARGUMENT:: action
Run when done
METHOD:: addRange
Add a range of columns to the query
ARGUMENT:: start
First index
ARGUMENT:: count
Number of columns
ARGUMENT:: action
Run when done
METHOD:: filter
Filter rows according to some condition.
Example: (3, ">", 0.5) filters rows where the value of the 4th column (starting at 0) is larger than 0.5.
ARGUMENT:: column
Column index
ARGUMENT:: condition
Condition string. Possible values: "==", "!=", "<", "<=", ">", ">="
ARGUMENT:: value
Condition value
ARGUMENT:: action
Run when done
METHOD:: and
Add a condition to an existing filter with an "and" connector.
ARGUMENT:: column
Column index
ARGUMENT:: condition
Condition string. Possible values: "==", "!=", "<", "<=", ">", ">="
ARGUMENT:: value
Condition value
ARGUMENT:: action
Run when done
METHOD:: or
Add a condition to an existing filter with an "or" connector.
ARGUMENT:: column
Column index
ARGUMENT:: condition
Condition string. Possible values: "==", "!=", "<", "<=", ">", ">="
ARGUMENT:: value
Condition value
ARGUMENT:: action
Run when done
METHOD:: limit
Limit the number of resulting rows.
ARGUMENT:: rows
Maximum number of rows
ARGUMENT:: action
Run when done
METHOD:: reset
Clear the query, remove all columns, filters and limit.
ARGUMENT:: action
Run when done
METHOD:: transform
Apply the query to a source link::Classes/FluidDataSet:: and write to a destination. Can be the same.
ARGUMENT:: sourceDataset
Source data, or the dataset name
ARGUMENT:: destDataset
Destination data, or the dataset name
ARGUMENT:: action
Run when done
EXAMPLES::
code::
s.boot;
// Create a dataset with random data
~dataset= FluidDataSet(s,\help_fluid_dataset_query);
(
~points = 100.collect{24.collect{100.rand}};
~dataset.clear;
~tmpbuf = Buffer.alloc(s,24);
fork{
s.sync;
~points.do{|x,i|
~tmpbuf.setn(0,x);
~dataset.addPoint(i,~tmpbuf);
s.sync
}
}
)
// Prepare a FluidDataSetQuery object
~query = FluidDataSetQuery.new;
~query.reset;
~query.addColumn(5);
~query.addRange(0,2);
~query.filter(0,"<",50);
~query.and(1,"<",50);
~query.and(2,"<",50);
~query.limit(10);
// Create an output dataset and run the query
~out = FluidDataSet(s,\help_fluid_dataset_query_out);
~query.transform(~dataset, ~out);
// Check the results
~dataset.print;
~out.print;
::