Originally, the intention of the US Census was to count the population every ten years so that representation could be apportioned. Over time, more questions were added to the decennial census, and other completely new data collection projects were developed.
Today, the Census Bureau has four major programs: the decennial census, the Current Population Survey (CPS), the Population Estimates Program, and the American Community Survey (ACS). Census Reporter (this site) only offers data from the ACS.
These programs differ in their data collection methodology, the frequency with which data is released, and the level of geographic specificity they can provide. There are a few other Census products
As its name indicates, the decennial census is run every ten years. It attempts to actually count every resident in the United States as of a specific day (April 1st of the census year, in recent decades.) Because it is a count and not a survey, the Census can publish precise counts for much smaller geographies than the other products.


| Concept Framework 2.2 documentation | Contents | Index |
| Name | Version | Deprecated |
| CheckPoint | version 1.0 | no |
| null-returned CheckPoint(number seconds) |
| seconds | the number of seconds to the next checkpoint |
| Sets a checkpoint to avoid infinite loops. Setting the seconds parameter to 0 will disable any existing checkpoint. This function is intended to offer some protection in the debug process of an application. |
... /* set a checkpoint to 30 seconds ... if the operation takes longer, the application will be forced to shutdown */ CheckPoint(30); // infinite loop ! while (true); /* notices that we passed the checkpoint, and cancels the checkpoint ... this point is never hit ! */ CheckPoint(0); ... |
| Documented by Eduard Suica, generation time: Sun Jan 27 18:15:18 2013 GMT | (c)2013 Devronium Applications |


| field name | value |
|---|---|
| Small Circle Radius: | |
| Big Circle Radius: | |
|
the scale of intersection area for small circle
|
% |
|
the scale of intersection area for big circle
|
% |


Home
About
Community
User Posts
Companies
Location
Reviews
Chart shows the reviews of companies based on people opinion.


Here's a list of links of different categories for you that is relevant to Europa Barbarorum 2 and the period's history. Enjoy!!
If you have a link you think should be on our list, drop an e-mail to us.
Europa Barbarorum 2 takes no responsibility for the content on other websites. And remember that the best sources on history are in books!!
Total War Community
TotalWar.com - The official Total War-series website TotalWar.org - One of the most popular fansites!! TotalWar Center - Another of the most popular fansites!!
Iberian Epigraphy Page - Information on Iberian languages Epigraphik Datenbank - Extensive database with Roman inscriptions from all parts of the empire (completly in latin).German


Welcome to the SharePoint Administration bot
More information about this bot can be found on the github page
GitHub repo


Phoenix Racing 2013-2014 Sponsors
Thank you to all of our generous sponsors! What we do is only possible thanks to the help of the following people and organizations.
For information on sponsorship, please contact our fundraising manager, Kevin Suzuki.
Corporate Sponsors:
Thank you to the following individuals and families:
Xy Ziemba, Ert McMullen, Tim Raymond, Ryan Harris, Jim Switzer, Alex Jenko, Richard Harris, the andree Family, The Perry Family, Guy and Barbara Jordan, The McCauley Family, The Townsend Family, The Celik Family, The Hilton-Joyce Family, Kathleen Scully, Annabelle Carr, Sandy and Sally Small, Jeff and Lola Stark, Kyle Copeland, The McClure Family, Marie and Ryan Stark, The Morris Family, The Rowley Family, The Varin Family, Michael Wallace, The Aletty Family, The Behling Family, The Bledsoe Family, The Helmik Family, The Bourke Family, and The Atkinson Family


The Girl Next Door
The Girl Next Door is a movie starring William Atherton, Blythe Auffarth, and Blanche Baker. Based on the Jack Ketchum novel of the same name, The Girl Next Door follows the unspeakable torture and abuses committed on a teenage girl...


--all-indicesedit
Summaryedit
This flag only functions within the scope of index selection
The --all-indices
flag allows you to act on all indices in a cluster.
Though this flag allows selection of all indices, the --exclude flag will allow you to exclude indices matching a pattern from the final list.
Flagsedit
-
--all-indices
Use all indices in the cluster.
Exampleedit
Show all indices:
curator show indices --all-indices


File manager
Up
New folder
Download file
Current path:
/
Upload file
Select file to upload
(file operation status)
Terminal widget should be focused (text cursor visible) to accept input. Click on it if not.
To paste, press Ctrl+A, then Ctrl+V


Relative Locator Tests
This text is above.
This is a paragraph of text in the middle.
This text is below.
1
2
3
4
5
6
7
8
9
El-A
El-B
El-C
El-D
El-E
El-F


Surveillance
The installation “Do You Agree?” illustrates the causality between blind acceptance of terms and conditions with the repressed knowledge about their consequences and aims to make the complex concept of digital profiling tangible.
Whenever you install a software or create an online profile you have to accept to some kind of terms and conditions. Even if we all seem to know about the dangers hidden in those contracts, nobody takes the time to read them. Amongst others, by accepting the contracts in most cases you give the companies the right to record data about you as a user. This data is processed by algorithms that track, analyze, and interprete your usage, behaviour and connections to create a detailed personal profile about you. The ratings are based on assumptions, sometimes they are fairly fitting but many seem almost presumptuous.
The exhibition space itself consists of spatially arranged prints of terms and conditions of some of the most commonly used software and websites and visualizes the pure mass of legal text hidden behind them. Before visitors enter the exhibition they have to agree to a blank terms and conditions dialog box. From that point on, their appearance is secretly evaluated through a facial analysis and their behaviour in the room is constantly monitored via a position tracking system. Combining this measurable facts with some assumed interpretations, a computer creates an individual profile for every visitor, including their gender, age, height, speed, attractivity and conformity. When the visitors leave the room they are confronted with a detailed print-out of this computer generated personal profile.


