C3D Kernel  102057
Классы | Группы | Макросы | Определения типов | Перечисления | Функции | Переменные
Библиотека шаблонов и сериализации
Модуль геометрического моделирования
Граф связей класса Библиотека шаблонов и сериализации:

Классы

class  StrHash
 Хэш с типом строки. Подробнее...
class  MbAccurateTimer
class  MbAverageTimer
class  BalanceTreeNode< Type >
 Узел сбалансированного дерева. Подробнее...
class  BalanceTree< Type >
 Cбалансированное дерево. Подробнее...
class  BalanceTreeIterator< Type >
 Итератор сбалансированного дерева. Подробнее...
class  PriorityQueue< Index, Weight >
 Очередь с приоритетом с использованием кучи. Подробнее...
class  KdTree< Scalar >
 К-d дерево. Подробнее...
class  Visitor
 Абстрактный базовый класс посетителя. Подробнее...
class  VisitorImpl< T >
 Обобщенное объявление поддержки посещения объекта конкретным посетителем. Подробнее...
class  AuxiliaryData
 Родительский класс данных для менеджера параллельной обработки. Подробнее...
class  CommonMutex
 Управление блокировками. Подробнее...
class  CommonRecursiveMutex
 Обертка для вложенного OpenMP lock. Подробнее...
class  ScopedLock
 Блокировка в области видимости. Подробнее...
class  ScopedRecursiveLock
 Рекурсивная блокировка в области видимости. Подробнее...
class  MbSyncItem
 Базовый объект, предоставляющий средства синхронизации. Подробнее...
class  MbNestSyncItem
 Базовый объект синхронизации, поддерживающий множественные блокировки. Подробнее...
struct  IfProgressIndicator
 Индикатор прогресса выполнения. Подробнее...

Группы

 Контейнеры
 Автоматические указатели
 Работа со строками
 Работа с потоками

Макросы

#define GOLDENRATIO   0x9e3779b9
 Золотое сечение - произвольное число для хэш-функции.
#define NullStrHash   StrHash( 0, StrHash::htp_undef )
 Хэш пустой строки.
#define UndefStrHash   StrHash( -1, StrHash::htp_undef )
 Хэш при отсутствии строки.
#define PRECONDITION(expr)   ((void)0)
 Определение PRECONDITION.
#define CALL_DECLARATION
 Определение CALL_DECLARATION.
#define EXPORT_DECLARATION
 Определение EXPORT_DECLARATION.
#define OBVIOUS_PRIVATE_COPY(ClassName)
 Объявление оператора присваивания и конструктора копирования.
#define COUNTOF(array)   (sizeof(array)/sizeof(array[0]))
 Получить количество элементов массива.
#define MATH_CLASS
 Объявление экспортности или импортности классов.
#define MATH_5_11_R03_VERSION   0x0590005CL
 Версия файла - 5.11.
#define MATH_5_BC_VERSION   0x0590005FL
 Версия файла - 5.0.
#define MATH_6_0_VERSION   0x06000009L
 Версия файла - 6.0.
#define MATH_6_PLUS_VERSION   0x06000032L
 Версия файла - 6.1.
#define MATH_7_0_VERSION   0x07000005L
 Версия файла - 7.0.
#define MATH_7_PLUS_VERSION   0x0701012CL
 Версия файла - 7.1.
#define MATH_8_0_VERSION   0x0800001AL
 Версия файла - 8.0.
#define MATH_8_PLUS_VERSION   0x08000133L
 Версия файла - 8.1.
#define MATH_9_0_VERSION   0x09000005L
 Версия файла - 9.0.
#define MATH_9_SP1_VERSION   0x09000008L
 Версия файла - 9.1.
#define LAST_NOUNICODE_VERSION   0x0A000018L
 Версия файла - 10.0 NoUnicode.
#define UNICODE_VERSION   0x0A001000L
 Версия файла - 10.0 Unicode.
#define MATH_10_VERSION   0x0A001021L
 Версия файла - 10.0.
#define MATH_10_SP1_VERSION   0x0A001023L
 Версия файла - 10.1.
#define MATH_11_VERSION   0x0B000031L
 Версия файла - 11.0.
#define MATH_11_SP1_VERSION   0x0B000032L
 Версия файла - 11.1.
#define MATH_12_VERSION   0x0C00004DL
 Версия файла - 12.0.
