C3D Toolkit  Kernel - 105122, Vision - 0.181114.105122

Объявление пространства имен C3D. Подробнее...

Классы

class  IEmbodimentNode
 Узел дерева исполнений. Подробнее...
 
class  IEmbodimentTree
 Дерево Исполнений. Подробнее...
 
class  IModelTree
 Обобщенное дерево модели. Подробнее...
 
class  IModelTreeNode
 Узел дерева модели. Подробнее...
 
class  ItemAttrAnchor
 Данные атрибута Якорь. Подробнее...
 
class  ItemAttrBool
 Данные атрибута bool. Подробнее...
 
class  ItemAttrChanged
 Данные атрибута Изменённость. Подробнее...
 
class  ItemAttrColor
 Данные атрибута Цвет. Подробнее...
 
class  ItemAttrDencity
 Данные атрибута Плотность. Подробнее...
 
class  ItemAttrDouble
 Данные атрибута double. Подробнее...
 
class  ItemAttrEmbodiment
 Данные атрибута исполнения. Подробнее...
 
class  ItemAttrIdentifier
 Данные атрибута Идентификатор. Подробнее...
 
class  ItemAttrInt64
 Данные атрибута int64. Подробнее...
 
class  ItemAttrInteger
 Данные атрибута integer. Подробнее...
 
class  ItemAttrSelected
 Данные атрибута Селектированность. Подробнее...
 
class  ItemAttrString
 Данные атрибута string. Подробнее...
 
class  ItemAttrStyle
 Данные атрибута Стиль. Подробнее...
 
class  ItemAttrUpdateStamp
 Данные атрибута Метка времени обновления. Подробнее...
 
class  ItemAttrVisible
 Данные атрибута Видимость. Подробнее...
 
class  ItemAttrWidth
 Данные атрибута Толщина. Подробнее...
 
class  ItemDataBase
 Базовый класс для пользовательских данных узла дерева. Подробнее...
 
class  ItemDataBool
 Свойство типа bool. Подробнее...
 
class  ItemDataDouble
 Свойство типа double. Подробнее...
 
class  ItemDataInteger
 Свойство типа integer. Подробнее...
 
class  ItemDataString
 Свойство типа string. Подробнее...
 
struct  LumpCompLess
 
class  MbEmbodimentNode
 Узел дерева исполнений. Подробнее...
 
struct  MbItemData
 Данные узла дерева. Подробнее...
 
class  MbModelTree
 Дерево геометрической модели. Подробнее...
 
class  MbTreeNode
 Узел дерева. Подробнее...
 
class  UserDataMap
 Контейнер для пользовательских данных узла дерева. Подробнее...
 

Определения типов

typedef std::pair< size_t, size_t > IndicesPair
 Пара целочисленных неотрицательных индексов.
 
typedef std::pair< ptrdiff_t, ptrdiff_t > NumbersPair
 Пара целочисленных номеров.
 
typedef std::pair< uint, uint > UintPair
 Пара 32-битных целочисленных неотрицательных индексов.
 
typedef std::pair< bool, bool > BoolPair
 Пара флагов.
 
typedef std::pair< double, double > DoublePair
 Пара действительных чисел двойной точности с плавающей запятой.
 
typedef std::pair< size_t, double > IndexDouble
 Пара номер-число.
 
typedef std::pair< double, size_t > DoubleIndex
 Пара число-номер.
 
typedef std::pair< bool, double > FlagDouble
 Пара флаг-число.
 
typedef std::pair< double, bool > DoubleFlag
 Пара число-флаг.
 
typedef std::vector< size_t > IndicesVector
 Вектор целочисленных неотрицательных индексов.
 
typedef std::vector< ptrdiff_t > NumbersVector
 Вектор целочисленных номеров.
 
typedef std::vector< uint > UintVector
 Вектор 32-битных целочисленных неотрицательных индексов.
 
typedef std::vector< bool > BoolVector
 Вектор флагов.
 
typedef std::set< size_t > IndicesSet
 Набор целочисленных неотрицательных индексов.
 
typedef std::set< ptrdiff_t > NumbersSet
 Набор целочисленных номеров.
 
typedef std::set< uint > UintSet
 Набор 32-битных целочисленных неотрицательных индексов.
 
