ExprConeNode.h
Classes
- TableExprConeNode -- Class representing a cone search in table select expression (full description)
Interface
- Public Members
- TableExprConeNode (FunctionType, NodeDataType, ValueType, const ValueType& source, uInt origin)
- ~TableExprConeNode()
- Bool getBool (const TableExprId& id)
- Double getDouble (const TableExprId& id)
- Array<Bool> getArrayBool (const TableExprId& id)
- Array<Double> getArrayDouble (const TableExprId& id)
- static NodeDataType checkOperands (Block<Int>& dtypeOper, ValueType& resVT, Block<Int>& vtypeOper, FunctionType, PtrBlock<TableExprNodeRep*>&)
- static TableExprNodeRep* fillNode (TableExprConeNode* thisNode, PtrBlock<TableExprNodeRep*>& nodes, const Block<Int>& dtypeOper)
- static void fillChildNodes (TableExprConeNode* thisNode, PtrBlock<TableExprNodeRep*>& nodes, const Block<Int>& dtypeOper)
- Private Members
- void tryToConst()
- static Int findNelem (const TableExprNodeRep* node)
Review Status
- Reviewed By:
- UNKNOWN
- Date Reviewed:
- before2004/08/25
Prerequisite
Synopsis
The class represents a cone search.
It is a specialization of the TableExprFuncNode class.
Currently the implementation is straightforward, but in the future
it can do smarter things.
For instance:
- If the cone positions and radii are constant, one can use
an integer zone number (e.g. floor(dec)) to avoid the much
more expensive sine/cosine calculations. Each cone will get a
minzone and maxzone value (derived from cone position and radius).
- Multiple cones can be ordered on minzone and maxzone.
Member Description
Constructor
Destructor
'get' Functions to get the desired result of a function.
static NodeDataType checkOperands (Block<Int>& dtypeOper, ValueType& resVT, Block<Int>& vtypeOper, FunctionType, PtrBlock<TableExprNodeRep*>&)
Check the data and value types of the operands.
It sets the exptected data and value types of the operands.
Set the value type of the function result and returns
the data type of the function result.
Link the children to the node and convert the children
to constants if possible. Also convert the node to
constant if possible.
Link the children to the node and convert the children
to constants if possible.
Try if the function gives a constant result.
If so, set the expression type to Constant.
Find the number of elements in an argument.
It returns -1 if unknown.