本文整理汇总了C++中BasicBox::getCurve方法的典型用法代码示例。如果您正苦于以下问题:C++ BasicBox::getCurve方法的具体用法?C++ BasicBox::getCurve怎么用?C++ BasicBox::getCurve使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BasicBox
的用法示例。
在下文中一共展示了BasicBox::getCurve方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CurveWidget
bool
CurvesWidget::updateCurve(const string &address, bool forceUpdate)
{
BasicBox *box = Maquette::getInstance()->getBox(_boxID);
if (box != NULL) { // Box Found
AbstractCurve *abCurve = box->getCurve(address);
map<string, CurveWidget *>::iterator curveIt2 = _curveMap.find(address);
bool curveFound = (curveIt2 != _curveMap.end());
unsigned int curveTabIndex = 0;
CurveWidget *curveTab = NULL;
if (curveFound) {
curveTab = curveIt2->second;
}
static const bool FORCE_SHOW = true;
static const bool FORCE_HIDE = false;
unsigned int sampleRate;
bool redundancy, interpolate;
vector<float> values, xPercents, yValues, coeff;
vector<string> argTypes;
vector<short> sectionType;
if (abCurve != NULL) { // Abstract Curve found
if (abCurve->_show) { // Abstract curve showing
if (curveFound) { // Curve tab existing
if (forceUpdate) { // Force updating through engines
bool getCurveSuccess = Maquette::getInstance()->getCurveAttributes(_boxID, address, 0, sampleRate, redundancy, interpolate, values, argTypes, xPercents, yValues, sectionType, coeff);
if (getCurveSuccess) {
curveTab->setAttributes(_boxID, address, 0, values, sampleRate, redundancy, FORCE_SHOW, interpolate, argTypes, xPercents, yValues, sectionType, coeff);
box->setCurve(address, curveTab->abstractCurve());
if (!_interpolation->updateLine(address, interpolate, sampleRate, redundancy, FORCE_SHOW)) {
_interpolation->addLine(address, interpolate, sampleRate, redundancy, FORCE_SHOW);
}
}
}
else { // No forcing : updating through abstract curve
curveTab->setAttributes(abCurve);
if (!_interpolation->updateLine(address, abCurve->_interpolate, abCurve->_sampleRate, abCurve->_redundancy, abCurve->_show)) {
_interpolation->addLine(address, abCurve->_interpolate, abCurve->_sampleRate, abCurve->_redundancy, abCurve->_show);
}
}
}
else { // Curve tab not existing
if (forceUpdate) { // Force creating through engines
bool getCurveSuccess = Maquette::getInstance()->getCurveAttributes(_boxID, address, 0, sampleRate, redundancy, interpolate, values, argTypes, xPercents, yValues, sectionType, coeff);
if (getCurveSuccess) {
// Create and set
curveTab = new CurveWidget(NULL);
_tabWidget->clear();
curveTab->setAttributes(_boxID, address, 0, values, sampleRate, redundancy, FORCE_SHOW, interpolate, argTypes, xPercents, yValues, sectionType, coeff);
QString curveAddressStr = QString::fromStdString(address);
// Add tab and store
addCurve(curveAddressStr, curveTab);
addToComboBox(curveAddressStr);
_curveMap[address] = curveTab;
displayCurve(_comboBox->currentText());
// Set box curve
box->setCurve(address, curveTab->abstractCurve());
if (!_interpolation->updateLine(address, interpolate, sampleRate, redundancy, FORCE_SHOW)) {
_interpolation->addLine(address, interpolate, sampleRate, redundancy, FORCE_SHOW);
}
}
}
else { // No forcing : create through abstract curve
// Create and set
curveTab = new CurveWidget(NULL);
curveTab->setAttributes(abCurve);
QString curveAddressStr = QString::fromStdString(address);
// Add tab and store
addCurve(curveAddressStr, curveTab);
_curveMap[address] = curveTab;
addToComboBox(curveAddressStr);
displayCurve(_comboBox->currentText());
if (!_interpolation->updateLine(address, abCurve->_interpolate, abCurve->_sampleRate, abCurve->_redundancy, abCurve->_show)) {
_interpolation->addLine(address, abCurve->_interpolate, abCurve->_sampleRate, abCurve->_redundancy, abCurve->_show);
}
}
}
}
else { // Abstract curve hiding
if (curveFound) { // Curve tab existing
if (forceUpdate) { // Force updating through engines
bool getCurveSuccess = Maquette::getInstance()->getCurveAttributes(_boxID, address, 0, sampleRate, redundancy, interpolate, values, argTypes, xPercents, yValues, sectionType, coeff);
if (getCurveSuccess) {
if (values.front() != values.back()) {
curveTab->setAttributes(_boxID, address, 0, values, sampleRate, redundancy, FORCE_SHOW, interpolate, argTypes, xPercents, yValues, sectionType, coeff);
}
else {
// Set and assign new abstract curve to box
curveTab->setAttributes(_boxID, address, 0, values, sampleRate, redundancy, FORCE_HIDE, interpolate, argTypes, xPercents, yValues, sectionType, coeff);
}
//.........这里部分代码省略.........
示例2: addCurve
bool
BoxWidget::updateCurve(const string &address, bool forceUpdate)
{
Q_UNUSED(forceUpdate);
BasicBox *box = Maquette::getInstance()->getBox(_boxID);
if (box != NULL) { // Box Found
if (box->hasCurve(address)) {
AbstractCurve *abCurve = box->getCurve(address);
QMap<string, CurveWidget *>::iterator curveIt2 = _curveMap->find(address);
QString curveAddressStr = QString::fromStdString(address);
bool curveFound = (curveIt2 != _curveMap->end());
CurveWidget *curveTab = NULL;
unsigned int sampleRate;
bool redundancy, interpolate;
vector<float> values, xPercents, yValues, coeff;
vector<string> argTypes;
vector<short> sectionType;
bool getCurveSuccess = Maquette::getInstance()->getCurveAttributes(_boxID, address, 0, sampleRate, redundancy, interpolate, values, argTypes, xPercents, yValues, sectionType, coeff);
//--- PRINT ---
// std::cout<<"values : "<<std::endl;
// for (unsigned int i = 0; i < yValues.size() ; i++) {
// std::cout<<" "<<yValues[i]<<std::endl;
// }
// std::cout<<std::endl;
//-------------
if (getCurveSuccess) {
/********** Abstract Curve found ***********/
if (abCurve != NULL) {
if (curveFound) {
curveTab = curveIt2.value();
curveTab->setAttributes(_boxID, address, 0, values, sampleRate, redundancy, abCurve->_show, interpolate, argTypes, xPercents, yValues, sectionType, coeff);
bool muteState = Maquette::getInstance()->getCurveMuteState(_boxID, address);
if (forceUpdate) {
if (!muteState) {
addCurve(curveAddressStr, curveTab);
}
else {
removeCurve(address);
}
}
}
else {
//Create
curveTab = new CurveWidget(NULL);
curveTab->setAttributes(_boxID, address, 0, values, sampleRate, redundancy, abCurve->_show, interpolate, argTypes, xPercents, yValues, sectionType, coeff);
bool muteState = Maquette::getInstance()->getCurveMuteState(_boxID, address);
if (!muteState) {
addCurve(curveAddressStr, curveTab);
}
else {
removeCurve(address);
}
}
//Set attributes
box->setCurve(address, curveTab->abstractCurve());
}
/******* Abstract Curve not found ********/
else {
bool show = true;
// interpolate = !Maquette::getInstance()->getCurveMuteState(_boxID,address);
// if (xPercents.empty() && yValues.empty() && values.size() >= 2) {
// if (values.front() == values.back()) {
// show = false;
// interpolate = false;
// }
// }
//Set attributes
curveTab = new CurveWidget(NULL);
QString curveAddressStr = QString::fromStdString(address);
curveTab->setAttributes(_boxID, address, 0, values, sampleRate, redundancy, show, interpolate, argTypes, xPercents, yValues, sectionType, coeff);
if (interpolate) {
addCurve(curveAddressStr, curveTab);
box->setCurve(address, curveTab->abstractCurve());
}
}
}
}
else {
return false;
}
}
else { // Box Not Found
return false;
}
return false;
}