#define MATH_12_SP1_VERSION   0x0C00004EL
 Версия файла - 12.1.
#define MATH_13_START_VERSION   0x0D000000L
 Версия файла - 13.0 (начало версии).
#define MATH_13_VERSION   0x0D000060L
 Версия файла - 13.0.
#define MATH_13_SP1_VERSION   0x0D001016L
 Версия файла - 13.1.
#define MATH_13_SP2_VERSION   0x0D002004L
 Версия файла - 13.2.
#define MATH_13_SP3_START_VERSION   0x0D003000L
 Версия файла - 13.3 (начало версии).
#define MATH_13_SP3_VERSION   0x0D003001L
 Версия файла - 13.3.
#define MATH_14_START_VERSION   0x0E000000L
 Версия файла - 14.0 (начало версии).
#define MATH_14_VERSION   0x0E000021L
 Версия файла - 14.0.
#define MATH_14_SP1_START_VERSION   0x0E001000L
 Версия файла - 14.1 (начало версии).
#define MATH_14_SP1_VERSION   0x0E001011L
 Версия файла - 14.1.
#define MATH_14_SP2_START_VERSION   0x0E002000L
 Версия файла - 14.2 (начало версии).
#define MATH_14_SP2_VERSION   0x0E002001L
 Версия файла - 14.2.
#define MATH_15_START_VERSION   0x0F000000L
 Версия файла - 15.0 (начало версии).
#define MATH_15_VERSION   0x0F000014L
 Версия файла - 15.0.
#define MATH_15_SP1_START_VERSION   0x0F001000L
 Версия файла - 15.1 (начало версии).
#define MATH_15_SP1_VERSION   0x0F001010L
 Версия файла - 15.1.
#define MATH_15_SP2_START_VERSION   0x0F002000L
 Версия файла - 15.2 (начало версии).
#define MATH_15_SP2_VERSION   0x0F002010L
 Версия файла - 15.2.
#define MATH_16_START_VERSION   0x10000000L
 Версия файла - 16.0 (начало версии).
#define C3D_16_VERSION   0x10000008L
 Версия файла - C3D 16.0.
#define MATH_16_VERSION   0x1000000DL
 Версия файла - 16.0.
#define MATH_16_SP1_START_VERSION   0x10001000L
 Версия файла - 16.1 (начало версии).
#define MATH_16_SP1_VERSION   0x10001002L
 Версия файла - 16.1.
#define MATH_17_START_VERSION   0x11000000L
 Версия файла - 17.0 (начало версии).
#define C3D_2016_VERSION   0x1100000FL
 Версия файла - C3D 2016.
#define MATH_17_VERSION   0x1100001FL
 Версия файла - 17.0.
#define C3D_2017_VERSION   MATH_17_VERSION
 Версия файла - C3D 2017.
#define MATH_17_SP1_VERSION   0x11001001L
 Версия файла - 17.1.
#define MATH_18_START_VERSION   0x12000000L
 Версия файла - 18.0 (начало версии).
#define C3D_DEBUG
#define VISITING_CLASS(Class)
 Реализация функции, инициирующей посещение объекта.

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

typedef uint32 SimpleName
 Определение простого имени.
typedef int8_t int8
typedef uint8_t uint8
typedef int16_t int16
typedef uint16_t uint16
typedef int32_t int32
typedef uint32_t uint32
typedef int64_t int64
typedef uint64_t uint64
typedef unsigned int uint
typedef uint32 VERSION
 Версия.

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

enum  DelType { defDelete, noDelete, Delete }
 Типы удаления элементов. Подробнее...
enum  ThreeStates { ts_negative = -1, ts_neutral = 0, ts_positive = 1 }
 Трехпозиционный флаг. Подробнее...

Функции

int SimpleNameCompare (const SimpleName &h1, const SimpleName &h2)
 Сравнить простые имена.
bool IsGood (const SimpleName &s)
 Проверить валидность простого имени.
SimpleName Hash32 (uint8 *k, size_t length, SimpleName _c=INIT_HASH32_VAL)
 Хэш-функция.
template<typename T >
SimpleName Hash32Ptr (T *k)
 Хэш указателя.
SimpleName HashStr (const c3d::string_t &str)
 Хэш строки.
SimpleName HashStr (const char *c_str)
 Хэш строки.