Layout Management
The Qt layout system provides a simple and powerful way of automatically arranging child widgets within a widget to ensure that they make good use of the available space.
Introduction
Qt includes a set of layout management classes that are used to describe how widgets are laid out in an application's user interface. These layouts automatically position and resize widgets when the amount of space available for them changes, ensuring that they are consistently arranged and that the user interface as a whole remains usable.
All QWidget subclasses can use layouts to manage their children. The QWidget::setLayout() function applies a layout to a widget. When a layout is set on a widget in this way, it takes charge of the following tasks:
- Positioning of child widgets.
- Sensible default sizes for windows.
- Sensible minimum sizes for windows.
- Resize handling.
- Automatic updates when contents change:
- Font size, text or other contents of child widgets.
- Hiding or showing a child widget.
- Removal of child widgets.
Qt's Layout Classes
Qt's layout classes were designed for hand-written C++ code, allowing measurements to be specified in pixels for simplicity, so they are easy to understand and use. The code generated for forms created using Qt Designer also uses the layout classes. Qt Designer is useful to use when experimenting with the design of a form since it avoids the compile, link and run cycle usually involved in user interface development.
Represents an anchor between two items in a QGraphicsAnchorLayout | |
Layout where one can anchor widgets together in Graphics View | |
Lines up child widgets horizontally or vertically | |
Lines up widgets horizontally | |
Lines up widgets vertically | |
Manages forms of input widgets and their associated labels | |
Lays out widgets in a grid | |
The base class of geometry managers | |
Abstract item that a QLayout manipulates | |
Blank space in a layout | |
Layout item that represents a widget | |
Layout attribute describing horizontal and vertical resizing policy | |
Stack of widgets where only one widget is visible at a time | |
Container to organize groups of button widgets | |
Group box frame with a title | |
Stack of widgets where only one widget is visible at a time |
Horizontal, Vertical, Grid, and Form Layouts
The easiest way to give your widgets a good layout is to use the built-in layout managers: QHBoxLayout, QVBoxLayout, QGridLayout, and QFormLayout. These classes inherit from QLayout, which in turn derives from QObject (not QWidget). They take care of geometry management for a set of widgets. To create more complex layouts, you can nest layout managers inside each other.
- A QHBoxLayout lays out widgets in a horizontal row, from left to right (or right to left for right-to-left languages).
- A QVBoxLayout lays out widgets in a vertical column, from top to bottom.
- A QGridLayout lays out widgets in a two-dimensional grid. Widgets can occupy multiple cells.
- A QFormLayout lays out widgets in a 2-column descriptive label- field style.
Laying Out Widgets in Code
The following code creates a QHBoxLayout that manages the geometry of five QPushButtons, as shown on the first screenshot above:
QWidget *window = new QWidget; QPushButton *button1 = new QPushButton("One"); QPushButton *button2 = new QPushButton("Two"); QPushButton *button3 = new QPushButton("Three"); QPushButton *button4 = new QPushButton("Four"); QPushButton *button5 = new QPushButton("Five"); QHBoxLayout *layout = new QHBoxLayout; layout->addWidget(button1); layout->addWidget(button2); layout->addWidget(button3); layout->addWidget(button4); layout->addWidget(button5); window->setLayout(layout); window->show();
The code for QVBoxLayout is identical, except the line where the layout is created. The code for QGridLayout is a bit different, because we need to specify the row and column position of the child widget:
QWidget *window = new QWidget; QPushButton *button1 = new QPushButton("One"); QPushButton *button2 = new QPushButton("Two"); QPushButton *button3 = new QPushButton("Three"); QPushButton *button4 = new QPushButton("Four"); QPushButton *button5 = new QPushButton("Five"); QGridLayout *layout = new QGridLayout; layout->addWidget(button1, 0, 0); layout->addWidget(button2, 0, 1); layout->addWidget(button3, 1, 0, 1, 2); layout->addWidget(button4, 2, 0); layout->addWidget(button5, 2, 1); window->setLayout(layout); window->show();
The third QPushButton spans 2 columns. This is possible by specifying 2 as the fifth argument to QGridLayout::addWidget().
QFormLayout will add two widgets on a row, commonly a QLabel and a QLineEdit to create forms. Adding a QLabel and a QLineEdit on the same row will set the QLineEdit as the QLabel's buddy. The following code will use the QFormLayout to place three QPushButtons and a corresponding QLineEdit on a row.
QWidget *window = new QWidget; QPushButton *button1 = new QPushButton("One"); QLineEdit *lineEdit1 = new QLineEdit(); QPushButton *button2 = new QPushButton("Two"); QLineEdit *lineEdit2 = new QLineEdit(); QPushButton *button3 = new QPushButton("Three"); QLineEdit *lineEdit3 = new QLineEdit(); QFormLayout *layout = new QFormLayout; layout->addRow(button1, lineEdit1); layout->addRow(button2, lineEdit2); layout->addRow(button3, lineEdit3); window->setLayout(layout); window->show();
Tips for Using Layouts
When you use a layout, you do not need to pass a parent when constructing the child widgets. The layout will automatically reparent the widgets (using QWidget::setParent()) so that they are children of the widget on which the layout is installed.
Note: Widgets in a layout are children of the widget on which the layout is installed, not of the layout itself. Widgets can only have other widgets as parent, not layouts.
You can nest layouts using addLayout()
on a layout; the inner layout then becomes a child of the layout it is inserted into.
Adding Widgets to a Layout
When you add widgets to a layout, the layout process works as follows:
- All the widgets will initially be allocated an amount of space in accordance with their QWidget::sizePolicy() and QWidget::sizeHint().
- If any of the widgets have stretch factors set, with a value greater than zero, then they are allocated space in proportion to their stretch factor (explained below).
- If any of the widgets have stretch factors set to zero they will only get more space if no other widgets want the space. Of these, space is allocated to widgets with an Expanding size policy first.
- Any widgets that are allocated less space than their minimum size (or minimum size hint if no minimum size is specified) are allocated this minimum size they require. (Widgets don't have to have a minimum size or minimum size hint in which case the stretch factor is their determining factor.)
- Any widgets that are allocated more space than their maximum size are allocated the maximum size space they require. (Widgets do not have to have a maximum size in which case the stretch factor is their determining factor.)
Stretch Factors
Widgets are normally created without any stretch factor set. When they are laid out in a layout the widgets are given a share of space in accordance with their QWidget::sizePolicy() or their minimum size hint whichever is the greater. Stretch factors are used to change how much space widgets are given in proportion to one another.
If we have three widgets laid out using a QHBoxLayout with no stretch factors set we will get a layout like this:
If we apply stretch factors to each widget, they will be laid out in proportion (but never less than their minimum size hint), e.g.
Custom Widgets in Layouts
When you make your own widget class, you should also communicate its layout properties. If the widget uses one of Qt's layouts, this is already taken care of. If the widget does not have any child widgets, or uses manual layout, you can change the behavior of the widget using any or all of the following mechanisms:
- Reimplement QWidget::sizeHint() to return the preferred size of the widget.
- Reimplement QWidget::minimumSizeHint() to return the smallest size the widget can have.
- Call QWidget::setSizePolicy() to specify the space requirements of the widget.
Call QWidget::updateGeometry() whenever the size hint, minimum size hint or size policy changes. This will cause a layout recalculation. Multiple consecutive calls to QWidget::updateGeometry() will only cause one layout recalculation.
If the preferred height of your widget depends on its actual width (e.g., a label with automatic word-breaking), set the height-for-width flag in the widget's size policy and reimplement QWidget::heightForWidth().
Even if you implement QWidget::heightForWidth(), it is still a good idea to provide a reasonable sizeHint().
For further guidance when implementing these functions, see the Qt Quarterly article Trading Height for Width.
Layout Issues
The use of rich text in a label widget can introduce some problems to the layout of its parent widget. Problems occur due to the way rich text is handled by Qt's layout managers when the label is word wrapped.
In certain cases the parent layout is put into QLayout::FreeResize mode, meaning that it will not adapt the layout of its contents to fit inside small sized windows, or even prevent the user from making the window too small to be usable. This can be overcome by subclassing the problematic widgets, and implementing suitable sizeHint() and minimumSizeHint() functions.
In some cases, it is relevant when a layout is added to a widget. When you set the widget of a QDockWidget or a QScrollArea (with QDockWidget::setWidget() and QScrollArea::setWidget()), the layout must already have been set on the widget. If not, the widget will not be visible.
Manual Layout
If you are making a one-of-a-kind special layout, you can also make a custom widget as described above. Reimplement QWidget::resizeEvent() to calculate the required distribution of sizes and call setGeometry() on each child.
The widget will get an event of type QEvent::LayoutRequest when the layout needs to be recalculated. Reimplement QWidget::event() to handle QEvent::LayoutRequest events.
How to Write A Custom Layout Manager
An alternative to manual layout is to write your own layout manager by subclassing QLayout. The Border Layout and Flow Layout examples show how to do this.
Here we present an example in detail. The CardLayout
class is inspired by the Java layout manager of the same name. It lays out the items (widgets or nested layouts) on top of each other, each item offset by QLayout::spacing().
To write your own layout class, you must define the following:
- A data structure to store the items handled by the layout. Each item is a QLayoutItem. We will use a QList in this example.
- addItem(), how to add items to the layout.
- setGeometry(), how to perform the layout.
- sizeHint(), the preferred size of the layout.
- itemAt(), how to iterate over the layout.
- takeAt(), how to remove items from the layout.
In most cases, you will also implement minimumSize().
The Header File (card.h
)
#ifndef CARD_H #define CARD_H #include <QtWidgets> #include <QList> class CardLayout : public QLayout { public: CardLayout(QWidget *parent, int dist): QLayout(parent, 0, dist) {} CardLayout(QLayout *parent, int dist): QLayout(parent, dist) {} CardLayout(int dist): QLayout(dist) {} ~CardLayout(); void addItem(QLayoutItem *item); QSize sizeHint() const; QSize minimumSize() const; int count() const; QLayoutItem *itemAt(int) const; QLayoutItem *takeAt(int); void setGeometry(const QRect &rect); private: QList<QLayoutItem*> list; }; #endif
The Implementation File (card.cpp
)
//#include "card.h"
First we define count()
to fetch the number of items in the list.
int CardLayout::count() const { // QList::size() returns the number of QLayoutItems in the list return list.size(); }
Then we define two functions that iterate over the layout: itemAt()
and takeAt()
. These functions are used internally by the layout system to handle deletion of widgets. They are also available for application programmers.
itemAt()
returns the item at the given index. takeAt()
removes the item at the given index, and returns it. In this case we use the list index as the layout index. In other cases where we have a more complex data structure, we may have to spend more effort defining a linear order for the items.
QLayoutItem *CardLayout::itemAt(int idx) const { // QList::value() performs index checking, and returns 0 if we are // outside the valid range return list.value(idx); } QLayoutItem *CardLayout::takeAt(int idx) { // QList::take does not do index checking return idx >= 0 && idx < list.size() ? list.takeAt(idx) : 0; }
addItem()
implements the default placement strategy for layout items. This function must be implemented. It is used by QLayout::add(), by the QLayout constructor that takes a layout as parent. If your layout has advanced placement options that require parameters, you must provide extra access functions such as the row and column spanning overloads of QGridLayout::addItem(), QGridLayout::addWidget(), and QGridLayout::addLayout().
void CardLayout::addItem(QLayoutItem *item) { list.append(item); }
The layout takes over responsibility of the items added. Since QLayoutItem does not inherit QObject, we must delete the items manually. In the destructor, we remove each item from the list using takeAt()
, and then delete it.
CardLayout::~CardLayout() { QLayoutItem *item; while ((item = takeAt(0))) delete item; }
The setGeometry()
function actually performs the layout. The rectangle supplied as an argument does not include margin()
. If relevant, use spacing()
as the distance between items.
void CardLayout::setGeometry(const QRect &r) { QLayout::setGeometry(r); if (list.size() == 0) return; int w = r.width() - (list.count() - 1) * spacing(); int h = r.height() - (list.count() - 1) * spacing(); int i = 0; while (i < list.size()) { QLayoutItem *o = list.at(i); QRect geom(r.x() + i * spacing(), r.y() + i * spacing(), w, h); o->setGeometry(geom); ++i; } }
sizeHint()
and minimumSize()
are normally very similar in implementation. The sizes returned by both functions should include spacing()
, but not margin()
.
QSize CardLayout::sizeHint() const { QSize s(0,0); int n = list.count(); if (n > 0) s = QSize(100,70); //start with a nice default size int i = 0; while (i < n) { QLayoutItem *o = list.at(i); s = s.expandedTo(o->sizeHint()); ++i; } return s + n*QSize(spacing(), spacing()); } QSize CardLayout::minimumSize() const { QSize s(0,0); int n = list.count(); int i = 0; while (i < n) { QLayoutItem *o = list.at(i); s = s.expandedTo(o->minimumSize()); ++i; } return s + n*QSize(spacing(), spacing()); }
Further Notes
- This custom layout does not handle height for width.
- We ignore QLayoutItem::isEmpty(); this means that the layout will treat hidden widgets as visible.
- For complex layouts, speed can be greatly increased by caching calculated values. In that case, implement QLayoutItem::invalidate() to mark the cached data is dirty.
- Calling QLayoutItem::sizeHint(), etc. may be expensive. So, you should store the value in a local variable if you need it again later within in the same function.
- You should not call QLayoutItem::setGeometry() twice on the same item in the same function. This call can be very expensive if the item has several child widgets, because the layout manager must do a complete layout every time. Instead, calculate the geometry and then set it. (This does not only apply to layouts, you should do the same if you implement your own resizeEvent(), for example.)
Layout Examples
Many Qt Widgets examples already use layouts, however, several examples exist to showcase various layouts.


boolean deleteTreeNode(
array
$data
)
|
|
Delete the data into the database according the table element and tree grid model.
A primaryKey should be set. If the key is not set It can be obtained from jqGridDB::getPrimaryKey Return true on success, false when the operation is not succefull
Parameters:
|
array |
$data: |
associative array which key values correspond to the names in the delete command |
API Tags:
void editTree(
[
$summary = null], [
$params = null], [string
$oper = false], [
$echo = true]
)
|
|
Perform the all CRUD operations depending on the oper param send from the grid, the table element and the treegrid model If the primaryKey is not set we try to obtain it using jqGridDB::getPrimaryKey If the primary key is not set or can not be obtained the operation is aborted.
Also the method call the queryTree to perform the tree ouput
Parameters:
|
array |
$summary: |
- set which columns should be sumarized in order to be displayed to the grid By default this parameter uses SQL SUM function: array("colmodelname"=>"sqlname"); It can be set to use the other one this way array("colmodelname"=>array("sqlname"=>"AVG")); By default the first field correspond to the name of colModel the second to the database name |
|
array |
$params: |
additional parameters that can be passed to the query |
|
string |
$oper: |
if set the requested oper operation is performed without to check the parameter sended from the grid. |
|
|
$echo: |
|
API Tags:
void getChildNodes(
integer
$node, [string
$order_field = ''], [boolean
$id = false]
)
|
|
Return all Child nodes for both methods. The data is populated in the protected variable $res.
Parameters:
|
integer |
$node: |
the id of the node |
|
string |
$order_field: |
- optional order field |
|
boolean |
$id: |
what to return - only the id of the noes or all the data of the child nodes. Deafult is false |
API Tags:
array getChildren(
[integer
$node_id = null]
)
|
|
Return the child nodes of a given node. If the node is not specifies return
the root nodes. Used only in adjacency model. Uses the data array
Parameters:
|
integer |
$node_id: |
the id of the node |
API Tags:
array getLeafNodes(
[integer
$node = 0]
)
|
|
Return the leaf nodes when the adjacency model is used.
Note that the table and table configuration should be set
Parameters:
|
integer |
$node: |
- the id of the node |
API Tags:
| Return: | of the leaf nodes |
| Access: | public |
Return the root nodes when adjacency model. Uses data array
API Tags:
Return the curent configuration for the model used
API Tags:
Returns the currently used tree model
API Tags:
boolean insertTreeNode(
array
$data
)
|
|
Insert the data array into the database according to the table element and tree model.
A primaryKey should be set. If the key is not set It can be obtained from jqGridDB::getPrimaryKey. The table config for the tree should be set.
Parameters:
|
array |
$data: |
associative array which key values correspond to the names in the table. |
API Tags:
| See: | setTableConfig
Return true on succes, false otherwiese. |
| Access: | public |
mixed queryTree(
[
$summary = null], [
$params = null], [boolen
$echo = true]
)
|
|
Return the result of the query to jqTreeGrid. Currently does not support searching.
Parameters:
|
array |
$summary: |
- set which columns should be sumarized in order to be displayed to the grid By default this parameter uses SQL SUM function: array("colmodelname"=>"sqlname"); It can be set to use the other one this way array("colmodelname"=>array("sqlname"=>"AVG")); By default the first field correspond to the name of colModel the second to the database name |
|
array |
$params: |
- parameter values passed to the sql |
|
boolen |
$echo: |
if set to false return the records as object, otherwiese json encoded or xml string depending on the dataType variable |
API Tags:
mixed. renderTree(
[string
$tblelement = ''], [string
$pager = ''], [boolean
$script = true], [
$summary = null], [
$params = null], [boolean
$createtbl = false], [boolean
$createpg = false], [boolean
$echo = true]
)
|
|
Main method which do allmost everthing for the tree grid.
Construct the tree grid, perform CRUD operations, perform Query set a jqGrid method, and javascript code.
Parameters:
|
string |
$tblelement: |
the id of the table element to costrict the grid |
|
string |
$pager: |
the id for the pager element |
|
boolean |
$script: |
if set to true add a script tag before constructin the grid. |
|
array |
$summary: |
- set which columns should be sumarized in order to be displayed to the grid By default this parameter uses SQL SUM function: array("colmodelname"=>"sqlname"); It can be set to use other one this way : array("colmodelname"=>array("sqlname"=>"AVG")); By default the first field correspond to the name of colModel the second to the database name |
|
array |
$params: |
parameters passed to the query |
|
boolean |
$createtbl: |
if set to true the table element is created automatically from this method. Default is false |
|
boolean |
$createpg: |
if set to true the pager element is created automatically from this script. Default false. |
|
boolean |
$echo: |
if set to false the function return the string representing the grid |
API Tags:
Se the tree data for future processing
Parameters:
API Tags:
void setLeafData(
array
$d
)
|
|
Set a leaf nodes for adjacency model
Parameters:
API Tags:
void setTableConfig(
array
$aconfig
)
|
|
Set the configuration fields for the model used.
For the adjacency model a 'id' and 'parent' should be set For the nested model 'id', 'left', 'right' and 'level' should be set Optional fields for all models : expanded, icon, leaf, loaded
Parameters:
API Tags:
void setTreeModel(
[string
$model = 'nested']
)
|
|
Set the tree mode used. Can be adjacency or nested. Deafault is nested
Parameters:
API Tags:
boolean updateTreeNode(
array
$data
)
|
|
Update the data into the database according the table element A primaryKey should be set. If the key is not set It can be obtained from jqGridDB::getPrimaryKey.
Return true on success, false when the operation is not succefull
Parameters:
|
array |
$data: |
associative array which key values correspond to the names in the table |
API Tags:


Overview
Package
Class
Use
Tree
Deprecated
Index
Help
PREV LETTER
NEXT LETTER
FRAMES
NO FRAMES
All Classes
A
B
C
D
E
F
G
H
I
K
L
M
N
P
R
S
T
U
V
X
S
save()
- Method in class model.agent.
Agent
save()
- Method in interface model.agent.
AgentMutable
Saves the agent in the
AgentCollectionStorage
SearchAgent
- Class in
model.agent.agents
Agent for searching and generating search data.
SearchAgent(String)
- Constructor for class model.agent.agents.
SearchAgent
Constructs a new SearchAgent object.
searchAgents(String)
- Method in class data.agents.
AgentCollectionStorage
searchAgents(String)
- Method in class data.agents.
AgentCollectionStorageMySQL
searchAgents(String)
- Method in class model.agent.collection.
AgentCollection
searchAgents(String)
- Method in interface model.agent.collection.
AgentCollectionViewable
Searches the agents for a string.
searchAgents(String)
- Method in class util.clientconnection.
RemoteAgentCollection
sendCommandToServer(XMLCommand)
- Method in class util.clientconnection.
XMLServerConnection
Sends an XMLServerCommand to the server for handling.
set(PropertyType, String, String)
- Method in class model.agent.
Agent
set(PropertyType, String, String)
- Method in interface model.agent.
AgentMutable
Sets the property for this Agent.
setAddress(String)
- Method in class model.agent.property.properties.
LocationProperty
Sets the address of this location.
setAddressName(String)
- Method in class model.agent.property.properties.
LocationProperty
Sets the address name of this location.
setAgent(Agent)
- Method in class model.agent.execution.
AgentExecutor
Sets the agent to be executed.
setCenter(double, double)
- Method in class util.htmltool.
HtmlMapContentGenerator
Sets the centre of the map.
setDateTime(GregorianCalendar)
- Method in class model.agent.property.properties.
TimeProperty
Sets the time of this TimeProperty using a GregorianCalendar.
setDateTime(int, int, int, int, int)
- Method in class model.agent.property.properties.
TimeProperty
Sets the time of this TimeProperty using values for each field.
setEndTime(TimeProperty)
- Method in class model.agent.property.properties.
TimeWindowProperty
Sets the ending time of this TimeWindowProperty.
setHidden(boolean)
- Method in class model.agent.property.
Property
Set to true if this Property should be hidden in the view.
setInstance(AgentCollectionStorage)
- Static method in class data.agents.
AgentCollectionStorage
Sets the instance of AgentCollectionStorage for this application.
setInstance(AgentStorage)
- Static method in class data.agents.
AgentStorage
Sets the instance of AgentStorage for this application.
setInstance(ClassifierCollectionStorage)
- Static method in class data.classification.
ClassifierCollectionStorage
Sets the instance of LocationCollectionStorage for this application.
setInstance(LocationCollectionStorage)
- Static method in class data.locations.
LocationCollectionStorage
Sets the instance of LocationCollectionStorage for this application.
setKey(String)
- Method in class util.xmltool.
KeyData
Set the key of this KeyData.
setLatitude(double)
- Method in class model.agent.property.properties.
LocationProperty
Sets the latitude of this location.
setLocationType(GoogleLocationType)
- Method in class model.agent.property.properties.
LocationProperty
Sets the type of this location.
setLongitude(double)
- Method in class model.agent.property.properties.
LocationProperty
Sets the longitude of this location.
setName(String)
- Method in class util.clientconnection.
XMLCommand
Sets the name of this XMLServerCommand.
setNeedsDetailsPane(boolean)
- Method in class model.agent.
Agent
setNumber(double)
- Method in class model.agent.property.properties.
NumberProperty
Sets the double value of this NumberProperty.
setParameter(String)
- Method in class util.clientconnection.
XMLCommand
Sets the parameter of this XMLServerCommand.
setReadBuffer(Map<String, Property>)
- Method in class model.agent.
Agent
setReadBuffer(Map<String, Property>)
- Method in interface model.agent.
AgentMutable
Set the readBuffer of this Agent
setStartTime(TimeProperty)
- Method in class model.agent.property.properties.
TimeWindowProperty
Sets the starting time of this TimeWindowProperty.
setStatus(AgentStatus)
- Method in class model.agent.property.properties.
StatusProperty
Sets the status of this StatusProperty.
setTag(String)
- Method in class util.xmltool.
KeyData
Same as
setKey(String)
.
setText(String)
- Method in class model.agent.property.properties.
TextProperty
Sets the text of this TextProperty.
Settings
- Class in
main
This class delegates the reading of properties.
Settings(Properties)
- Constructor for class main.
Settings
Constructs a new Settings object from a Properties object.
setValue(boolean)
- Method in class model.agent.property.properties.
BooleanProperty
Sets the value of this BooleanProperty.
setValue(String)
- Method in class util.xmltool.
KeyData
Set the value of this KeyData.
setValue(String, String)
- Method in class util.xmltool.
KeyDataVector
Sets the value for a certain key, replaces the value if the key already exists, otherwise it will be added.
setZoom(int)
- Method in class util.htmltool.
HtmlMapContentGenerator
Sets the zoom level of the map.
SHOW_ALL_OBJECTS
- Static variable in class main.
Settings
SHOW_OVERVIEW_LISTS
- Static variable in class main.
Settings
SHOW_SMALL_DETAILS_PANE
- Static variable in class main.
Settings
SMPT_PASSWORD
- Static variable in class main.
Settings
SMTP_EMAIL_ADDRESS
- Static variable in class main.
Settings
SMTP_SERVER
- Static variable in class main.
Settings
SMTP_USERNAME
- Static variable in class main.
Settings
SOSServer
- Class in
main
The main object to start the server.
SOSServer(Properties, AgentFactory, HashMap<String, String>)
- Constructor for class main.
SOSServer
The SOS Server.
start()
- Method in class util.
BenchMarker
Start benchmarking.
StatsAgent
- Class in
model.agent.agents
Agent for generating stats.
StatsAgent(String)
- Constructor for class model.agent.agents.
StatsAgent
Constructs a new StatsAgent object.
STATUS
- Static variable in class model.agent.
Agent
StatusProperty
- Class in
model.agent.property.properties
A Property implementation holding a status.
StatusProperty(String)
- Constructor for class model.agent.property.properties.
StatusProperty
Constucts a named StatusProperty instance.
StatusProperty(String, AgentStatus)
- Constructor for class model.agent.property.properties.
StatusProperty
Constucts a named StatusProperty instance with a status.
stop()
- Method in class util.
BenchMarker
Stop benchmarking and print the amount of time it ran.
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
PREV LETTER
NEXT LETTER
FRAMES
NO FRAMES
All Classes
A
B
C
D
E
F
G
H
I
K
L
M
N
P
R
S
T
U
V
X


Submitted by sumnerboy on Mon, 06/10/2014 - 08:46.
Not as pretty as yours...but still gives me warm fuzzies!
BTW - this graph is being rendered using Grafana on top of an InfluxDB database. My EmonTX is publishing MQTT messages which EmonCMS receives (via mqttwarn) and generates my solar 'dial' widgets and daily bar graphs. But openHAB also subscribes to the same topics and logs all the readings to its persistence engine (in my case I am using InfluxDb), which I can graph using Grafana.
Very similar actually. That evening peak seems pretty much universal. I'm not even going to pretend to know what your last paragraph means, but it sounds great ;-).
»
Re: My Net Costs dashboard
Submitted by sumnerboy on Mon, 06/10/2014 - 19:37.
Ha - sorry - was just trying to show the benefit of using MQTT as a message delivery protocol. By configuring my EmonTX to publish MQTT messages rather than direct updates to EmonCMS, I can configure multiple systems to consume those readings.
»
Re: My Net Costs dashboard
Submitted by Keen2bGreen on Tue, 30/12/2014 - 11:33.
SummerBoy - Nice Post.
Grafana and InfluxDB look very interesting to me.
I'm keen to learn more about how you generate your feeds to a InfluxDB server. I have InfluxDB running on my Pi. My gut feeling is that this is a much more flexible and powerful place to store timeseries data from my OpenEnergy Monitors than using EmonCms, Personally I'm not a big fan of FLOT - it's pretty out-dated and ugly in my opinion.
Also querying InfluxDB and using its aggregation features could be really cool - especially if you have some r/rstudio skill (which is an ambition/work in progress for me). As a side topic I do have EmonCMS data passing into RStudio via the Average API. This can produce some interesting visuals with the rCharts module,
Anyway - If you could post a tutorial on getting the feeds into InfluxDB - I'd be very grateful.
»
Re: My Net Costs dashboard
Submitted by sumnerboy on Thu, 15/01/2015 - 22:02.
Hi Keen2bGreen - sorry I missed your post - the lack of notifications on this forum is very frustrating.
I am using openHAB (www.openhab.org) as my central home automation controller. This has a binding for MQTT which means all the values published by my EmonTX can be subscribed to directly by openHAB. openHAB also has support for persisting values to InfluxDB. Therefore my system looks a little like;
* via mqttwarn - a python script which subscribes to MQTT topics and republishes the values to EmonCMS in the appropriate format
»
Re: My Net Costs dashboard
Submitted by Keen2bGreen on Mon, 26/01/2015 - 16:28.
Thanks Ben - that is helpful. Actually I have cracked on and setup those components - all on my trusty little Pi (with a 1TB HDD). It is amazing what the Pi can do.
My current config is EmonTX->EmonCMS (via EmonHub)->Mosquitto (via MQTT Event)->OpenHAB (via MQTT binding)->InfluxDB (via InfluxDB persist)->Grafana
I'm not aware of MQTTwarn, so will dig into that option - as I think the Event module on EmonCMS could be quite an overhead if I were to have many of my feeds replicate into OpenHAB/InfluxDB.
I've seen you are very active on many of the openHAB communities - so thanks from me on that. openHAB is quickly becoming my new obsession... being able to take automated action from events and data monitored by many of my smart devices, plus EmonCMS is lots of fun, and potentially quite valuable - time will tell.
Thanks again - no doubt I'll be in touch with more questions/clarifications (openHAB has been a pig to wrestle with - but I'm getting the hang of the basics now)
»
Re: My Net Costs dashboard
Submitted by sumnerboy on Tue, 27/01/2015 - 00:38.
Yep openHAB can be a struggle to get going initially - it is far from a finished/polished product yet - but once you get control of it the possibilities are endless!
If you are transmitting your sensor readings via RF then you will need something like EmonHub to translate those to something. I am using a custom version of the EmonTX (actually Robins PV diverter) sketch which publishes readings directly to MQTT - so no RF at all. This means openHAB and EmonCMS (via mqttwarn) both subscribe to the one feed and (I think) simplifies things a bit.
The downside is you need an ethernet connected EmonTX which I realise is not standard. Otherwise your scheme of using EmonHub to forward to EmonCMS is fine. If you could tweak EmonHub to also generate the MQTT publishes you would eliminate the need for EmonCMS to be doing this.
Re: My Net Costs dashboard
Not as pretty as yours...but still gives me warm fuzzies!
BTW - this graph is being rendered using Grafana on top of an InfluxDB database. My EmonTX is publishing MQTT messages which EmonCMS receives (via mqttwarn) and generates my solar 'dial' widgets and daily bar graphs. But openHAB also subscribes to the same topics and logs all the readings to its persistence engine (in my case I am using InfluxDb), which I can graph using Grafana.
Re: My Net Costs dashboard
Very similar actually. That evening peak seems pretty much universal. I'm not even going to pretend to know what your last paragraph means, but it sounds great ;-).
Re: My Net Costs dashboard
Ha - sorry - was just trying to show the benefit of using MQTT as a message delivery protocol. By configuring my EmonTX to publish MQTT messages rather than direct updates to EmonCMS, I can configure multiple systems to consume those readings.
Re: My Net Costs dashboard
SummerBoy - Nice Post.
Grafana and InfluxDB look very interesting to me.
I'm keen to learn more about how you generate your feeds to a InfluxDB server. I have InfluxDB running on my Pi. My gut feeling is that this is a much more flexible and powerful place to store timeseries data from my OpenEnergy Monitors than using EmonCms, Personally I'm not a big fan of FLOT - it's pretty out-dated and ugly in my opinion.
Also querying InfluxDB and using its aggregation features could be really cool - especially if you have some r/rstudio skill (which is an ambition/work in progress for me). As a side topic I do have EmonCMS data passing into RStudio via the Average API. This can produce some interesting visuals with the rCharts module,
Anyway - If you could post a tutorial on getting the feeds into InfluxDB - I'd be very grateful.
Re: My Net Costs dashboard
Hi Keen2bGreen - sorry I missed your post - the lack of notifications on this forum is very frustrating.
I am using openHAB (www.openhab.org) as my central home automation controller. This has a binding for MQTT which means all the values published by my EmonTX can be subscribed to directly by openHAB. openHAB also has support for persisting values to InfluxDB. Therefore my system looks a little like;
[EmonTX] ------ MQTT -----> [*EmonCMS]
-----> [openHAB] -----> [InfluxDB] -----> [Grafana]
* via mqttwarn - a python script which subscribes to MQTT topics and republishes the values to EmonCMS in the appropriate format
Re: My Net Costs dashboard
Thanks Ben - that is helpful. Actually I have cracked on and setup those components - all on my trusty little Pi (with a 1TB HDD). It is amazing what the Pi can do.
My current config is EmonTX->EmonCMS (via EmonHub)->Mosquitto (via MQTT Event)->OpenHAB (via MQTT binding)->InfluxDB (via InfluxDB persist)->Grafana
I'm not aware of MQTTwarn, so will dig into that option - as I think the Event module on EmonCMS could be quite an overhead if I were to have many of my feeds replicate into OpenHAB/InfluxDB.
I've seen you are very active on many of the openHAB communities - so thanks from me on that. openHAB is quickly becoming my new obsession... being able to take automated action from events and data monitored by many of my smart devices, plus EmonCMS is lots of fun, and potentially quite valuable - time will tell.
Thanks again - no doubt I'll be in touch with more questions/clarifications (openHAB has been a pig to wrestle with - but I'm getting the hang of the basics now)
Re: My Net Costs dashboard
Yep openHAB can be a struggle to get going initially - it is far from a finished/polished product yet - but once you get control of it the possibilities are endless!
If you are transmitting your sensor readings via RF then you will need something like EmonHub to translate those to something. I am using a custom version of the EmonTX (actually Robins PV diverter) sketch which publishes readings directly to MQTT - so no RF at all. This means openHAB and EmonCMS (via mqttwarn) both subscribe to the one feed and (I think) simplifies things a bit.
The downside is you need an ethernet connected EmonTX which I realise is not standard. Otherwise your scheme of using EmonHub to forward to EmonCMS is fine. If you could tweak EmonHub to also generate the MQTT publishes you would eliminate the need for EmonCMS to be doing this.
Fun and games to be had!


The smart restaurant waiting list
Use our simple app to manage your waiting list from your PC, tablet, or phone.
Use our simple app to manage your waiting list from your PC, tablet, or phone.
Use our simple app to manage your waiting list from your PC, tablet, or phone.


--- layout: newbase --- {% capture site_page_url %}{% include navigation/findpage.md folder=site.about name='site' %}{% endcapture %}
PHENIX, the Pioneering High Energy Nuclear Interaction eXperiment, is an exploratory experiment for the investigation of high energy collisions of heavy ions and protons. It is the largest of the four experiments that have taken data at the Relativistic Heavy Ion Collider. Data-taking was finished in 2016 and the PHENIX Collaboration is now analyzing large data samples collected, prioritizing those with a unique physics reach.
Site built at {{ site.time }}
{% comment %} ---------------------------------------------------------------------- {% assign find_howto_page=site.about | where: "abbrev", 'howto' %} {% assign howto_page_url=find_howto_page[0].url | relative_url %} {% endcomment %}


Begin your professional journey with our exclusive process
Job experience is key to landing the job you want, and building those experiences can be difficult. Internships can help fill up your résumé and assist you in picking your career path. Taking the initiative to pursue these opportunities early can make choosing your career path/college major much easier.
Create a profile with your name, email, school, and past internship experience.
Search our database of internship opportunities in your area.
We update our database regularly to make sure the visible internships are available.
The application process is made simple through our website.
Ready to start your next project with us? That's great! Give us a call or send us an email and we will get back to you as soon as possible!
123-456-6789


Please confirm you would like to remove Menu "{{menu.name}}" (id={{menu.id}})
These MenuItems and their translations will also be removed: {{items|safe}}


Enter some text into the text field below, then click "Go", to obtain the overall sentiment of the text you entered and a positive, negative, and neutral component breakdown.


Green Organic Dutchman shares fall after it reports $20.1-million loss
The Green Organic Dutchman Holdings Ltd. shares fell sharply in early trading following a $20.1-million third quarter loss for the cannabis company as the industry struggles to meet expectations.
Its stock fell about eight per cent to 76 cents soon after the open at the Toronto Stock Exchange, on top of a 9.8 per cent decline on Thursday before the results were released.
The Mississauga-based company says its loss increased from $11.3-million in the same quarter last year as costs rose from its expansion towards commercial production.
The results worked out to a loss of seven cents per share for the quarter ending Sept. 30, up from a loss of four cents in the same quarter last year.
The company says it invested $104-million in capital spending in the quarter, including the continued construction of two facilities in Ontario and Quebec.
It announced in October that it was significantly scaling back the timeline of its project in Valleyfield, Que., to reduce its cash needs.
Along with announcing its third quarter results, the company announced arrangements for up to $103 million in funding that includes the sale and leaseback of its facility in Ancaster, Ont.


This page doesn't exist!
You must have followed an incorrect link. If you think this is a mistake, let me know.
Go back Home
Grab a Cookie!
This website uses cookies to improve your experience. Hope that's okay with you.


Riddler is an FREE online interactive quizand cryptic hunt where the player choosestheir path through the game from a variety of tracks. Stand a chance to win amazing prizes!


Rasanel's Weather Forecasting
"Information you can TRUST!"
☰
Menu
Home
Preston
Soda Springs
Fish Haven
Storm Center
Gallery
Weather Gallery
Flowers in the summertime.
Foggy mountain view.
Snow in New York.
Wheatfield in the summer.
Cloudy mountain view.
Tent in a winter storm.
Summer beach view.
Thunderstorm.
Man with umbrella in the winter.


PKK recruits 270 terrorists from Germany
by ANADOLU AGENCYThe terrorist People's Protection Units (YPG)/PKK group recruited nearly 270 foreign fighters from Germany who took part in battles and terror attacks in Syria and Iraq, a report by German domestic intelligence agency BfV revealed on Friday.
In an analysis published in the quarterly newsletter of the BfV, the agency said among the almost 270 YPG/PKK foreign fighters who traveled to the region since 2013, at least 22 were killed in clashes or during Turkey's anti-terror operations.
Three German citizens, Jakob Riemer, Sarah Handelmann and Michael Panser, who were known to German authorities as "left-wing extremists," were among those killed.
The PKK has been banned in Germany since 1993, but it remains active, with nearly 14,500 followers among the country's Kurdish immigrant population.
Ankara has long criticized German authorities for not taking serious measures against the PKK and its Syrian affiliate, the YPG, which continue to use Germany as a platform for their fundraising, recruitment and propaganda activities.
In its more than 30-year terror campaign against Turkey, the PKK, listed as a terrorist organization by Turkey, the U.S. and the EU, has been responsible for the deaths of nearly 40,000 people, including women, children and infants.


Purpose
Running a web service in a docker container using docker-php-alpine.
Description
Apache, PHP-FPM, NGINX and SupervisorD for Docker build on Alpine Linux.
Usage
Docker
FROM ghcr.io/laniksj/docker-php-alpine:master
COPY . /var/www/html
I'm using the html folder to store my web content. In this case it's a web form.
Bugs
Please report any bugs or issues you find. Thanks!


Police seeking Michael Melville following Birkenhead assault
by New Zealand PoliceWaitemata Police is seeking the public’s assistance to locate Michael Melville, 33, also known as Michael Lucas, who is wanted to arrest in relation to a serious assault incident in Birkenhead in the early hours of Monday 18 November.
The female victim received serious injuries including a skull fracture, brain bleed, fractured eye socket and broken nose and is recovering in hospital.
Michael Melville is known to hire rental vehicles and may be travelling between Auckland and Dunedin.
He is described as medium build and 185cms tall and can be identified from a number of tattoos including the letters “N.S” on his neck and a large skull on his left forearm.
If you see Michael Melville, please phone 111.
Anyone with information about his whereabouts is asked to contact Waitemata Police on 09 839 697 and quote file number 191118/5657.
You can also contact Crimestoppers anonymously on 0800 555 111.


I am highly organized. I always take notes, and I use a series of tools to help myself stay on top of deadlines. I like to keep a clean workspace and create a logical filing method so I’m always able to find what I need. I find this increases efficiency and helps the rest of the team stay on track, too.I’m a people-person. I love meeting new people and learning about their lives and their backgrounds. I can almost always find common ground with strangers, and I like making people feel comfortable in my presence. I find this skill is especially helpful when kicking off projects with new clients.
The course of the world is changed by those who dare to dream.


A basic example of facets
An example of facets that illustrates selection
An example of facets that illustrates queries
An example of facets that illustrates queries, selection, and events
An example of facets that illustrates appending
An example of facets that illustrates click handlers
An example of facets that illustrates search event
An example of facets that illustrates show more feature
An example of facet sorting
An example of facets that illustrates replace feature
An example of facets that illustrates replace group feature
An example of facets that illustrates replace placeholder feature
An example of facets that illustrates destroy feature
An example of facets that illustrates highlight feature
An example of facets that illustrates the use of histograms (Horizontal facet)
An example of facets that illustrates the use of histograms with custom 'to' label
An example of facets that illustrates the use images as labels
An example of facets that illustrates the use of facet bar segments
An example of facets that illustrates the use of facet sparklines instead of bars
An example of facets badge component


public abstract class Signature
extends totalcross.lang.Object
| Modifier and Type | Field and Description |
|---|---|
protected Key |
key |
protected int |
operation |
static int |
OPERATION_SIGN
Constant used to initialize this signature algorithm to sign.
|
static int |
OPERATION_VERIFY
Constant used to initialize this signature algorithm to verify.
|
| Constructor and Description |
|---|
Signature() |
| Modifier and Type | Method and Description |
|---|---|
protected abstract void |
doReset() |
protected abstract byte[] |
doSign(byte[] data) |
protected abstract boolean |
doVerify(byte[] data,
byte[] expected) |
abstract String |
getAlgorithm()
Returns the name of the signature algorithm.
|
protected abstract boolean |
isKeySupported(Key key,
int operation) |
void |
reset(int operation,
Key key)
Initializes this message signature algorithm to sign or verify.
|
byte[] |
sign()
Finalizes the sign operation by processing all the accumulated input data and returning
the result in a new buffer.
|
String |
toString()
Returns the name of the algorithm.
|
void |
update(byte[] data)
Updates the input data that will be processed by this signature algorithm.
|
void |
update(byte[] data,
int start,
int count)
Updates the input data that will be processed by this signature algorithm.
|
void |
update(int data)
Updates the input data that will be processed by this signature algorithm.
|
boolean |
verify(byte[] signature)
Finalizes the verify operation by processing all the accumulated input data and returning
the signature comparison result.
|
protected int operation
protected Key key
public static final int OPERATION_SIGN
public static final int OPERATION_VERIFY
public final String toString()
public final void reset(int operation, Key key) throws CryptoException
operation
- The operation mode of this signature algorithm (OPERATION_SIGN
or OPERATION_VERIFY
).key
- The key.CryptoException
- If one or more initialization parameters are invalid or the signature algorithm fails to initialize with the given
parameters.public final void update(int data)
sign()
or verify(byte[])
is finally called.data
- The input data.public final void update(byte[] data)
sign()
or verify(byte[])
is finally called.data
- The input data.public final void update(byte[] data, int start, int count)
sign()
or verify(byte[])
is finally called.data
- The input data.start
- The offset in data
where the data starts.count
- The input length.public byte[] sign() throws CryptoException
CryptoException
public boolean verify(byte[] signature) throws CryptoException
CryptoException
public abstract String getAlgorithm()
protected abstract boolean isKeySupported(Key key, int operation)
protected abstract void doReset() throws NoSuchAlgorithmException, CryptoException
protected abstract byte[] doSign(byte[] data) throws CryptoException
CryptoException
protected abstract boolean doVerify(byte[] data, byte[] expected) throws CryptoException
CryptoException


Request RegEx Filter - Settings
Blacklist
Current RegEx (All url's matching the Regular Expressions here will be blocked
Remove Selected
Add a new RegEx Filter:
Add to Blacklist


|
Assimp
5.0.1, master @ cd42b955
|
Represents a row-major 4x4 matrix, use this for homogeneous coordinates. More...
Public Member Functions | |
| aiMatrix4x4t () AI_NO_EXCEPT | |
| set to identity More... | |
| aiMatrix4x4t (const aiMatrix3x3t< TReal > &m) | |
| construction from 3x3 matrix, remaining elements are set to identity More... | |
| aiMatrix4x4t (const aiVector3t< TReal > &scaling, const aiQuaterniont< TReal > &rotation, const aiVector3t< TReal > &position) | |
| construction from position, rotation and scaling components More... | |
| aiMatrix4x4t (TReal _a1, TReal _a2, TReal _a3, TReal _a4, TReal _b1, TReal _b2, TReal _b3, TReal _b4, TReal _c1, TReal _c2, TReal _c3, TReal _c4, TReal _d1, TReal _d2, TReal _d3, TReal _d4) | |
| construction from single values More... | |
| void | Decompose (aiVector3t< TReal > &pScaling, aiVector3t< TReal > &pRotation, aiVector3t< TReal > &pPosition) const |
| Decompose a trafo matrix into its original components. More... | |
| void | Decompose (aiVector3t< TReal > &pScaling, aiVector3t< TReal > &pRotationAxis, TReal &pRotationAngle, aiVector3t< TReal > &pPosition) const |
| Decompose a trafo matrix into its original components Thx to good FAQ at http://www.gamedev.ru/code/articles/faq_matrix_quat. More... | |
| void | Decompose (aiVector3t< TReal > &scaling, aiQuaterniont< TReal > &rotation, aiVector3t< TReal > &position) const |
| Decompose a trafo matrix into its original components. More... | |
| void | DecomposeNoScaling (aiQuaterniont< TReal > &rotation, aiVector3t< TReal > &position) const |
| Decompose a trafo matrix with no scaling into its original components. More... | |
| TReal | Determinant () const |
| bool | Equal (const aiMatrix4x4t &m, TReal epsilon=1e-6) const |
| aiMatrix4x4t & | FromEulerAnglesXYZ (const aiVector3t< TReal > &blubb) |
| aiMatrix4x4t & | FromEulerAnglesXYZ (TReal x, TReal y, TReal z) |
| Creates a trafo matrix from a set of euler angles. More... | |
| aiMatrix4x4t & | Inverse () |
| Invert the matrix. More... | |
| bool | IsIdentity () const |
| Returns true of the matrix is the identity matrix. More... | |
| template<typename TOther > | |
| operator aiMatrix4x4t< TOther > () const | |
| bool | operator!= (const aiMatrix4x4t &m) const |
| aiMatrix4x4t | operator* (const aiMatrix4x4t &m) const |
| aiMatrix4x4t | operator* (const TReal &aFloat) const |
| aiMatrix4x4t & | operator*= (const aiMatrix4x4t &m) |
| aiMatrix4x4t | operator+ (const aiMatrix4x4t &aMatrix) const |
| bool | operator== (const aiMatrix4x4t &m) const |
| TReal * | operator[] (unsigned int p_iIndex) |
| const TReal * | operator[] (unsigned int p_iIndex) const |
| aiMatrix4x4t & | Transpose () |
| Transpose the matrix. More... | |
Static Public Member Functions | |
| static aiMatrix4x4t & | FromToMatrix (const aiVector3t< TReal > &from, const aiVector3t< TReal > &to, aiMatrix4x4t &out) |
| A function for creating a rotation matrix that rotates a vector called "from" into another vector called "to". More... | |
| static aiMatrix4x4t & | Rotation (TReal a, const aiVector3t< TReal > &axis, aiMatrix4x4t &out) |
| Returns a rotation matrix for a rotation around an arbitrary axis. More... | |
| static aiMatrix4x4t & | RotationX (TReal a, aiMatrix4x4t &out) |
| Returns a rotation matrix for a rotation around the x axis. More... | |
| static aiMatrix4x4t & | RotationY (TReal a, aiMatrix4x4t &out) |
| Returns a rotation matrix for a rotation around the y axis. More... | |
| static aiMatrix4x4t & | RotationZ (TReal a, aiMatrix4x4t &out) |
| Returns a rotation matrix for a rotation around the z axis. More... | |
| static aiMatrix4x4t & | Scaling (const aiVector3t< TReal > &v, aiMatrix4x4t &out) |
| Returns a scaling matrix. More... | |
| static aiMatrix4x4t & | Translation (const aiVector3t< TReal > &v, aiMatrix4x4t &out) |
| Returns a translation matrix. More... | |
Public Attributes | |
| TReal | a1 |
| TReal | a2 |
| TReal | a3 |
| TReal | a4 |
| TReal | b1 |
| TReal | b2 |
| TReal | b3 |
| TReal | b4 |
| TReal | c1 |
| TReal | c2 |
| TReal | c3 |
| TReal | c4 |
| TReal | d1 |
| TReal | d2 |
| TReal | d3 |
| TReal | d4 |
Represents a row-major 4x4 matrix, use this for homogeneous coordinates.
There's much confusion about matrix layouts (column vs. row order). This is always a row-major matrix. Not even with the aiProcess_ConvertToLeftHanded flag, which absolutely does not affect matrix order - it just affects the handedness of the coordinate system defined thereby.
| aiMatrix4x4t< TReal >::aiMatrix4x4t |
set to identity
| aiMatrix4x4t< TReal >::aiMatrix4x4t | ( | TReal | _a1, |
| TReal | _a2, | ||
| TReal | _a3, | ||
| TReal | _a4, | ||
| TReal | _b1, | ||
| TReal | _b2, | ||
| TReal | _b3, | ||
| TReal | _b4, | ||
| TReal | _c1, | ||
| TReal | _c2, | ||
| TReal | _c3, | ||
| TReal | _c4, | ||
| TReal | _d1, | ||
| TReal | _d2, | ||
| TReal | _d3, | ||
| TReal | _d4 | ||
| ) |
construction from single values
|
explicit |
construction from 3x3 matrix, remaining elements are set to identity
| AI_FORCE_INLINE aiMatrix4x4t< TReal >::aiMatrix4x4t | ( | const aiVector3t< TReal > & | scaling, |
| const aiQuaterniont< TReal > & | rotation, | ||
| const aiVector3t< TReal > & | position | ||
| ) |
construction from position, rotation and scaling components
| scaling | The scaling for the x,y,z axes |
| rotation | The rotation as a hamilton quaternion |
| position | The position for the x,y,z axes |
| AI_FORCE_INLINE void aiMatrix4x4t< TReal >::Decompose | ( | aiVector3t< TReal > & | pScaling, |
| aiVector3t< TReal > & | pRotation, | ||
| aiVector3t< TReal > & | pPosition | ||
| ) | const |
Decompose a trafo matrix into its original components.
Thx to good FAQ at http://www.gamedev.ru/code/articles/faq_matrix_quat
| [out] | pScaling | - Receives the output scaling for the x,y,z axes. |
| [out] | pRotation | - Receives the output rotation as a Euler angles. |
| [out] | pPosition | - Receives the output position for the x,y,z axes. |
| AI_FORCE_INLINE void aiMatrix4x4t< TReal >::Decompose | ( | aiVector3t< TReal > & | pScaling, |
| aiVector3t< TReal > & | pRotationAxis, | ||
| TReal & | pRotationAngle, | ||
| aiVector3t< TReal > & | pPosition | ||
| ) | const |
Decompose a trafo matrix into its original components Thx to good FAQ at http://www.gamedev.ru/code/articles/faq_matrix_quat.
| [out] | pScaling | - Receives the output scaling for the x,y,z axes. |
| [out] | pRotationAxis | - Receives the output rotation axis. |
| [out] | pRotationAngle | - Receives the output rotation angle for pRotationAxis. |
| [out] | pPosition | - Receives the output position for the x,y,z axes. |
| AI_FORCE_INLINE void aiMatrix4x4t< TReal >::Decompose | ( | aiVector3t< TReal > & | scaling, |
| aiQuaterniont< TReal > & | rotation, | ||
| aiVector3t< TReal > & | position | ||
| ) | const |
Decompose a trafo matrix into its original components.
| scaling | Receives the output scaling for the x,y,z axes |
| rotation | Receives the output rotation as a hamilton quaternion |
| position | Receives the output position for the x,y,z axes |
| AI_FORCE_INLINE void aiMatrix4x4t< TReal >::DecomposeNoScaling | ( | aiQuaterniont< TReal > & | rotation, |
| aiVector3t< TReal > & | position | ||
| ) | const |
Decompose a trafo matrix with no scaling into its original components.
| rotation | Receives the output rotation as a hamilton quaternion |
| position | Receives the output position for the x,y,z axes |
| AI_FORCE_INLINE TReal aiMatrix4x4t< TReal >::Determinant |
| AI_FORCE_INLINE bool aiMatrix4x4t< TReal >::Equal | ( | const aiMatrix4x4t< TReal > & | m, |
| TReal | epsilon = 1e-6 |
||
| ) | const |
| AI_FORCE_INLINE aiMatrix4x4t< TReal > & aiMatrix4x4t< TReal >::FromEulerAnglesXYZ | ( | const aiVector3t< TReal > & | blubb | ) |
| AI_FORCE_INLINE aiMatrix4x4t< TReal > & aiMatrix4x4t< TReal >::FromEulerAnglesXYZ | ( | TReal | x, |
| TReal | y, | ||
| TReal | z | ||
| ) |
Creates a trafo matrix from a set of euler angles.
| x | Rotation angle for the x-axis, in radians |
| y | Rotation angle for the y-axis, in radians |
| z | Rotation angle for the z-axis, in radians |
|
static |
A function for creating a rotation matrix that rotates a vector called "from" into another vector called "to".
Input : from[3], to[3] which both must be normalized non-zero vectors Output: mtx[3][3] – a 3x3 matrix in column-major form Authors: Tomas Mueller, John Hughes "Efficiently Building a Matrix to Rotate One Vector to Another" Journal of Graphics Tools, 4(4):1-4, 1999
Input : from[3], to[3] which both must be normalized non-zero vectors Output: mtx[3][3] – a 3x3 matrix in colum-major form Authors: Tomas Möller, John Hughes "Efficiently Building a Matrix to Rotate One Vector to Another" Journal of Graphics Tools, 4(4):1-4, 1999
| AI_FORCE_INLINE aiMatrix4x4t< TReal > & aiMatrix4x4t< TReal >::Inverse |
Invert the matrix.
If the matrix is not invertible all elements are set to qnan. Beware, use (f != f) to check whether a TReal f is qnan.
|
inline |
Returns true of the matrix is the identity matrix.
The check is performed against a not so small epsilon.
| aiMatrix4x4t< TReal >::operator aiMatrix4x4t< TOther > |
| AI_FORCE_INLINE bool aiMatrix4x4t< TReal >::operator!= | ( | const aiMatrix4x4t< TReal > & | m | ) | const |
| AI_FORCE_INLINE aiMatrix4x4t< TReal > aiMatrix4x4t< TReal >::operator* | ( | const aiMatrix4x4t< TReal > & | m | ) | const |
| AI_FORCE_INLINE aiMatrix4x4t< TReal > aiMatrix4x4t< TReal >::operator* | ( | const TReal & | aFloat | ) | const |
| AI_FORCE_INLINE aiMatrix4x4t< TReal > & aiMatrix4x4t< TReal >::operator*= | ( | const aiMatrix4x4t< TReal > & | m | ) |
| AI_FORCE_INLINE aiMatrix4x4t< TReal > aiMatrix4x4t< TReal >::operator+ | ( | const aiMatrix4x4t< TReal > & | aMatrix | ) | const |
| AI_FORCE_INLINE bool aiMatrix4x4t< TReal >::operator== | ( | const aiMatrix4x4t< TReal > & | m | ) | const |
| AI_FORCE_INLINE TReal * aiMatrix4x4t< TReal >::operator[] | ( | unsigned int | p_iIndex | ) |
| [in] | p_iIndex | - index of the row. |
| AI_FORCE_INLINE const TReal * aiMatrix4x4t< TReal >::operator[] | ( | unsigned int | p_iIndex | ) | const |
|
static |
Returns a rotation matrix for a rotation around an arbitrary axis.
| a | Rotation angle, in radians |
| axis | Rotation axis, should be a normalized vector. |
| out | Receives the output matrix |
|
static |
Returns a rotation matrix for a rotation around the x axis.
| a | Rotation angle, in radians |
| out | Receives the output matrix |
|
static |
Returns a rotation matrix for a rotation around the y axis.
| a | Rotation angle, in radians |
| out | Receives the output matrix |
|
static |
Returns a rotation matrix for a rotation around the z axis.
| a | Rotation angle, in radians |
| out | Receives the output matrix |
|
static |
Returns a scaling matrix.
| v | Scaling vector |
| out | Receives the output matrix |
|
static |
Returns a translation matrix.
| v | Translation vector |
| out | Receives the output matrix |
| AI_FORCE_INLINE aiMatrix4x4t< TReal > & aiMatrix4x4t< TReal >::Transpose |
Transpose the matrix.
| TReal aiMatrix4x4t< TReal >::a1 |
| TReal aiMatrix4x4t< TReal >::a2 |
| TReal aiMatrix4x4t< TReal >::a3 |
| TReal aiMatrix4x4t< TReal >::a4 |
| TReal aiMatrix4x4t< TReal >::b1 |
| TReal aiMatrix4x4t< TReal >::b2 |
| TReal aiMatrix4x4t< TReal >::b3 |
| TReal aiMatrix4x4t< TReal >::b4 |
| TReal aiMatrix4x4t< TReal >::c1 |
| TReal aiMatrix4x4t< TReal >::c2 |
| TReal aiMatrix4x4t< TReal >::c3 |
| TReal aiMatrix4x4t< TReal >::c4 |
| TReal aiMatrix4x4t< TReal >::d1 |
| TReal aiMatrix4x4t< TReal >::d2 |
| TReal aiMatrix4x4t< TReal >::d3 |
| TReal aiMatrix4x4t< TReal >::d4 |


Kate Savage did an amazing job with my professional photoshoot!
Email for a reference<EMAIL_ADDRESS>Amazing Photographer, very professional and great fun to work with!
Email for a reference : anneblossom@fake.com


We provide fire engineering services to some of the world’s leading architects, developers, engineers and planners, across an enormous diversity of projects. These range from the 300m tall 22 Bishopsgate in London, one of Europe’s tallest towers, to the European Spallation Source in Sweden, which accommodates the world’s most powerful neutron source. Our work also encompasses numerous government properties, commercial and residential developments, healthcare schemes, large retail schemes, airports, stations and other transport interchanges.
Our services include fire engineering design and specification, fire safety audits, fire risk assessments, value engineering exercises and peer reviews. Our role is to apply scientific and engineering principles, rules and expert judgement based on our understanding of how fire impacts a building, the interaction with human behaviour and how to ensure safe access for fire fighters. We combine theoretical knowledge and practical application, using advanced computer modelling of fire, smoke, evacuation and structural response. We also provide fire safety systems design and post-occupancy safety solutions.
Fire engineering is a customisable discipline – while the science is universal, the approach depends on the type of building. The risks are different on every project. For example, in the case of Glasgow’s Queen Elizabeth Hospital, our UK team had to consider the special conditions of a healthcare environment where many patients would be unable to evacuate their wards unaided in an emergency. By contrast, we are also involved in a number of airports worldwide, including projects in Bahrain, Qatar, Chile and London Heathrow, where keeping the airport operational to enable planes to keep landing and people moving through the buildings is a priority.
In addition, fire engineering allows clients and architects to realise their creative design aspirations and to incorporate unique features, while still meeting the intent of regulations.
The construction industry worldwide is subject to strict legislation governing fire safety. One of our tasks is to help building owners understand and interpret the complex codes which vary from country to country and from sector to sector. In healthcare, for example, a project may have to comply with up to three different sets of codes.
For many projects, particularly non-standard developments, which may be large and complex and with high occupancy levels, standard code requirements may be inadequate, or may present obstacles with respect to a project’s vision, cost or function. Through the application of performance-based design, we can scientifically demonstrate that alternative solutions will achieve the same performance objectives as the code by calculating the building’s behaviour under realistic fire scenarios. This can add significant value to a project.
Our innovative, cost-saving fire engineering techniques allowed for a 50% reduction in the number of escape cores for the Manchester Hilton. In the case of the Al Shaqab Equestrian Centre in Doha, by undertaking thermal analysis of the steel structure of the huge 350m x 150m roof structure spanning the arena, we demonstrated that the life safety provisions of the code could be met without the prescriptive requirement to apply expensive fire protection to the roof members, resulting in significant cost savings.
Interaction with designers and the planning authoritiesGiven that fire engineers are responsible for the fire safety strategy of a project, our work informs the whole design team on fire safety matters. It provides design guidance to architects, advises the building services engineers on what systems are required, such as smoke ventilation, fire dampers, fire detection, smoke alarms, emergency lighting and sprinkler systems, and provides vital information to structural engineers on how long a structure must be protected for and how that is achieved.
The fire strategy is also a key document used by authorities to base their decision on for approving the safety aspects of a building. One of the most important aspects of our work is to liaise with building authorities as a scheme develops to discuss fire safety aspects, demonstrate that the strategy is safe in different scenarios and eventually gain approval for a fire-safe building that also meets its aesthetic, functional and commercial objectives.
Given that fire safety has important effects on the building’s architecture, for example it dictates the location of the cores, the size of the fire compartments, the shape of the atrium, etc. It is key that design teams bring the fire engineer as early as possible into the project’s discussions. As a result, the scheme will incorporate from the start all the best and most optimised fire safety features.
Tele2 Arena, StockHolm
AL SHAQAB EQUESTRIAN CENTRE, DOHA
Commercial and mixed-use
Cultural
Education
Local government
High-rise
mission critical facilities
residential
retail
sport and stadia
Audiovisual systems
building information modelling - bim
computational fluid dynamics
facade engineering
green building design
lighting design
building surveying
security consulting
structural engineering
vertical transportation
wind engineering and modelling
Featherstone, Wolverhampton, Staffordshire, England, UK
HM Prison Oakwood, West Midlands
A 1,605-place prison incorporating a high level of prefabricated elements – including 60% of the building services installation.
Featherstone, Wolverhampton, Staffordshire, England, UK
HM Prison Oakwood, West Midlands
A 1,605-place prison incorporating a high level of prefabricated elements – including 60% of the building services installation.


In 1957, Astra was established as a trading company. Over the course of its development, Astra has formed a number of strategic alliances with leading global players in various industries. Since 1990, the Company had become a public company and listed in the Indonesia Stock Exchange Astra now has six core businesses: Automotive, Financial Services, Heavy Equipment, Agribusiness, Information Technology and Infrastructure & Logistics Currently, Astra Group has a workforce of 223,019 people, spread across 198 subsidiaries and affiliates.
In 1957, Astra was established as a trading company. Over the course of its development, Astra has formed a number of strategic alliances with leading global players in various industries. Since 1990, the Company had become a public company and listed in the Indonesia Stock Exchange Astra now has six core businesses: Automotive, Financial Services, Heavy Equipment, Agribusiness, Information Technology and Infrastructure & Logistics Currently, Astra Group has a workforce of 223,019 people, spread across 198 subsidiaries and affiliates.


Charts
Table of Contents:
Chart
The Chart component plots data originating from it’s attached Data components. Five different
Chart types are available, including Line, Area, Scatter, Bar and Pie, which can be changed by
the Type
property.
The Chart component itself has various other properties that change the appearance
of the Chart, such as {Description
, GridEnabled
,
Properties
- BackgroundColor
- Specifies the chart’s background color as an alpha-red-green-blue integer.
- Description
- Specifies the text displayed by the description label inside the Chart. Specifying an empty string (“”) will not display any label.
- GridEnabled
- Changes the visibility of the Chart’s grid, if the Chart Type is set to a Chart with an Axis (applies for Area, Bar, Line, Scatter Chart types)
- Height
- Specifies the
Chart
’s vertical height, measured in pixels. - HeightPercent
- Specifies the
Chart
’s vertical height as a percentage of theScreen
’sHeight
. - Labels
- Changes the Chart’s X axis labels to the specified List, if the Chart’s Type is set to a Chart with an Axis.
The first entry of the List corresponds to the minimum x value of the data, the second to the min x value + 1, and so on.
If a label is not specified for an x value, a default value is used (the x value of the axis tick at that location) {:id="Chart.LabelsFromString" .text .wo .do} *LabelsFromString* : Specifies the labels to set to the Chart's X Axis, provided the current view is a Chart with an X Axis. The labels are specified as a single comma-separated values String (meaning each value is separated by a comma). See [`Labels`](#Chart.Labels) for more details on how the Labels are applied to the Chart. {:id="Chart.LegendEnabled" .boolean} *LegendEnabled* : Changes the visibility of the Chart's Legend. {:id="Chart.PieRadius" .number .wo .do} *PieRadius* : Sets the Pie Radius of the Chart. If the current type is not the Pie Chart, the value has no effect.
The value is hidden in the blocks due to it being applicable to a single Chart only. TODO: Might be better to change this in the future
TODO: Make this an enum selection in the future? (Donut, Full Pie, Small Donut, etc.) {:id="Chart.Type" .number .do} *Type* : Specifies the type of the Chart, which determines how to visualize the data. {:id="Chart.Visible" .boolean} *Visible* : Specifies whether the `Chart` should be visible on the screen. Value is `true`{:.logic.block} if the `Chart` is showing and `false`{:.logic.block} if hidden. {:id="Chart.Width" .number .bo} *Width* : Specifies the horizontal width of the `Chart`, measured in pixels. {:id="Chart.WidthPercent" .number .wo .bo} *WidthPercent* : Specifies the horizontal width of the `Chart` as a percentage of the [`Screen`'s `Width`](userinterface.html#Screen.Width). ### Events {#Chart-Events} {:.events} None ### Methods {#Chart-Methods} {:.methods} None ## ChartData2D {#ChartData2D} A ChartData2D component represents a single two dimensional Data Series in the Chart component, for example, a single Line in the case of a Line Chart, or a single Bar in the case of a Bar Chart. The Data component is responsible for handling all of the data of the Chart. The entries of the Data component correspond of an x and a y value. The component is attached directly to a Chart component by dragging it onto the Chart. ### Properties {#ChartData2D-Properties} {:.properties} {:id="ChartData2D.Color" .color} *Color* : Specifies the data series color as an alpha-red-green-blue integer. {:id="ChartData2D.Colors" .list .bo} *Colors* : Specifies the data series colors as a list of alpha-red-green-blue integers.
If there is more data than there are colors, the cclors will be alternated in order. E.g. if there are two colors Red and Blue, the colors will be applied in the order: Red, Blue, Red, Blue, ... {:id="ChartData2D.DataFileXColumn" .text .wo .do} *DataFileXColumn* : Value used when importing data from a DataFile component [`Source`](#ChartData2D.Source). The value represents the column to use from the DataFile for the x entries of the Data Series. For instance, if a column's first value is "Time", and a column value of "Time" is specified, that column will be used for the x values. If a value here is not specified, default values for the x values will be generated instead. {:id="ChartData2D.DataFileYColumn" .text .wo .do} *DataFileYColumn* : Value used when importing data from a DataFile component [`Source`](#ChartData2D.Source). The value represents the column to use from the DataFile for the y entries of the Data Series. For instance, if a column's first value is "Temperature", and a column value of "Temperature" is specified, that column will be used for the y values. If a value here is not specified, default values for the y values will be generated instead. {:id="ChartData2D.DataSourceKey" .text .wo .do} *DataSourceKey* : Sets the Data Source key identifier for the value to import from the attached Data Source.
An example is the tag of the TinyDB component, which identifies the value.
The property is a Designer-only property, and should be changed after setting the Source component of the Chart Data component.
A complete list of applicable values for each compatible source is as follows:
For TinyDB and CloudDB, this is the tag value.
For the AccelerometerSensor, the value should be one of the following: X Y or Z
For the GyroscopeSensor, the value should be one of the following: X Y or Z
For the LocationSensor, the value should be one of the following: latitude, longitude, altitude or speed
For the OrientationSensor, the value should be one of the following: pitch, azimuth or roll
For the Pedometer, the value should be one of the following: WalkSteps, SimpleSteps or Distance
For the ProximitySensor, the value should be distance.
For the BluetoothClient, the value represents the prefix to remove from the value. For instance,
if values come in the format "t:12", the prefix can be specified as "t:", and the prefix will
then be removed from the data. No value can be specified if purely numerical values are returned.
{:id="ChartData2D.ElementsFromPairs" .text .wo .do} *ElementsFromPairs*
: Comma separated list of Elements to use for the data series. Values are formatted
as follows: x1,y1,x2,y2,x3,y3. Values are taken in pairs, and an entry is formed
from the x and y values.
{:id="ChartData2D.Label" .text} *Label*
: Specifies the text for the data series label.
{:id="ChartData2D.LineType" .number .wo .do} *LineType*
: Changes the Line Type of the Data Series, provided that the
Data component is attached to a Chart that has the type set to
a line-based Chart(applies to area and line Chart types).
Valid types include linear, curved or stepped.
{:id="ChartData2D.PointShape" .number .wo .do} *PointShape*
: Changes the Point Shape of the Data Series, provided that the
Data component is attached to a Chart that has the type set to
the Scatter Chart. Valid types include circle, square, triangle, cross, x.
{:id="ChartData2D.Source" .component .wo .do} *Source*
: Sets the Source to use for the Data component. Valid choices
include AccelerometerSensor, BluetoothClient, CloudDB, DataFile,
GyroscopeSensor, LocationSesnro, OrientationSensor, Pedometer,
ProximitySensor TinyDB and Web components. The Source value also requires
valid DataSourceValue, WebColumn or DataFileColumn properties,
depending on the type of the Source attached (the required properties
show up in the Properties menu after the Source is changed).
If the data identified by the [`DataSourceKey`](#ChartData2D.DataSourceKey) is updated in the attached Data Source component, then the data is also updated in the Chart Data component. {:id="ChartData2D.WebXColumn" .text .wo .do} *WebXColumn* : Value used when importing data from a Web component Source. The value represents the column to use from the Web for the x entries of the Data Series. For instance, if the contents of the Web are retrieved in JSON format, and an array with the "Time" tag exists, the "Time" column value can be specified to use that array. {:id="ChartData2D.WebYColumn" .text .wo .do} *WebYColumn* : Value used when importing data from a Web component Source. The value represents the column to use from the Web for the y entries of the Data Series. For instance, if the contents of the Web are retrieved in JSON format, and an array with the "Temperature" tag exists, the "Temperature" column value can be specified to use that array. ### Events {#ChartData2D-Events} {:.events} None ### Methods {#ChartData2D-Methods} {:.methods} {:id="ChartData2D.AddEntry" class="method"} AddEntry(*x*{:.text},*y*{:.text}) : Adds an entry with the specified x and y value. Values can be specified as text, or as numbers. For Line, Scatter, Area and Bar Charts, both values should represent a number. For Bar charts, the x value is rounded to the nearest integer. For Pie Charts, the x value is a text value. {:id="ChartData2D.ChangeDataSource" class="method"} ChangeDataSource(*source*{:.component},*keyValue*{:.text}) : Changes the Data Source of the component to the specified component Source with the specified key value. See the [`Source`](#ChartData2D.Source) property for applicable components. See the [`DataSourceKey`](#ChartData2D.DataSourceKey) property for the interpretation of the keyValue. In the case of the DataFile and Web components, the keyValue is expected to be a CSV formatted string, where the first value corresponds to the x column, and the second value corresponds to the y value. {:id="ChartData2D.Clear" class="method"} Clear() : Removes all the entries from the Data Series. {:id="ChartData2D.DoesEntryExist" class="method returns boolean"} DoesEntryExist(*x*{:.text},*y*{:.text}) : Returns a boolean value specifying whether an entry with the specified x and y values exists. The boolean value of true is returned if the value exists, and a false value otherwise. See [`AddEntry`](#ChartData2D.AddEntry) for an explanation of the valid entry values. {:id="ChartData2D.GetAllEntries" class="method returns list"} GetAllEntries() : Returns all entries of the data series. The returned value is a list, where each element of the list is a list containing the values of the entry in order. {:id="ChartData2D.GetEntriesWithXValue" class="method returns list"} GetEntriesWithXValue(*x*{:.text}) : Returns all entries of the data series matching the specified x value. For a description of the format of the returned List, see [`GetAllEntries`](#ChartData2D.GetAllEntries) {:id="ChartData2D.GetEntriesWithYValue" class="method returns list"} GetEntriesWithYValue(*y*{:.text}) : Returns all entries of the data series matching the specified y value. For a description of the format of the returned List, see [`GetAllEntries`](#ChartData2D.GetAllEntries) {:id="ChartData2D.ImportFromCloudDB" class="method"} ImportFromCloudDB(*cloudDB*{:.component},*tag*{:.text}) : Imports data from the specified CloudDB component by taking the value identified by the specified tag value.
The expected CloudDB value is a list formatted in the same way as described in [`ImportFromList`](#ChartData2D.ImportFromList).
Does not overwrite any data. {:id="ChartData2D.ImportFromDataFile" class="method"} ImportFromDataFile(*dataFile*{:.component},*xValueColumn*{:.text},*yValueColumn*{:.text}) : Imports data from the specified DataFile component by taking the specified x column for the x values, and the specified y column for the y values. The DataFile's source file is expected to be either a CSV or a JSON file.
Passing in empty test for any of the column parameters will result in the usage of default values which are the indices of the entries. For the first entry, the default value would be the 1, for the second it would be 2, and so on. {:id="ChartData2D.ImportFromList" class="method"} ImportFromList(*list*{:.list}) : Imports the data from the specified list parameter to the data series. The list is expected to contain element which are also lists. Each list element is expected to have 2 values, the first one being the x value, and the second one being the y value. Invalid list entries are simply skipped.
Does not overwrite any data. {:id="ChartData2D.ImportFromTinyDB" class="method"} ImportFromTinyDB(*tinyDB*{:.component},*tag*{:.text}) : Imports data from the specified TinyDB component by taking the value identified by the specified tag value.
The expected TinyDB value is a list formatted in the same way as described in [`ImportFromList`](#ChartData2D.ImportFromList).
Does not overwrite any data. {:id="ChartData2D.ImportFromWeb" class="method"} ImportFromWeb(*web*{:.component},*xValueColumn*{:.text},*yValueColumn*{:.text}) : Imports data from the specified Web component by taking the specified x column for the x values, and the specified y column for the y values. Prior to calling this function, the Web component's Get method has to be called to load the data. The usage of the gotValue event in the Web component is unnecessary.
The expected response of the Web component is a JSON or CSV formatted file for this function to work.
Empty columns are filled with default values (1, 2, 3, ... for Entry 1, 2, 3, ...). {:id="ChartData2D.RemoveDataSource" class="method"} RemoveDataSource() : Removes the currently attached Data Source from the Chart Data component. Doing so will result in no more updates from the Data Source being sent, however, the current data will not be removed. {:id="ChartData2D.RemoveEntry" class="method"} RemoveEntry(*x*{:.text},*y*{:.text}) : Removes an entry with the specified x and y value, provided it exists. See [`AddEntry`](#ChartData2D.AddEntry) for an explanation of the valid entry values.


module Int32: sig .. end
This module provides operations on the type int32
of signed 32-bit integers. Unlike the built-in int
type,
the type int32
is guaranteed to be exactly 32-bit wide on all
platforms. All arithmetic operations over int32
are taken
modulo 232.
Performance notice: values of type int32
occupy more memory
space than values of type int
, and arithmetic operations on
int32
are generally slower than those on int
. Use int32
only when the application requires exact 32-bit arithmetic.
let zero: int32;
let one: int32;
let minus_one: int32;
let neg: int32 => int32;
let add: (int32, int32) => int32;
let sub: (int32, int32) => int32;
let mul: (int32, int32) => int32;
let div: (int32, int32) => int32;
Division_by_zero
if the second
argument is zero. This division rounds the real quotient of
its arguments towards zero, as specified for Pervasives.(/)
.let rem: (int32, int32) => int32;
y
is not zero, the result
of Int32.rem x y
satisfies the following property:
x = Int32.add (Int32.mul (Int32.div x y) y) (Int32.rem x y)
.
If y = 0
, Int32.rem x y
raises Division_by_zero
.let succ: int32 => int32;
Int32.succ x
is Int32.add x Int32.one
.let pred: int32 => int32;
Int32.pred x
is Int32.sub x Int32.one
.let abs: int32 => int32;
let max_int: int32;
let min_int: int32;
let logand: (int32, int32) => int32;
let logor: (int32, int32) => int32;
let logxor: (int32, int32) => int32;
let lognot: int32 => int32;
let shift_left: (int32, int) => int32;
Int32.shift_left x y
shifts x
to the left by y
bits.
The result is unspecified if y < 0
or y >= 32
.let shift_right: (int32, int) => int32;
Int32.shift_right x y
shifts x
to the right by y
bits.
This is an arithmetic shift: the sign bit of x
is replicated
and inserted in the vacated bits.
The result is unspecified if y < 0
or y >= 32
.let shift_right_logical: (int32, int) => int32;
Int32.shift_right_logical x y
shifts x
to the right by y
bits.
This is a logical shift: zeroes are inserted in the vacated bits
regardless of the sign of x
.
The result is unspecified if y < 0
or y >= 32
.let of_int: int => int32;
int
) to a 32-bit integer
(type int32
).let to_int: int32 => int;
int32
) to an
integer (type int
). On 32-bit platforms, the 32-bit integer
is taken modulo 231, i.e. the high-order bit is lost
during the conversion. On 64-bit platforms, the conversion
is exact.let of_float: float => int32;
Int32.min_int
, Int32.max_int
].let to_float: int32 => float;
let of_string: string => int32;
0x
, 0o
or 0b
respectively.
Raise Failure "int_of_string"
if the given string is not
a valid representation of an integer, or if the integer represented
exceeds the range of integers representable in type int32
.let to_string: int32 => string;
let bits_of_float: float => int32;
let float_of_bits: int32 => float;
int32
.type t = int32;
let compare: (t, t) => int;
Pervasives.compare
. Along with the type t
, this function compare
allows the module Int32
to be passed as argument to the functors
Set.Make
and Map.Make
.let format: (string, int32) => string;


This page is used to manage the operational RTB4FREE Bidder Farm
| Name | Password | Directory | Phone | Credit Card | ||
|---|---|---|---|---|---|---|
| Add |
| Name | Id | Bid Endpoint | |
|---|---|---|---|
| Add |
| Verbosity | |
| No Bid Reason |
| Hostname | |
| Port | |
| Win Channel | |
| Bid Channel | |
| Requests Channel | |
| Clicks Channel | |
| Logger Channel |
| Campaign Owner Name | Campaign Ad Id |
|---|---|
| Add |
| Name | Total | Bid | Nobid | Win | Pixel | Click | Errors | %Bid | %Win | %Pixel | %Click | Ad Spend | QPS | X-time(avg) |
|---|
| Name | Running | Campaigns | Log Level | Show No Bid Reason | Select |
|---|