typedef SPtr< MbSpaceItemSpaceItemSPtr
 Умный указатель на геометрический объект.
 
typedef SPtr< const MbSpaceItemConstSpaceItemSPtr
 Умный указатель на геометрический объект.
 
typedef std::pair< MbSpaceItem *, MbSpaceItem * > SpaceItemPair
 Пара геометрических объектов.
 
typedef std::vector< MbSpaceItem * > SpaceItemsVector
 Вектор геометрических объектов.
 
typedef std::vector< const MbSpaceItem * > ConstSpaceItemsVector
 Вектор геометрических объектов.
 
typedef std::vector< SpaceItemSPtrSpaceItemsSPtrVector
 Вектор геометрических объектов.
 
typedef std::vector< ConstSpaceItemSPtrConstSpaceItemsSPtrVector
 Вектор геометрических объектов.
 
typedef std::basic_string< TCHAR > string_t
 Определение строки для модуля ядра C3D.

 

Перечисления

enum  MbeItemDataType
 Тип пользовательских данных узла дерева модели. Подробнее...
 
Способ информирования о нарушении требований.~
enum  eAssertViolationNotify { avn_Mute, avn_CERR, avn_ASSERT }
 

Функции

double CalcAngle0X (double dx, double dy)
 Вычислить угол между прямой и осью 0X. Подробнее...
 
long double CalcAngle0X (long double dx, long double dy)
 Вычислить угол между прямой и осью 0X. Подробнее...
 
double CalcAngle0X (const MbCartPoint &p1, const MbCartPoint &p2)
 Вычислить угол между прямой и осью 0X. Подробнее...
 
double & NormalizeAngle (double &angle, double angleEpsilon=Math::AngleEps)
 Нормализовать угол. Подробнее...
 
void AngleToParam (double dir, bool left, double &t)
 Перевести параметр окружности в параметр кривой. Подробнее...
 
template<class Type >
double AngleBetweenVectors (const Type &v1, const Type &v2)
 Вычислить угол между двумя векторами. Подробнее...
 
double CalcAngle3Points (const MbCartPoint &p1, const MbCartPoint &centre, const MbCartPoint &p3)
 Вычислить минимальный угол между прямыми. Подробнее...
 
template<class Vector >
bool ArFind (const Vector &arParam, double t, ptrdiff_t &id)
 Найти параметр в массиве. Подробнее...
 
MbCartPoint LineSegDivide (const MbCartPoint &p1, const MbCartPoint &p2)
 Разделить отрезок пополам. Подробнее...
 
ptrdiff_t mod (ptrdiff_t i, ptrdiff_t n)
 i по модулю n (циклический вариант).
 
int Sign (double a)
 Определение знака вещественного числа.
 
int Round (double x)
 Округление вещественного числа.
 
int32 LRound (double x)
 Округление вещественного числа.
 
int32 CheckLRound (double x)
 Округление вещественного числа с проверкой
 
bool InRange (double x1, double x2, double x)
 Лежит ли число в интервале [x1, x2]. Подробнее...
 
bool IsParamOn (double tmin, double tmax, double t, double treg)
 Находится ли параметр в диапазоне кривой. Подробнее...
 
bool InRangePlus (double x1, double x, double eps=FLT_EPSILON)
 Лежит ли число в диапазоне [0, x1). Подробнее...
 
template<class TypeVector >
bool IsMonotonic (const TypeVector &items, bool isAscending, bool allowEqual=false)
 Нормализован ли массив объектов по возрастанию или убыванию. Подробнее...
 
template<class Point , class Vector >
bool ArePointsOnLine (const SArray< Point > &pnts, double metricEps=METRIC_EPSILON)
 Лежат ли точки на линии. Подробнее...
 
template<class Point , class Vector >
bool ArePointsOnLine (const std::vector< Point > &pnts, double metricEps=METRIC_EPSILON)
 Лежат ли точки на линии. Подробнее...
 
template<class PointsVector >
bool IsPlanar (const PointsVector &pnts, MbPlacement3D *place, double mEps=METRIC_EPSILON)
 Лежит ли набор точек на плоскости. Подробнее...
 
