Documentation for classes.
--HG-- branch : feature
This commit is contained in:
parent
8a7ace463c
commit
2b1da2ac32
|
@ -40,12 +40,12 @@ qreal Calculator::eval(QString prog, QString *errorMsg){
|
|||
this->errorMsg->clear();
|
||||
debugFormula.clear();
|
||||
this->prog = prog;
|
||||
//qDebug()<<"Формула: "<<prog;
|
||||
//qDebug()<<"Formula: "<<prog;
|
||||
index = 0;
|
||||
qreal result = get_exp();
|
||||
QString str = QString(" = %1").arg(result, 0, 'f', 3);
|
||||
debugFormula.append(str);
|
||||
//qDebug()<<"Результат:"<<debugFormula;
|
||||
//qDebug()<<"Result:"<<debugFormula;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -57,12 +57,10 @@ qreal Calculator::get_exp(){
|
|||
return 0;
|
||||
}
|
||||
level2(&result);
|
||||
putback(); /* возвращает последнюю считаную
|
||||
лексему обратно во входной поток */
|
||||
putback();
|
||||
return result;
|
||||
}
|
||||
|
||||
/* Сложение или вычитание двух термов */
|
||||
void Calculator::level2(qreal *result){
|
||||
QChar op;
|
||||
qreal hold;
|
||||
|
@ -75,7 +73,6 @@ void Calculator::level2(qreal *result){
|
|||
}
|
||||
}
|
||||
|
||||
/* Вычисление произведения или частного двух фвкторов */
|
||||
void Calculator::level3(qreal *result){
|
||||
QChar op;
|
||||
qreal hold;
|
||||
|
@ -89,7 +86,6 @@ void Calculator::level3(qreal *result){
|
|||
}
|
||||
}
|
||||
|
||||
/* Обработка степени числа (целочисленной) */
|
||||
void Calculator::level4(qreal *result){
|
||||
qreal hold;
|
||||
|
||||
|
@ -101,7 +97,6 @@ void Calculator::level4(qreal *result){
|
|||
}
|
||||
}
|
||||
|
||||
/* Унарный + или - */
|
||||
void Calculator::level5(qreal *result){
|
||||
QChar op;
|
||||
|
||||
|
@ -115,7 +110,6 @@ void Calculator::level5(qreal *result){
|
|||
unary(op, result);
|
||||
}
|
||||
|
||||
/* Обработка выражения в круглых скобках */
|
||||
void Calculator::level6(qreal *result){
|
||||
if((token[0] == '(') && (token_type == DELIMITER)) {
|
||||
get_token();
|
||||
|
@ -127,7 +121,6 @@ void Calculator::level6(qreal *result){
|
|||
primitive(result);
|
||||
}
|
||||
|
||||
/* Определение значения переменной по ее имени */
|
||||
void Calculator::primitive(qreal *result){
|
||||
QString str;
|
||||
switch(token_type) {
|
||||
|
@ -148,9 +141,8 @@ void Calculator::primitive(qreal *result){
|
|||
}
|
||||
}
|
||||
|
||||
/* Выполнение специфицированной арифметики */
|
||||
void Calculator::arith(QChar o, qreal *r, qreal *h){
|
||||
qreal t;//, ex;
|
||||
qreal t;
|
||||
|
||||
switch(o.toLatin1()) {
|
||||
case '-':
|
||||
|
@ -171,78 +163,54 @@ void Calculator::arith(QChar o, qreal *r, qreal *h){
|
|||
break;
|
||||
case '^':
|
||||
*r = pow(*r, *h);
|
||||
// ex =*r;
|
||||
// if(*h==0) {
|
||||
// *r = 1;
|
||||
// break;
|
||||
// }
|
||||
// for(t=*h-1; t>0; --t)
|
||||
// *r = (*r) * ex;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Изменение знака */
|
||||
void Calculator::unary(QChar o, qreal *r){
|
||||
if(o=='-')
|
||||
*r = -(*r);
|
||||
}
|
||||
|
||||
/* Поиск значения переменной */
|
||||
qreal Calculator::find_var(QString s){
|
||||
bool ok = false;
|
||||
qreal value = data->FindVar(s, &ok);
|
||||
if(!ok){
|
||||
qDebug()<<s;
|
||||
serror(4); /* не переменная */
|
||||
serror(4); /* don't variable */
|
||||
return 0;
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
/* выдать сообщение об ошибке */
|
||||
void Calculator::serror(qint32 error){
|
||||
QString e[]= {
|
||||
"Синтаксическая ошибка",
|
||||
"Непарные круглые скобки",
|
||||
"Это не выражение",
|
||||
"Предполагается символ равенства",
|
||||
"Не переменная"
|
||||
tr("Syntax error"),
|
||||
tr("Parentheses do not match"),
|
||||
tr("This is not an expression"),
|
||||
tr("It is assumed the equality symbol"),
|
||||
tr("Do not variable")
|
||||
};
|
||||
errorMsg->clear();
|
||||
*errorMsg = e[error];
|
||||
qDebug()<<e[error];
|
||||
qDebug()<<e[error];
|
||||
}
|
||||
|
||||
/* Поиск соответствия внутреннего формата для
|
||||
текущей лексемы в таблице лексем.
|
||||
*/
|
||||
char Calculator::look_up(QString s){
|
||||
QString p;
|
||||
|
||||
/* преобразование к нижнему регистру */
|
||||
p = s;
|
||||
p = p.toLower();
|
||||
|
||||
/* просматривается, если лексема обнаружена в
|
||||
таблице */
|
||||
/*
|
||||
*у нас більше немає команд що потрібно опрацьовувати
|
||||
*/
|
||||
// if(commands.contains(p)){
|
||||
// return commands[p];
|
||||
// }
|
||||
return 0; /* нераспознанная команда */
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Возвращает "истину", если "c" разделитель */
|
||||
bool Calculator::isdelim(QChar c){
|
||||
if(StrChr(" ;,+-<>/*%^=()",c) || c=='\n' || c=='\r' || c=='\0')
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Возвращает 1, если "с" пробел или табуляция */
|
||||
bool Calculator::iswhite(QChar c){
|
||||
if(c==' ' || c=='\t')
|
||||
return true;
|
||||
|
@ -257,14 +225,14 @@ void Calculator::get_token(){
|
|||
token.clear();
|
||||
temp=&token;
|
||||
|
||||
if(prog[index]=='\0') { /* Конец файла */
|
||||
if(prog[index]=='\0') { /* end of file */
|
||||
token="\0";
|
||||
tok=FINISHED;
|
||||
token_type=DELIMITER;
|
||||
return;
|
||||
}
|
||||
|
||||
while(iswhite(prog[index])) ++index; /* пропуск пробелов */
|
||||
while(iswhite(prog[index])) ++index; /* skip spaces */
|
||||
|
||||
if(prog[index]=='\r') { /* crtl */
|
||||
++index; ++index;
|
||||
|
@ -274,15 +242,15 @@ void Calculator::get_token(){
|
|||
return;
|
||||
}
|
||||
|
||||
if(StrChr("+-*^/%=;(),><", prog[index])) { /* разделитель */
|
||||
if(StrChr("+-*^/%=;(),><", prog[index])) { /* delimiter */
|
||||
*temp=prog[index];
|
||||
index++; /* переход на следующую позицию */
|
||||
index++; /* jump to the next position */
|
||||
temp->append("\0");
|
||||
token_type=DELIMITER;
|
||||
debugFormula.append(token);
|
||||
return;
|
||||
}
|
||||
if(prog[index]=='"') { /* строка в кавычках */
|
||||
if(prog[index]=='"') { /* quoted string */
|
||||
index++;
|
||||
while(prog[index] != '"' && prog[index] != '\r'){
|
||||
temp->append(prog[index]);
|
||||
|
@ -294,7 +262,7 @@ void Calculator::get_token(){
|
|||
token_type=QUOTE;
|
||||
return;
|
||||
}
|
||||
if(prog[index].isDigit()) { /* число */
|
||||
if(prog[index].isDigit()) { /* number */
|
||||
while(!isdelim(prog[index])){
|
||||
temp->append(prog[index]);
|
||||
index++;
|
||||
|
@ -304,7 +272,7 @@ void Calculator::get_token(){
|
|||
return;
|
||||
}
|
||||
|
||||
if(prog[index].isPrint()) { /* переменная или команда */
|
||||
if(prog[index].isPrint()) { /* variable or command */
|
||||
while(!isdelim(prog[index])){
|
||||
temp->append(prog[index]);
|
||||
index++;
|
||||
|
@ -313,13 +281,12 @@ void Calculator::get_token(){
|
|||
}
|
||||
temp->append("\0");
|
||||
|
||||
/* Просматривается, если строка есть команда или переменная */
|
||||
/* Seen if there is a command line or a variable */
|
||||
if(token_type==STRING) {
|
||||
tok=look_up(token); /* преобразование во внутренний
|
||||
формат */
|
||||
tok=look_up(token);
|
||||
if(!tok)
|
||||
token_type = VARIABLE;
|
||||
else token_type = COMMAND; /* это команда */
|
||||
else token_type = COMMAND; /* It is command */
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -328,7 +295,6 @@ bool Calculator::StrChr(QString string, QChar c){
|
|||
return string.contains(c, Qt::CaseInsensitive);
|
||||
}
|
||||
|
||||
/* Возвращает лексему обратно во входной поток */
|
||||
void Calculator::putback(){
|
||||
QString t;
|
||||
t = token;
|
||||
|
|
|
@ -26,142 +26,148 @@
|
|||
#include "vcontainer.h"
|
||||
|
||||
/**
|
||||
* @brief The Calculator клас калькулятора формул лекал. Виконує розрахунок формул з підставлянням
|
||||
* значеннь зміних.
|
||||
* @brief The Calculator class calculate formulas of pattern. Support operation +,-,/,* and braces.
|
||||
* Can replace name of variables her value.
|
||||
*/
|
||||
class Calculator
|
||||
{
|
||||
class Calculator{
|
||||
public:
|
||||
/**
|
||||
* @brief Calculator конструктор класу. Використовується при розрахунку лекала.
|
||||
* @param data покажчик на контейнер змінних
|
||||
* @brief Calculator class constructor.
|
||||
* @param data pointer to a variable container.
|
||||
*/
|
||||
explicit Calculator(const VContainer *data);
|
||||
explicit Calculator(const VContainer *data);
|
||||
/**
|
||||
* @brief eval виконує розрахунок формули.
|
||||
* @param prog рядко в якому зберігається формула.
|
||||
* @return значення формули.
|
||||
* @brief eval calculate formula.
|
||||
* @param prog string of formula.
|
||||
* @return value of formula.
|
||||
*/
|
||||
qreal eval(QString prog, QString *errorMsg);
|
||||
qreal eval(QString prog, QString *errorMsg);
|
||||
private:
|
||||
Q_DISABLE_COPY(Calculator)
|
||||
QString *errorMsg;
|
||||
/**
|
||||
* @brief token теперішня лексема.
|
||||
* @brief errorMsg keeps error message of calculation.
|
||||
*/
|
||||
QString token;
|
||||
QString *errorMsg;
|
||||
/**
|
||||
* @brief tok внутрішне представлення лексеми.
|
||||
* @brief token current token.
|
||||
*/
|
||||
qint32 tok;
|
||||
QString token;
|
||||
/**
|
||||
* @brief token_type тип лексеми.
|
||||
* @brief tok internal representation of token.
|
||||
*/
|
||||
qint32 token_type;
|
||||
qint32 tok;
|
||||
/**
|
||||
* @brief prog рядок в якому зберігається формула.
|
||||
* @brief token_type type of token.
|
||||
*/
|
||||
QString prog; /* Содержит анализируемое выражение */
|
||||
qint32 token_type;
|
||||
/**
|
||||
* @brief index номер символу в рядку формули.
|
||||
* @brief prog string where keeps formula.
|
||||
*/
|
||||
qint32 index; /* Индекс символа в строке*/
|
||||
QString prog;
|
||||
/**
|
||||
* @brief data контейнер усіх змінних.
|
||||
* @brief index number character in string of formula.
|
||||
*/
|
||||
qint32 index;
|
||||
/**
|
||||
* @brief data container of all variables.
|
||||
*/
|
||||
const VContainer *data;
|
||||
/**
|
||||
* @brief debugFormula рядок розшифрованої формули.
|
||||
* @brief debugFormula decoded string of formula.
|
||||
*/
|
||||
QString debugFormula;
|
||||
QString debugFormula;
|
||||
/**
|
||||
* @brief get_exp виконує розрахунок формули.
|
||||
* @return значення формули.
|
||||
* @brief get_exp calculate formula.
|
||||
* @return value of formula.
|
||||
*/
|
||||
qreal get_exp();
|
||||
qreal get_exp();
|
||||
/**
|
||||
* @brief get_token повертає наступну лексему.
|
||||
* @brief get_token return next token.
|
||||
*/
|
||||
void get_token();/* Получить лексему */
|
||||
void get_token();
|
||||
/**
|
||||
* @brief StrChr перевіряє чи символ належить рядку.
|
||||
* @param string рядок
|
||||
* @param c символ.
|
||||
* @return true - належить рядку, false - не належить рядку.
|
||||
* @brief StrChr checks whether the character belongs to the line.
|
||||
* @param string string with formula
|
||||
* @param c character.
|
||||
* @return true - belongs to the line, false - don't belongs to the line.
|
||||
*/
|
||||
static bool StrChr(QString string, QChar c);
|
||||
static bool StrChr(QString string, QChar c);
|
||||
/**
|
||||
* @brief putback повертає зчитану лексему назад у потік.
|
||||
* @brief putback returns the readout token back into the flow.
|
||||
*/
|
||||
void putback();
|
||||
void putback();
|
||||
/**
|
||||
* @brief level2 метод додавання і віднімання двух термів.
|
||||
* @param result результат операції.
|
||||
* @brief level2 method of addition and subtraction of two terms.
|
||||
* @param result result of operation.
|
||||
*/
|
||||
void level2(qreal *result);
|
||||
void level2(qreal *result);
|
||||
/**
|
||||
* @brief level3 метод множення, ділення, знаходження процентів.
|
||||
* @param result результат операції.
|
||||
* @brief level3 method of multiplication, division, finding percent.
|
||||
* @param result result of operation.
|
||||
*/
|
||||
void level3(qreal *result);
|
||||
void level3(qreal *result);
|
||||
/**
|
||||
* @brief level4 метод знаходження степені двох чисел.
|
||||
* @param result результат операції.
|
||||
* @brief level4 method of degree two numbers.
|
||||
* @param result result of operation.
|
||||
*/
|
||||
void level4(qreal *result);
|
||||
void level4(qreal *result);
|
||||
/**
|
||||
* @brief level5 метод знаходження унарного плюса чи мінуса.
|
||||
* @param result результат операції.
|
||||
* @brief level5 method for finding unary plus or minus.
|
||||
* @param result result of operation.
|
||||
*/
|
||||
void level5(qreal *result);
|
||||
void level5(qreal *result);
|
||||
/**
|
||||
* @brief level6 метод обробки виразу в круглих лапках.
|
||||
* @param result результат операції.
|
||||
* @brief level6 processing method of the expression in brackets.
|
||||
* @param result result of operation.
|
||||
*/
|
||||
void level6(qreal *result);
|
||||
void level6(qreal *result);
|
||||
/**
|
||||
* @brief primitive метод визначення значення зміної по її імені.
|
||||
* @param result результат операції.
|
||||
* @brief primitive method of determining the value of a variable by its name.
|
||||
* @param result result of operation.
|
||||
*/
|
||||
void primitive(qreal *result);
|
||||
void primitive(qreal *result);
|
||||
/**
|
||||
* @brief arith виконання специфікованої арифметики. Результат записується в перший елемент.
|
||||
* @param o знак операції.
|
||||
* @param r перший елемент.
|
||||
* @param h другий елемент.
|
||||
* @brief arith perform the specified arithmetic. The result is written to the first element.
|
||||
* @param o sign operation.
|
||||
* @param r first element.
|
||||
* @param h second element.
|
||||
*/
|
||||
static void arith(QChar o, qreal *r, qreal *h);
|
||||
static void arith(QChar o, qreal *r, qreal *h);
|
||||
/**
|
||||
* @brief unary метод зміни знаку.
|
||||
* @param o символ знаку.
|
||||
* @param r елемент.
|
||||
* @brief unary method changes the sign.
|
||||
* @param o sign of symbol.
|
||||
* @param r element.
|
||||
*/
|
||||
static void unary(QChar o, qreal *r);
|
||||
static void unary(QChar o, qreal *r);
|
||||
/**
|
||||
* @brief find_var метод знаходить змінну за іменем.
|
||||
* @param s ім'я змінної.
|
||||
* @return значення зміної.
|
||||
* @brief find_var method is finding variable by name.
|
||||
* @param s name of variable.
|
||||
* @return value of variable.
|
||||
*/
|
||||
qreal find_var(QString s);
|
||||
void serror(qint32 error);
|
||||
qreal find_var(QString s);
|
||||
/**
|
||||
* @brief look_up пошук відповідного внутрішнього формату для теперішньої лексеми в таблиці лексем. текущей лексемы в таблице лексем
|
||||
* @param s ім'я лексеми.
|
||||
* @return внутрішній номер лексеми.
|
||||
* @brief serror report an error
|
||||
* @param error error code
|
||||
*/
|
||||
static char look_up(QString s);
|
||||
void serror(qint32 error);
|
||||
/**
|
||||
* @brief isdelim повертає "істино", якщо с розділювач.
|
||||
* @param c символ.
|
||||
* @return розділювач, або ні.
|
||||
* @brief look_up Finding the internal format for the current token in the token table.
|
||||
* @param s name of token.
|
||||
* @return internal number of token.
|
||||
*/
|
||||
static bool isdelim(QChar c);
|
||||
static char look_up(QString s);
|
||||
/**
|
||||
* @brief iswhite перевіряє чи с пробіл чи табуляція.
|
||||
* @param c символ.
|
||||
* @return так або ні.
|
||||
* @brief isdelim return true if c delimiter.
|
||||
* @param c character.
|
||||
* @return true - delimiter, false - do not delimiter.
|
||||
*/
|
||||
static bool iswhite(QChar c);
|
||||
static bool isdelim(QChar c);
|
||||
/**
|
||||
* @brief iswhite checks whether c space or tab.
|
||||
* @param c character.
|
||||
* @return true - space or tab, false - don't space and don't tab.
|
||||
*/
|
||||
static bool iswhite(QChar c);
|
||||
};
|
||||
|
||||
#endif // CALCULATOR_H
|
||||
|
|
|
@ -32,146 +32,179 @@
|
|||
#include <QCoreApplication>
|
||||
|
||||
/**
|
||||
* @brief The VContainer class
|
||||
* @brief The VContainer class container of all variables.
|
||||
*/
|
||||
class VContainer
|
||||
{
|
||||
class VContainer{
|
||||
Q_DECLARE_TR_FUNCTIONS(VContainer)
|
||||
public:
|
||||
/**
|
||||
* @brief VContainer create empty container
|
||||
*/
|
||||
VContainer();
|
||||
/**
|
||||
* @brief operator = copy constructor
|
||||
* @param data container
|
||||
* @return copy container
|
||||
*/
|
||||
VContainer &operator=(const VContainer &data);
|
||||
/**
|
||||
* @brief VContainer create container from another container
|
||||
* @param data container
|
||||
*/
|
||||
VContainer(const VContainer &data);
|
||||
/**
|
||||
* @brief setData copy data from container
|
||||
* @param data container
|
||||
*/
|
||||
void setData(const VContainer &data);
|
||||
/**
|
||||
* @brief VContainer
|
||||
*/
|
||||
VContainer();
|
||||
VContainer &operator=(const VContainer &data);
|
||||
VContainer(const VContainer &data);
|
||||
void setData(const VContainer &data);
|
||||
/**
|
||||
* @brief GetPoint
|
||||
* @param id
|
||||
* @brief GetPoint returns a point by id
|
||||
* @param id id of point
|
||||
* @return point
|
||||
*/
|
||||
VPointF GetPoint(qint64 id) const;
|
||||
/**
|
||||
* @brief GetModelingPoint return a modeling point by id
|
||||
* @param id id of modeling point
|
||||
* @return modeling point
|
||||
*/
|
||||
VPointF GetModelingPoint(qint64 id) const;
|
||||
/**
|
||||
* @brief GetStandartTableCell
|
||||
* @param name
|
||||
* @return
|
||||
*/
|
||||
VPointF GetPoint(qint64 id) const;
|
||||
VPointF GetModelingPoint(qint64 id) const;
|
||||
VStandartTableCell GetStandartTableCell(const QString& name) const;
|
||||
VIncrementTableRow GetIncrementTableRow(const QString& name) const;
|
||||
qreal GetLine(const QString &name) const;
|
||||
qreal GetLineArc(const QString &name) const;
|
||||
VSpline GetSpline(qint64 id) const;
|
||||
VSpline GetModelingSpline(qint64 id) const;
|
||||
VArc GetArc(qint64 id) const;
|
||||
VArc GetModelingArc(qint64 id) const;
|
||||
VSplinePath GetSplinePath(qint64 id) const;
|
||||
VSplinePath GetModelingSplinePath(qint64 id) const;
|
||||
VDetail GetDetail(qint64 id) const;
|
||||
static qint64 getId();
|
||||
qint64 AddPoint(const VPointF& point);
|
||||
qint64 AddModelingPoint(const VPointF& point);
|
||||
qint64 AddDetail(const VDetail& detail);
|
||||
void AddStandartTableCell(const QString& name, const VStandartTableCell& cell);
|
||||
void AddIncrementTableRow(const QString& name, const VIncrementTableRow &cell);
|
||||
void AddLengthLine(const QString &name, const qreal &value);
|
||||
void AddLengthSpline(const qint64 &firstPointId, const qint64 &secondPointId,
|
||||
Draw::Draws mode = Draw::Calculation);
|
||||
void AddLengthSpline(const QString &name, const qreal &value);
|
||||
void AddLengthArc(const qint64 ¢er, const qint64 &id);
|
||||
void AddLengthArc(const QString &name, const qreal &value);
|
||||
void AddLineAngle(const QString &name, const qreal &value);
|
||||
void AddLine(const qint64 &firstPointId, const qint64 &secondPointId,
|
||||
Draw::Draws mode = Draw::Calculation);
|
||||
qint64 AddSpline(const VSpline& spl);
|
||||
qint64 AddModelingSpline(const VSpline& spl);
|
||||
qint64 AddSplinePath(const VSplinePath& splPath);
|
||||
qint64 AddModelingSplinePath(const VSplinePath& splPath);
|
||||
qint64 AddArc(const VArc& arc);
|
||||
qint64 AddModelingArc(const VArc& arc);
|
||||
QString GetNameLine(const qint64 &firstPoint, const qint64 &secondPoint,
|
||||
Draw::Draws mode = Draw::Calculation) const;
|
||||
QString GetNameLineAngle(const qint64 &firstPoint, const qint64 &secondPoint,
|
||||
Draw::Draws mode = Draw::Calculation) const;
|
||||
QString GetNameSpline(const qint64 &firstPoint, const qint64 &secondPoint,
|
||||
Draw::Draws mode = Draw::Calculation) const;
|
||||
QString GetNameSplinePath(const VSplinePath &path,
|
||||
Draw::Draws mode = Draw::Calculation) const;
|
||||
QString GetNameArc(const qint64 ¢er, const qint64 &id,
|
||||
Draw::Draws mode = Draw::Calculation) const;
|
||||
void UpdatePoint(qint64 id, const VPointF& point);
|
||||
void UpdateModelingPoint(qint64 id, const VPointF& point);
|
||||
void UpdateDetail(qint64 id, const VDetail& detail);
|
||||
void UpdateSpline(qint64 id, const VSpline& spl);
|
||||
void UpdateModelingSpline(qint64 id, const VSpline& spl);
|
||||
void UpdateSplinePath(qint64 id, const VSplinePath& splPath);
|
||||
void UpdateModelingSplinePath(qint64 id, const VSplinePath& splPath);
|
||||
void UpdateArc(qint64 id, const VArc& arc);
|
||||
void UpdateModelingArc(qint64 id, const VArc& arc);
|
||||
void UpdateStandartTableCell(const QString& name, const VStandartTableCell& cell);
|
||||
void UpdateIncrementTableRow(const QString& name, const VIncrementTableRow& cell);
|
||||
qreal GetValueStandartTableCell(const QString& name) const;
|
||||
qreal GetValueIncrementTableRow(const QString& name) const;
|
||||
void Clear();
|
||||
void ClearObject();
|
||||
void ClearIncrementTable();
|
||||
void ClearLengthLines();
|
||||
void ClearLengthSplines();
|
||||
void ClearLengthArcs();
|
||||
void ClearLineAngles();
|
||||
void SetSize(qint32 size);
|
||||
void SetGrowth(qint32 growth);
|
||||
qint32 size() const;
|
||||
qint32 growth() const;
|
||||
qreal FindVar(const QString& name, bool *ok)const;
|
||||
bool IncrementTableContains(const QString& name);
|
||||
static qint64 getNextId();
|
||||
void RemoveIncrementTableRow(const QString& name);
|
||||
const QHash<qint64, VPointF> *DataPoints() const;
|
||||
const QHash<qint64, VPointF> *DataModelingPoints() const;
|
||||
const QHash<qint64, VSpline> *DataSplines() const;
|
||||
const QHash<qint64, VSpline> *DataModelingSplines() const;
|
||||
const QHash<qint64, VArc> *DataArcs() const;
|
||||
const QHash<qint64, VArc> *DataModelingArcs() const;
|
||||
const QHash<QString, qint32> *DataBase() const;
|
||||
VStandartTableCell GetStandartTableCell(const QString& name) const;
|
||||
VIncrementTableRow GetIncrementTableRow(const QString& name) const;
|
||||
qreal GetLine(const QString &name) const;
|
||||
qreal GetLineArc(const QString &name) const;
|
||||
VSpline GetSpline(qint64 id) const;
|
||||
VSpline GetModelingSpline(qint64 id) const;
|
||||
VArc GetArc(qint64 id) const;
|
||||
VArc GetModelingArc(qint64 id) const;
|
||||
VSplinePath GetSplinePath(qint64 id) const;
|
||||
VSplinePath GetModelingSplinePath(qint64 id) const;
|
||||
VDetail GetDetail(qint64 id) const;
|
||||
static qint64 getId();
|
||||
qint64 AddPoint(const VPointF& point);
|
||||
qint64 AddModelingPoint(const VPointF& point);
|
||||
qint64 AddDetail(const VDetail& detail);
|
||||
void AddStandartTableCell(const QString& name,
|
||||
const VStandartTableCell& cell);
|
||||
void AddIncrementTableRow(const QString& name,
|
||||
const VIncrementTableRow &cell);
|
||||
void AddLengthLine(const QString &name, const qreal &value);
|
||||
void AddLengthSpline(const qint64 &firstPointId,
|
||||
const qint64 &secondPointId,
|
||||
Draw::Draws mode = Draw::Calculation);
|
||||
void AddLengthSpline(const QString &name, const qreal &value);
|
||||
void AddLengthArc(const qint64 ¢er, const qint64 &id);
|
||||
void AddLengthArc(const QString &name, const qreal &value);
|
||||
void AddLineAngle(const QString &name, const qreal &value);
|
||||
void AddLine(const qint64 &firstPointId, const qint64 &secondPointId,
|
||||
Draw::Draws mode = Draw::Calculation);
|
||||
qint64 AddSpline(const VSpline& spl);
|
||||
qint64 AddModelingSpline(const VSpline& spl);
|
||||
qint64 AddSplinePath(const VSplinePath& splPath);
|
||||
qint64 AddModelingSplinePath(const VSplinePath& splPath);
|
||||
qint64 AddArc(const VArc& arc);
|
||||
qint64 AddModelingArc(const VArc& arc);
|
||||
QString GetNameLine(const qint64 &firstPoint, const qint64 &secondPoint,
|
||||
Draw::Draws mode = Draw::Calculation) const;
|
||||
QString GetNameLineAngle(const qint64 &firstPoint,
|
||||
const qint64 &secondPoint,
|
||||
Draw::Draws mode = Draw::Calculation) const;
|
||||
QString GetNameSpline(const qint64 &firstPoint, const qint64 &secondPoint,
|
||||
Draw::Draws mode = Draw::Calculation) const;
|
||||
QString GetNameSplinePath(const VSplinePath &path,
|
||||
Draw::Draws mode = Draw::Calculation) const;
|
||||
QString GetNameArc(const qint64 ¢er, const qint64 &id,
|
||||
Draw::Draws mode = Draw::Calculation) const;
|
||||
void UpdatePoint(qint64 id, const VPointF& point);
|
||||
void UpdateModelingPoint(qint64 id, const VPointF& point);
|
||||
void UpdateDetail(qint64 id, const VDetail& detail);
|
||||
void UpdateSpline(qint64 id, const VSpline& spl);
|
||||
void UpdateModelingSpline(qint64 id, const VSpline& spl);
|
||||
void UpdateSplinePath(qint64 id, const VSplinePath& splPath);
|
||||
void UpdateModelingSplinePath(qint64 id, const VSplinePath& splPath);
|
||||
void UpdateArc(qint64 id, const VArc& arc);
|
||||
void UpdateModelingArc(qint64 id, const VArc& arc);
|
||||
void UpdateStandartTableCell(const QString& name,
|
||||
const VStandartTableCell& cell);
|
||||
void UpdateIncrementTableRow(const QString& name,
|
||||
const VIncrementTableRow& cell);
|
||||
qreal GetValueStandartTableCell(const QString& name) const;
|
||||
qreal GetValueIncrementTableRow(const QString& name) const;
|
||||
void Clear();
|
||||
void ClearObject();
|
||||
void ClearIncrementTable();
|
||||
void ClearLengthLines();
|
||||
void ClearLengthSplines();
|
||||
void ClearLengthArcs();
|
||||
void ClearLineAngles();
|
||||
void SetSize(qint32 size);
|
||||
void SetGrowth(qint32 growth);
|
||||
qint32 size() const;
|
||||
qint32 growth() const;
|
||||
qreal FindVar(const QString& name, bool *ok)const;
|
||||
bool IncrementTableContains(const QString& name);
|
||||
static qint64 getNextId();
|
||||
void RemoveIncrementTableRow(const QString& name);
|
||||
const QHash<qint64, VPointF> *DataPoints() const;
|
||||
const QHash<qint64, VPointF> *DataModelingPoints() const;
|
||||
const QHash<qint64, VSpline> *DataSplines() const;
|
||||
const QHash<qint64, VSpline> *DataModelingSplines() const;
|
||||
const QHash<qint64, VArc> *DataArcs() const;
|
||||
const QHash<qint64, VArc> *DataModelingArcs() const;
|
||||
const QHash<QString, qint32> *DataBase() const;
|
||||
const QHash<QString, VStandartTableCell> *DataStandartTable() const;
|
||||
const QHash<QString, VIncrementTableRow> *DataIncrementTable() const;
|
||||
const QHash<QString, qreal> *DataLengthLines() const;
|
||||
const QHash<QString, qreal> *DataLengthSplines() const;
|
||||
const QHash<QString, qreal> *DataLengthArcs() const;
|
||||
const QHash<QString, qreal> *DataLineAngles() const;
|
||||
const QHash<qint64, VSplinePath> *DataSplinePaths() const;
|
||||
const QHash<qint64, VSplinePath> *DataModelingSplinePaths() const;
|
||||
const QHash<qint64, VDetail> *DataDetails() const;
|
||||
static void UpdateId(qint64 newId);
|
||||
QPainterPath ContourPath(qint64 idDetail) const;
|
||||
QPainterPath Equidistant(QVector<QPointF> points, const Detail::Equidistant &eqv,
|
||||
const qreal &width)const;
|
||||
static QLineF ParallelLine(const QLineF &line, qreal width );
|
||||
static QPointF SingleParallelPoint(const QLineF &line, const qreal &angle, const qreal &width);
|
||||
QVector<QPointF> EkvPoint(const QLineF &line1, const QLineF &line2, const qreal &width)const;
|
||||
QVector<QPointF> CheckLoops(const QVector<QPointF> &points) const;
|
||||
void PrepareDetails(QVector<VItem*> & list)const;
|
||||
const QHash<QString, qreal> *DataLengthLines() const;
|
||||
const QHash<QString, qreal> *DataLengthSplines() const;
|
||||
const QHash<QString, qreal> *DataLengthArcs() const;
|
||||
const QHash<QString, qreal> *DataLineAngles() const;
|
||||
const QHash<qint64, VSplinePath> *DataSplinePaths() const;
|
||||
const QHash<qint64, VSplinePath> *DataModelingSplinePaths() const;
|
||||
const QHash<qint64, VDetail> *DataDetails() const;
|
||||
static void UpdateId(qint64 newId);
|
||||
QPainterPath ContourPath(qint64 idDetail) const;
|
||||
QPainterPath Equidistant(QVector<QPointF> points,
|
||||
const Detail::Equidistant &eqv,
|
||||
const qreal &width)const;
|
||||
static QLineF ParallelLine(const QLineF &line, qreal width );
|
||||
static QPointF SingleParallelPoint(const QLineF &line, const qreal &angle,
|
||||
const qreal &width);
|
||||
QVector<QPointF> EkvPoint(const QLineF &line1, const QLineF &line2,
|
||||
const qreal &width)const;
|
||||
QVector<QPointF> CheckLoops(const QVector<QPointF> &points) const;
|
||||
void PrepareDetails(QVector<VItem*> & list)const;
|
||||
private:
|
||||
static qint64 _id;
|
||||
QHash<QString, qint32> base;
|
||||
QHash<qint64, VPointF> points;
|
||||
QHash<qint64, VPointF> modelingPoints;
|
||||
static qint64 _id;
|
||||
QHash<QString, qint32> base;
|
||||
QHash<qint64, VPointF> points;
|
||||
QHash<qint64, VPointF> modelingPoints;
|
||||
QHash<QString, VStandartTableCell> standartTable;
|
||||
QHash<QString, VIncrementTableRow> incrementTable;
|
||||
QHash<QString, qreal> lengthLines;
|
||||
QHash<QString, qreal> lineAngles;
|
||||
QHash<qint64, VSpline> splines;
|
||||
QHash<qint64, VSpline> modelingSplines;
|
||||
QHash<QString, qreal> lengthSplines;
|
||||
QHash<qint64, VArc> arcs;
|
||||
QHash<qint64, VArc> modelingArcs;
|
||||
QHash<QString, qreal> lengthArcs;
|
||||
QHash<qint64, VSplinePath> splinePaths;
|
||||
QHash<qint64, VSplinePath> modelingSplinePaths;
|
||||
QHash<qint64, VDetail> details;
|
||||
QHash<QString, qreal> lengthLines;
|
||||
QHash<QString, qreal> lineAngles;
|
||||
QHash<qint64, VSpline> splines;
|
||||
QHash<qint64, VSpline> modelingSplines;
|
||||
QHash<QString, qreal> lengthSplines;
|
||||
QHash<qint64, VArc> arcs;
|
||||
QHash<qint64, VArc> modelingArcs;
|
||||
QHash<QString, qreal> lengthArcs;
|
||||
QHash<qint64, VSplinePath> splinePaths;
|
||||
QHash<qint64, VSplinePath> modelingSplinePaths;
|
||||
QHash<qint64, VDetail> details;
|
||||
template <typename key, typename val> static val GetObject(const QHash<key,val> &obj, key id);
|
||||
template <typename val> static void UpdateObject(QHash<qint64, val> &obj, const qint64 &id,
|
||||
const val& point);
|
||||
template <typename key, typename val> static qint64 AddObject(QHash<key, val> &obj, const val& value);
|
||||
void CreateManTableIGroup ();
|
||||
QVector<QPointF> GetReversePoint(const QVector<QPointF> &points)const;
|
||||
qreal GetLengthContour(const QVector<QPointF> &contour, const QVector<QPointF> &newPoints)const;
|
||||
template <typename key, typename val> static qint64 AddObject(QHash<key, val> &obj,
|
||||
const val& value);
|
||||
void CreateManTableIGroup ();
|
||||
QVector<QPointF> GetReversePoint(const QVector<QPointF> &points)const;
|
||||
qreal GetLengthContour(const QVector<QPointF> &contour,
|
||||
const QVector<QPointF> &newPoints)const;
|
||||
};
|
||||
|
||||
#endif // VCONTAINER_H
|
||||
|
|
|
@ -74,7 +74,7 @@ CREATE_SUBDIRS = NO
|
|||
# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak,
|
||||
# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
|
||||
|
||||
OUTPUT_LANGUAGE = Ukrainian
|
||||
OUTPUT_LANGUAGE = English
|
||||
|
||||
# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
|
||||
# include brief member descriptions after the members that are listed in
|
||||
|
@ -369,7 +369,7 @@ EXTRACT_PACKAGE = NO
|
|||
# If the EXTRACT_STATIC tag is set to YES all static members of a file
|
||||
# will be included in the documentation.
|
||||
|
||||
EXTRACT_STATIC = NO
|
||||
EXTRACT_STATIC = YES
|
||||
|
||||
# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
|
||||
# defined locally in source files will be included in the documentation.
|
||||
|
|
Loading…
Reference in New Issue
Block a user