SimpleName HashStr (const wchar_t *w_str)
 Хэш строки.
SimpleName Hash32SN (SimpleName k1, SimpleName k2)
 Хэш двух простых имен.
bool IsVersion16bit (VERSION version)
 Является ли версия файла 16-битной.
bool IsVersion32bit (VERSION version)
 Является ли версия файла 32-битной.
bool IsVersion64bit (VERSION version)
 Является ли версия файла 64-битной.
VERSION GetCurrentMathFileVersion ()
 Текущая версия потока.
uint16 MkUint16 (uint8 lo, uint8 hi)
 Создать uint16 на основе двух uint8.
uint32 MkUint32 (uint16 lo, uint16 hi)
 Создать uint32 на основе двух uint16.
uint64 MkUint64 (uint32 lo, uint32 hi)
 Создать uint64 на основе двух uint32.
uint32 LoUint32 (uint64 u64)
 Выделить младшее слово uint32 из uint64.
int32 LoInt32 (uint64 u64)
 Выделить младшее слово int32 из int64.
uint32 HiUint32 (uint64 u64)
 Выделить старшее слово uint32 из uint64.
int32 HiInt32 (uint64 u64)
 Выделить старшее слово int32 из int64.
uint16 LoUint16 (uint32 u32)
 Выделить младшее слово uint16 из uint32.
int16 LoInt16 (uint32 u32)
 Выделить младшее слово int16 из uint32.
uint16 HiUint16 (uint32 u32)
 Выделить старшее слово uint16 из uint32.
int16 HiInt16 (uint32 u32)
 Выделить старшее слово int16 из uint32.
uint8 LoUint8 (uint16 u16)
 Выделить младшее слово uint8 из uint16.
int8 LoInt8 (uint16 u16)
 Выделить младшее слово int8 из uint16.
uint8 HiUint8 (uint16 u16)
 Выделить старшее слово uint8 из uint16.
int8 HiInt8 (uint16 u16)
 Выделить младшее старгее int8 из uint16.
template<class SignedType >
SignedType abs_t (const SignedType x)
 Модуль числа.
void EnableMathModules (const char *name, int nameLength, const char *key, int keyLength)
 Включить модули ядра.
bool VerifyLicenseKey (const char *name, const char *key, const char *pub_key)
bool IsMathModelerEnable ()
bool IsMathConverterEnable ()
bool IsMathSolverEnable ()
bool IsMathVisionEnable ()
void FreeMathModulesChecker ()

Переменные

const SimpleName SIMPLENAME_MAX = SYS_MAX_UINT32
 Максимально допустимое простое имя.
const SimpleName UNDEFINED_SNAME = SYS_MAX_UINT32
 Значение используемое, в качестве "неопределенного", еще не назначенного имени.
const SimpleName INIT_HASH32_VAL = 31415926
 Начальное число для хэш-функции.
const uint SYS_MAX_UINT = 0xffffffff
 Максимальное значение uint.
const size_t SYS_MAX_T = 0xffffffff
 Максимальное значение size_t.
const ptrdiff_t SYS_MAX_ST = 0x7fffffff
 Максимальное значение ptrdiff_t.
const ptrdiff_t SYS_MIN_ST = 0x80000000
 Минимальное значение ptrdiff_t.
const uint8 SYS_MAX_UINT8 = 0xFF
 Максимальное значение uint8.
const uint16 SYS_MAX_UINT16 = 0xFFFF
 Максимальное значение uint16.
const uint32 SYS_MAX_UINT32 = 0xFFFFFFFF
 Максимальное значение uint32.
const uint64 SYS_MAX_UINT64 = 0xFFFFFFFFFFFFFFFF
 Максимальное значение uint64.
const int16 SYS_MAX_INT16 = 0x7FFF
 Максимальное значение int16.
const int32 SYS_MAX_INT32 = 0x7FFFFFFF
 Максимальное значение int32.
const int64 SYS_MAX_INT64 = 0x7FFFFFFFFFFFFFFF
 Максимальное значение int64.
const int16 SYS_MIN_INT16 = (int16)(uint16)0x8000
 Минимальное значение int16.
const int32 SYS_MIN_INT32 = (int32)(uint32)0x80000000
 Минимальное значение int32.