template<class Point >
bool IsPlanar2 (const Array2< Point > &pnts, MbPlacement3D *place, double mEps=METRIC_EPSILON)
 Лежит ли набор точек на плоскости. Подробнее...
 
template<class DoubleVector >
void SetLimitParam (DoubleVector &tarr, double tmin, double tmax, double teps=Math::paramEpsilon)
 Установить область изменения параметра. Подробнее...
 
MbeConvResType ImportFromFile (MbModel &model, const path_string &fileName, IConvertorProperty3D *prop=0, IProgressIndicator *indicator=0)
 Прочитать файл обменного формата в модель. Подробнее...
 
MbeConvResType ImportFromFile (ItModelDocument &mDoc, const path_string &filePath, IConvertorProperty3D *prop, IProgressIndicator *indicator)
 Прочитать файл обменного формата в модель. Подробнее...
 
MbeConvResType ExportIntoFile (MbModel &model, const path_string &filePath, IConvertorProperty3D *prop=0, IProgressIndicator *indicator=0)
 Записать модель в файл обменного формата. Подробнее...
 
MbeConvResType ImportFromBuffer (MbModel &model, const char *data, size_t length, MbeModelExchangeFormat modelFormat, IConvertorProperty3D *prop=0, IProgressIndicator *indicator=0)
 Импортировать данные из буфера в модель. Подробнее...
 
MbeConvResType ExportIntoBuffer (MbModel &model, MbeModelExchangeFormat modelFormat, char *&data, size_t &length, IConvertorProperty3D *prop=0, IProgressIndicator *indicator=0)
 Экспортировать модель в буфер. Подробнее...
 
template<class Point >
bool EqualPoints (const Point &p1, const Point &p2, double eps)
 Проверить точки на равенство. Подробнее...
 
template<class Point >
bool EqualPoints (const Point &p1, const Point &p2, double xEpsilon, double yEpsilon)
 Проверить точки на равенство. Подробнее...
 
template<class Point >
bool EqualPoints (const Point &p1, const Point &p2, double xEpsilon, double yEpsilon, double zEpsilon)
 Проверить точки на равенство. Подробнее...
 
template<class Vector >
bool EqualVectors (const Vector &p1, const Vector &p2, double eps)
 Проверить векторы на равенство с заданной точностью. Подробнее...
 
template<class Vector >
bool EqualVectors (const Vector &p1, const Vector &p2, double xEpsilon, double yEpsilon)
 Проверить векторы на равенство с заданной точностью. Подробнее...
 
template<class Vector >
bool EqualVectors (const Vector &p1, const Vector &p2, double xEpsilon, double yEpsilon, double zEpsilon)
 Проверить векторы на равенство с заданной точностью. Подробнее...
 
template<class Matrix >
bool EqualMatrices (const Matrix &m1, const Matrix &m2, double accuracy)
 Сравнить матрицы. Подробнее...
 
template<class BBox >
bool EqualCubes (const BBox &c1, const BBox &c2, double eps)
 Проверка кубов на равенство с управляемой погрешностью. Подробнее...
 
void GetCosSin (const double &tt, double &cosT, double &sinT)
 Вычисление косинуса и синуса. Подробнее...
 
bool EqualLengths (double lx, double ly, double minLen=METRIC_EPSILON, double minDev=LENGTH_EPSILON)
 Проверить длины на равенство. Подробнее...
 
template<typename ParamContainer , typename PointContainer >
void SplitHomoVector (const SArray< MbHomogeneous > &hList, PointContainer &uvList, ParamContainer *tList=NULL)
 Разделение координат и весов. Подробнее...
 
MbVector Perpendicular (MbVector vec)
 Вектор, повернутый на pi/2 радиан против часовой стрелки.
 
bool IsNull (const MbVector &vec, double eps)
 Проверить на равенство нулю длину вектора с заданной точностью.
 
bool Nonzero (const MbVector3D &vec, double eps)
 Проверить, что вектор ненулевой с заданной точностью. Подробнее...
 
float D2F (double v)
 Конвертация числа из double в float с проверкой перед присваиванием.
 
c3d::t_ofstream & operator<< (c3d::t_ofstream &file, const IModelTreeNode &node)
 Операторы для записи дерева в xml формате. Подробнее...
 