const int64 SYS_MIN_INT64 = (int64)(uint64)0x8000000000000000
 Минимальное значение int64.
const size_t NSIZE = SYS_MAX_T
 Неопределенный размер.
const uint NPOS32 = (uint)SYS_MAX_UINT32
 Неопределенная позиция (для 32 битных данных).
const size_t SIZE_OF_POINTER = sizeof(char *)
 Размер указателя в байтах.

Макросы

#define NullStrHash   StrHash( 0, StrHash::htp_undef )

Хэш пустой строки.

#define UndefStrHash   StrHash( -1, StrHash::htp_undef )

Хэш при отсутствии строки.

#define CALL_DECLARATION

Определение CALL_DECLARATION.

#define EXPORT_DECLARATION

Определение EXPORT_DECLARATION.

#define OBVIOUS_PRIVATE_COPY (   ClassName)
Макроопределение:
private:                                        \
  ClassName & operator = ( const ClassName & ); \
  ClassName( const ClassName & );

Объявление приватных оператора присваивания и конструктора копирования. Используется для запрета неявной реализации этой функциональности, т.к. при отсутствии в классах явного дублирующего конструктора и оператора присваивания автоматически генерируются неявные - в основном, через копирование памяти, что может привести к некорректному поведению системы.

#define MATH_CLASS

Объявление экспортности в данном модуле или импортности в других подключаемых модулях.

#define VISITING_CLASS (   Class)
Макроопределение:
public:                                                                             \
    virtual void Accept( Visitor & visitor )                                          \
    {                                                                                 \
      VisitorImpl<Class> * impl = dynamic_cast<VisitorImpl<Class> *>(&visitor);       \
      if( impl )                                                                      \
        impl->Visit( *this );                                                         \
    }

Реализация функции, инициирующей посещение объекта.
Сделана через динамическое приведение типов ради реализации асимметричного посетителя (см. Александреску "Modern C++ Design"). Необходимо объявлять в любом классе, поддерживающем посещение.


Типы

typedef uint32 SimpleName

Определение простого имени.


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

enum DelType

Типы удаления элементов при удалении из массива.

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

Удалять объект по умолчанию.

noDelete 

Не удалять объект.

Delete 

Удалять объект.

Флаг из трех состояний.

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

Состояние НЕТ.

ts_neutral 

Состояние НЕ ИЗВЕСТНО.

ts_positive 

Состояние ДА.


Функции

SimpleName Hash32 ( uint8 *  k,
size_t  length,
SimpleName  _c = INIT_HASH32_VAL 
) [inline]

Хэш по последовательности байти и предыдущему хэшу.
Каждый бит k влияет на возвращаемое значение.
Функция плохо подходит для использования в криптографии.
k - Указатель на начало последовательности байт.
length - Количество байт в последовательности.
_c - Предыдущий hash или произвольное значение.

Возвращает:
Возвращает 32-битное число.
template<typename T >
SimpleName Hash32Ptr ( T *  k)

Хэш указателя.

SimpleName HashStr ( const c3d::string_t str) [inline]

Хэш строки.

SimpleName HashStr ( const char *  c_str) [inline]

Хэш строки.

SimpleName HashStr ( const wchar_t *  w_str) [inline]

Хэш строки.

SimpleName Hash32SN ( SimpleName  k1,
SimpleName  k2 
) [inline]

Хэш двух простых имен.
Часто встречающаяся комбинация - hash от двух SimpleName (uint32).

template<class SignedType >
SignedType abs_t ( const SignedType  x)

Модуль числа.

void EnableMathModules ( const char *  name,
int  nameLength,
const char *  key,
int  keyLength 
)

Включить соответствующие модули ядра.

bool VerifyLicenseKey ( const char *  name,
const char *  key,
const char *  pub_key 
)

Проверить ключ активации на валидность.

bool IsMathModelerEnable ( )

Проверить контроллер защиты моделировщика.

bool IsMathConverterEnable ( )

Проверить контроллер защиты конвертеров.

bool IsMathSolverEnable ( )

Проверить контроллер защиты решателя.

bool IsMathVisionEnable ( )

Проверить контроллер защиты визуализатора.

void FreeMathModulesChecker ( )

Отпустить контролера работы модулей ядра.


Переменные

const size_t SIZE_OF_POINTER = sizeof(char *)

Размер указателя в байтах.

 Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Друзья Макросы