c3d::t_ofstream & operator<< (c3d::t_ofstream &file, IModelTreeNode &node)
 Запись узла дерева в xml формате.
 
c3d::t_ofstream & operator<< (c3d::t_ofstream &file, const IModelTree &tree)
 Запись дерева в xml формате.
 
c3d::t_ofstream & operator<< (c3d::t_ofstream &file, IModelTree &tree)
 Запись дерева в xml формате.
 
size_t GetSubstantiveNodes (const c3d::IModelTreeNode *node, std::set< const c3d::IModelTreeNode *> &mnodes)
 Получить значимые узлы поддерева с указанным корнем (исключить узлы, которые добавлены для восстановления иерархии дерева). Возвращает количество значимых узлов.
 
ItemDataBaseCreateAttributeData (MbAttribute *attr)
 Создать объект пользовательских данных для атрибута. Возвращает NULL, если данный атрибут не поддерживается деревом модели.
 
 MTREE_ATTR_DATALESS_CLASS (ItemAttrVisual, idtAttrVisual)
 Объявление классов без данных для атрибутов.
 
readeroperator>> (reader &in, UserDataMap &itemmap)
 Чтение UserDataMap.
 
writeroperator<< (writer &out, const UserDataMap &itemmap)
 Запись UserDataMap.
 
size_t size_of (string_t s)
 Размер строки в памяти.

 
std::wstring StdToWString (const std::string &s)
 Функция преобразования мультибайтовой строки к строке с широким символом.

 
std::string WToStdString (const std::wstring &s)
 Функция преобразования строки с широким символом к мультибайтовой.

 
string_t ToC3Dstring (const std::string &s)
 Функция преобразования строки к формату C3D.

 
std::string ToSTDstring (const string_t &s)
 Функция преобразования строки к стандартной.

 
string_t ToC3Dstring (const std::wstring &s)
 Функция преобразования строки к формату C3D.
 
path_string WToPathstring (const std::wstring &s)
 Функция преобразования строки к стандратной для пути.
 
std::wstring ToWstring (const string_t &s)
 Функция преобразования строки к стандартной.
 
std::string PathToSTDstring (const path_string &s)
 Функция преобразования строки к стандартной.
 
string_t PathToC3Dstring (const path_string &s)
 Функция преобразования строки к стандартной.
 
path_string StdToPathstring (const std::string &s)
 Функция преобразования строки к стандартной.
 
path_string C3DToPathstring (const string_t &s)
 Функция преобразования строки к стандартной.
 
void ToLower (::std::string &v)
 Перевести символы в нижний регистр.
 
void ToLower (::std::wstring &v)
 Перевести символы в нижний регистр.
 
void EnableMemoryLeakDump ()
 Включить контроль утечек памяти. Подробнее...
 

Переменные

const size_t MATRIX_MAX_COUNT = 1000000000
 Максимальное количество элементов матрицы MxN.
 
const size_t ARRAY_MAX_COUNT = 1000000
 Максимальный размер массива.
 
const double METRIC_DELTA = 0.05
 Величина отшагивания.
 
const double PARAM_DELTA_MIN = 0.005
 Минимальная доля приращения параметра.
 
const double PARAM_DELTA_MAX = 1.0
 Максимальная доля приращения параметра.
 
const double MIN_LENGTH = 1.0E-4
 Минимальная длина объекта.
 
const double MAX_LENGTH = 5.0E+7
 Максимальная длина объекта.
 
const double MIN_RADIUS = 1.0E-4
 Минимальный радиус объекта.
 
const double MAX_RADIUS = 2.5E+7
 Максимальный радиус объекта.
 
const double DELTA_MIN = 1E-3
 Коэффициент уменьшения.
 
const double DELTA_MID = 1E-2
 Коэффициент уменьшения.
 
const double DELTA_MOD = 1E-1
 Коэффициент уменьшения.
 
const double DELTA_MAX = 1E+3
 Коэффициент увеличения.
 
const double POWER_1 = 1E+1
 Коэффициент увеличения.
 
const double POWER_2 = 1E+2
 Коэффициент увеличения.
 
const double POWER_3 = 1E+3
 Коэффициент увеличения.
 
const double POWER_4 = 1E+4
 Коэффициент увеличения.
 
const double POWER_5 = 1E+5
 Коэффициент увеличения.
 
const double ONE_THIRD = 0.33333333333333333333
 1/3.
 
const double TWO_THIRD = 0.66666666666666666666
 2/3.
 
const double ONE_SIXTH = 0.166666666666666666667
 1/6.
 
const double ONE_FIFTH = 0.2
 1/5.
 
const double TWO_FIFTH = 0.4
 2/5.
 
const double ONE_QUARTER = 0.25
 1/4.
 
const double ONE_EIGHTH = 0.125
 1/8.
 
const double ONE_HALF = 0.5
 1/2.
 
const double _CONIC_MIN_ = 0.05
 Минимальный коэффициент полноты сечения поверхности сопряжения (при 0.5 - парабола, меньше - эллипс).
 
const double _CONIC_MAX_ = 0.95
 Максимальный коэффициент полноты сечения поверхности сопряжения (при 0.5 - парабола, больше - гипербола).
 
const double _ARC_ = 0.0
 Коэффициент полноты сечения поверхности скругления при u = const соответствует дуге окружности.
 
const int32 TEN = 10
 Число 10.
 
const int32 TWENTY = 20
 Число 20.
 
const int32 TESSERA_MAX = 4000
 Максимальное количество ячеек в строке и ряду триангуляционной сетки.
 
const int32 COUNT_MAX = 512
 Коэффициент увеличения.
 
const int32 COUNT_MID = 256
 Коэффициент увеличения.
 
const int32 COUNT_MIN = 128
 Коэффициент увеличения.
 
const int32 COUNT_BIN = 64
 Уровень вложенности.
 
const int32 WIRE_MAX = 256
 Максимальное количество линий отрисовочной сетки.
 
const int32 ITERATE_COUNT = 16
 Число приближений в итерационном методе.
 
const int32 ITERATE_LIMIT = 32
 Количество итераций для построения касательных окружностей.
 
const int32 NEWTON_COUNT = 8
 Число приближений в итерационном методе.
 
const int32 NEWTON_COUNT_2X = 16
 Число приближений в итерационном методе.
 
const int32 NEWTON_COUNT_3X = 24
 Число приближений в итерационном методе.
 
const int32 NEWTON_COUNT_4X = 32
 Число приближений в итерационном методе.
 
const int32 NEWTON_COUNT_8X = 64
 Число приближений в итерационном методе.
 
const int32 LIMIT_COUNT = 4
 Число приближений в итерационном методе.
 
const int32 COUNT_DELTA = 10
 Коэффициент увеличения или уменьшения.
 
const int32 COUNT_DELTA_2X = 20
 Коэффициент увеличения или уменьшения.
 
const int32 ITEMS_COUNT = 12
 Число точек в шаговом методе.
 
const int32 BEZIER_DEGREE = 4
 Порядок Безье-сплайна по умолчанию.
 
const int32 NURBS_DEGREE = 4
 Порядок NURBS по умолчанию.
 
const int32 NURBS_POINTS_COUNT = 6
 Число точек для NURBS по умолчанию для прямого редактирования.
 
const int32 NURBS_POINTS_MAX_COUNT = 100
 Максимальное число точек для NURBS по умолчанию для прямого редактирования.
 
const int32 APPROX_POINTS_MUL_COEFF = 3
 Коэффициент увеличения количества точек для метода наименьших квадратов.
 
const int32 SPACE_DIM = 3
 Размерность 3D-пространства.
 
const int32 TRT_FREE = 0
 Сопряжение отсутствует.
 
const int32 TRT_TANGENT = 1
 Сопряжение по касательной.
 
const int32 TRT_NORMAL = 2
 Сопряжение по нормали.
 

Подробное описание

Объявление пространства имен C3D.

Перечисления

◆ eAssertViolationNotify

Элементы перечислений
avn_Mute 

Не сообщать о нарушении требований.

avn_CERR 

Выводить сообщение в поток ошибок.

avn_ASSERT 

Обработка макросом ASSERT.

Функции

◆ operator<<()

c3d::t_ofstream& c3d::operator<< ( c3d::t_ofstream &  file,
const IModelTreeNode node 
)

Операторы для записи дерева в xml формате.

Запись узла дерева в xml формате.