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

Классы

class  IStrData
 Данные о строке. Подробнее...
class  StrData< T >
 Конкретные данные о строке. Подробнее...
class  BaseStrVisitor
 Базовый класс для потокобезопасного посетителя, извлекающего строку. Подробнее...
class  IGetMsg
 Добытчик строки из данных о строке. Подробнее...
class  IProgressIndicator
 Интерфейс индикатора прогресса выполнения. Подробнее...
class  ProgressBarWrapper
 Обертка индикатора прогресса выполнения. Подробнее...
class  MatrixNN
 Квадратная матрица чисел N x N. Подробнее...
class  Math
 Общие статические данные алгоритмов и функций. Подробнее...
class  MtRefItem
 Базовый класс для объектов с подсчетом ссылок. Подробнее...
class  MbFlags
 Предоставляет общий интерфейс для работы с битовыми флагами. Подробнее...

Группы

 Трёхмерные базовые объекты
 Двумерные базовые объекты
 Строители
 Атрибуты
 Скалярные функции
 Параметры операций
 Свойства
 Структуры данных
 Разбор строки
 Имена
 Модель

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

enum  MbeFacePropagation {
  fp_None = 0, fp_All = 1, fp_SmoothlyJointedAlong = 2, fp_SmoothlyJointedOrtho = 3,
  fp_SmoothlyJointed = 4
}
 Перечисление способов захвата граней. Подробнее...
enum  MbResultType {
  rt_Success = 0, rt_Empty, rt_ToManyAxis, rt_ToFewAxis,
  rt_ToManyContours, rt_Stars, rt_SelfIntersection, rt_SelfIntWhenExtended,
  rt_Intersection, rt_NoIntersectSolid, rt_NoIntersectSection, rt_LibNotFound,
  rt_MustBeClosed, rt_MustBeOpen, rt_AxisIntersection, rt_DegenerateAxis,
  rt_MultiSolid, rt_CurveError, rt_ContourError, rt_SurfaceError,
  rt_SolidError, rt_ParameterError, rt_ThicknessError, rt_NoSequenceCurveAndSections,
  rt_SelfIntersect, rt_NoIntersect, rt_OffsetIntersectError, rt_BooleanError,
  rt_NoEdges, rt_PrepareError, rt_ChamferError, rt_FilletError,
  rt_PartlyChamfer, rt_PartlyFillet, rt_ChamferSurfaceError, rt_FilletSurfaceError,
  rt_TooLargeChamfer, rt_TooLargeFillet, rt_SemiChamfer, rt_SemiFillet,
  rt_CuttingError, rt_ThinError, rt_OffsetError, rt_FaceError,
  rt_RibError, rt_DraftError, rt_NoObjectForDirection, rt_AbsorptionSolid,
  rt_Error, rt_None, rt_Intersect, rt_InvalidType,
  rt_NoConvertTextToNurbs, rt_SplitWireNotSplitFace, rt_SplitWireNotIntersectFace, rt_MustBeOnlyOnePoint,
  rt_InvalidPoleUsage, rt_ThinWithPole, rt_TopologyError, rt_BeginOfInvalidRange,
  rt_ErBodyCloosed = rt_TopologyError + 2, rt_OneEdge = rt_ErBodyCloosed + 2, rt_SomeEdge = rt_OneEdge + 1, rt_NoSuitedSketch = rt_OneEdge,
  rt_SketchNoProj = rt_OneEdge + 1, rt_NoSheetFace = rt_OneEdge, rt_ErHeight = rt_OneEdge, rt_ErSketch = rt_ErHeight + 1,
  rt_UpdatePlaceWrong = rt_TopologyError + 2, rt_ErDegree = rt_TopologyError + 2, rt_EndOfInvalidRange = rt_BeginOfInvalidRange + 20, rt_NoObjectInDirNormal,
  rt_NoObjectInDirReverse, rt_SolidAffectedByBoolean, rt_HaveDegenerateSegment, rt_NotAllSourcesFound,
  rt_InvalidEmptyContour, rt_UnnecessaryVariables, rt_DomainMismatch, rt_UnknownTranslatorError,
  rt_UnknownParserError, rt_UnknownSymbol, rt_NoClosingBracket, rt_NoOpeningBracket,
  rt_ImpossibleOperation, rt_LostObject, rt_NotAllBendsProcessed, rt_ValueScalingError,
  rt_RatioScalingError, rt_MultiSolidDeflected, rt_MultiSolidDefused, rt_TransitionError,
  rt_MeshCrossingError, rt_ClosedError, rt_TooGreatCurve, rt_ClosedOrUnClosedError,
  rt_SketchNoSheet, rt_BadSketch, rt_ConnectionError, rt_MeshSmoothError,
  rt_NoIntersectContour, rt_ErShMtHeight, rt_DegenerateSurface, rt_SurfaceEdgesIntersect,
  rt_TooLargeExtension, rt_TooSmallExtension, rt_VertexExtensionError, rt_SurfaceExtensionError,
  rt_NoEdgesConection, rt_TooManyPoints, rt_TooManyPoints_1, rt_DirectionExtensionError,
  rt_ExtensionPoleError, rt_MustBeOpenOrClosed, rt_TooComplicatedItemsSet, rt_NoAxesIntersection,
  rt_TooFarItems, rt_ProcessIsStopped, rt_ContourSweptError, rt_SomeContourError,
  rt_SplitWireNotAllFaces, rt_GeneratrixColinearGuide, rt_NotEnoughMemory, rt_BorderColinearCurve,
  rt_ObjectNotFound, rt_PoleBrokenError, rt_ApproxError, rt_AccuracyError,
  rt_BadVariable, rt_BadEdgesForChamfer, rt_RevokeStopFillet, rt_AdjacentTransitionError,
  rt_ObjectAccessDenied, rt_TooManySegments, rt_GapShiftError, rt_CutBySilhouetteError,
  rt_DegeneratedProjection, rt_NotAllContoursUsed, rt_ChangedParameter, rt_ErrorTotal
}
 Код результата операции. Подробнее...

Функции

ProgressBarWrapperCreateProgressBarAddRef (IProgressIndicator *progInd, IStrData &msg)
 Создать индикатор прогресса.
ProgressBarWrapperCreateProgressBar (IProgressIndicator *progInd, IStrData &msg)
 Создать индикатор прогресса.
bool SetProgressBarName (ProgressBarWrapper *progBar, IStrData &msg)
 Установить имя прогресса.
bool SetProgressBarValue (ProgressBarWrapper *progBar, size_t v)
 Установить значение прогресса.
void FinishProgressBar (ProgressBarWrapper *progBar)
 Завершить индикатор прогресса.
bool StopProgressBar (ProgressBarWrapper *progBar)
 Удалить индикатор прогресса.
bool UseParentName (ProgressBarWrapper *progBar, bool useParentName)
 Использовать имя родителя для наследника.
bool IsParentNameUsed (const ProgressBarWrapper *progBar)
 Используется ли имя родителя для наследника.
template<class Type , class MatrixNN >
MbeNewtonResult TypedGaussEquation (MatrixNN &a, Type *b, double epsilon, ProgressBarWrapper *baseProgBar=NULL)
 Решение системы линейных уравнений методом исключения Гаусса.
template<class ArrayDouble , class ArrayType >
MbeNewtonResult TypedTridiagonalSolve (const size_t n, ArrayDouble &a, ArrayDouble &b, ArrayDouble &c, ArrayType &r, ArrayType &solution, double epsZero)
 Решение системы линейных уравнений с трехдиагональной матрицей методом прогонки.
static bool Math::NamesComplete ()
 Необходимо ли полное именование объекта.
static void Math::SetNamesComplete (bool b)
 Установить необходимость полного именования объекта.
static bool Math::Multithreaded ()
 Используются ли многопоточные вычисления?
static void Math::SetMultithreaded (bool b)
 Разрешить использовать многопоточные вычисления.
static MbeMultithreadedMode Math::MultithreadedMode ()
 Режим многопоточных вычислений
static bool Math::CheckMultithreadedMode (MbeMultithreadedMode)
 Проверить режим многопоточных вычислений
static void Math::SetMultithreadedMode (MbeMultithreadedMode)
 Установить режим многопоточных вычислений.

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

Перечисление способов захвата граней.

Внимание:
Идентификаторы не менять (пишутся в файл)!
Элементы перечислений:
fp_None 

Без захвата.

fp_All 

Захват всех граней.

fp_SmoothlyJointedAlong 

Прохождение по гладкостыкующимся граням через сонаправленные ребра (прямолинейные).

fp_SmoothlyJointedOrtho 

Прохождение по гладкостыкующимся граням через ортогональные ребра (прямолинейные.)

fp_SmoothlyJointed 

Прохождение по гладкостыкующимся граням через прямолинейные ребра.

Код результата операции.

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

Нормальная работа.

rt_Empty 

Пустой результат.

rt_ToManyAxis 

Слишком много осей.

rt_ToFewAxis 

Не хватает осей.

rt_ToManyContours 

Слишком много контуров.

rt_Stars 

Есть "звезда".

rt_SelfIntersection 

Самопересечение контура.

rt_SelfIntWhenExtended 

Самопересечение в продолжении контура.

rt_Intersection 

Пересечение контуров.

rt_NoIntersectSolid 

Образующий контур не пересекает тела.

rt_NoIntersectSection 

Образующий контур не пересекает сечения (для операции построения тела по сечениям).

rt_LibNotFound 

Фрагмент не найден в библиотеке.

rt_MustBeClosed 

Должен быть замкнут.

rt_MustBeOpen 

Должен быть разомкнут.

rt_AxisIntersection 

Пересечение с осью.

rt_DegenerateAxis 

Вырожденная ось.

rt_MultiSolid 

Тело состоит из отдельных частей.

rt_CurveError 

Ошибочная кривая.

rt_ContourError 

Ошибочный контур.

rt_SurfaceError 

Ошибочная поверхность.

rt_SolidError 

Ошибочное тело.

rt_ParameterError 

Ошибочный параметр.

rt_ThicknessError 

Неправильно задана толщина.

rt_NoSequenceCurveAndSections 

Не последовательное расположение сечений вдоль кривой (для операции построения тела по сечениям).

rt_SelfIntersect 

Объект самопересекается.

rt_NoIntersect 

Объекты не пересекаются.

rt_OffsetIntersectError 

Невозможно построить эквидистанту с данными параметрами.

rt_BooleanError 

Ошибка в булевой операции.

rt_NoEdges 

Ребра не найдены.

rt_PrepareError 

Ошибка при подготовке операции.

rt_ChamferError 

Ошибка при создании фаски ребра.

rt_FilletError 

Ошибка при создании скругления ребра.

rt_PartlyChamfer 

Созданы фаски не на всех ребрах.

rt_PartlyFillet 

Скруглены не все ребра.

rt_ChamferSurfaceError 

Ошибка при создании поверхности фаски ребра.

rt_FilletSurfaceError 

Ошибка при создании поверхности скругления ребра.

rt_TooLargeChamfer 

Слишком большие катеты фаски.

rt_TooLargeFillet 

Слишком большой радиус скругления.

rt_SemiChamfer 

Фаски построены не для всех ребер.

rt_SemiFillet 

Скруглены не все ребра.

rt_CuttingError 

Ошибка резки поверхностью.

rt_ThinError 

Ошибка при создании тонкостенного тела.

rt_OffsetError 

Слишком большая толщина стенки при создании тонкостенного тела.

rt_FaceError 

Ошибочная грань.

rt_RibError 

Неизвестная ошибка постановки ребра жесткости.

rt_DraftError 

Неизвестная ошибка уклона граней тела.

rt_NoObjectForDirection 

В выбранном направлении отсутствует поверхность.

rt_AbsorptionSolid 

Локальное тело поглощает результат.

rt_Error 

Неизвестная ошибка.

rt_None 

Нет сообщений.

rt_Intersect 

Объекты пересекаются.

rt_InvalidType 

Ненадлежащий тип кривой.

rt_NoConvertTextToNurbs 

Преобразование текста выполнить невозможно.

rt_SplitWireNotSplitFace 

Контур не разбивает ни одну из граней или совпадает с кромкой грани.

rt_SplitWireNotIntersectFace 

Контур не пересекает выбранное множество граней или совпадает с кромкой грани.

rt_MustBeOnlyOnePoint 

Для данной операции в эскизе должна быть только одна точка.

rt_InvalidPoleUsage 

Эскиз с одной точкой может использоваться только для крайнего сечения.

rt_ThinWithPole 

Построение тонкой стенки невозможно, если одно из сечений представляет собой точку.

rt_TopologyError 

Ошибочная топология.

rt_ErBodyCloosed 

Тело детали не определено.

rt_OneEdge 

У выбранного угла нет общего ребра.

rt_SomeEdge 

У одного из выбранных углов нет общего ребра.

rt_NoSuitedSketch 

Неподходящий эскиз для операции.

rt_SketchNoProj 

Эскиз не проецируется на базовую грань.

rt_ErHeight 

Полный размер высоты должен быть больше толщины листового материала.

rt_ErSketch 

Эскиз должен располагаться только на внешней или внутренней плоской грани листового тела.

rt_NoObjectInDirNormal 

Нет объекта в прямом направлении.

rt_NoObjectInDirReverse 

Нет объекта в обратном направлении.

rt_SolidAffectedByBoolean 

Тела изменены булевой операцией.

rt_HaveDegenerateSegment 

Кривая содержит сегменты нулевой длины.

rt_NotAllSourcesFound 

Не найдены одна или несколько исходных операций.

rt_InvalidEmptyContour 

Контур состоит из 2 отрезков, проходящих друг по другу.

rt_UnnecessaryVariables 

Избыточное количество переменных.

rt_DomainMismatch 

Область определения не соответствует заданным значениям.

rt_UnknownTranslatorError 

Неизвестная ошибка при работе транслятора.

rt_UnknownParserError 

Неизвестная ошибка при работе синтаксического анализатора.

rt_UnknownSymbol 

В строке присутствует неизвестный символ.

rt_NoClosingBracket 

Не хватает закрывающей скобки.

rt_NoOpeningBracket 

Не хватает открывающей скобки.

rt_ImpossibleOperation 

Невозможная операция.

rt_LostObject 

Операция потеряла опорные объекты.

rt_NotAllBendsProcessed 

Не все сгибы согнуты/разогнуты.

rt_ValueScalingError 

Масштабирование с заданным коэффициентом невозможно.

rt_RatioScalingError 

Масштабирование с заданным соотношением коэффициентов невозможно.

rt_MultiSolidDeflected 

Данная операция не применима к телам из частей.

rt_MultiSolidDefused 

Результатом данной операции не может быть тело из частей.

rt_TransitionError 

Перестало выполняться граничное условие сопряжения.

rt_MeshCrossingError 

Точки пересечения кривых не образуют регулярной сетки.

rt_ClosedError 

Нельзя выполнить замыкание.

rt_TooGreatCurve 

Кривая, через которую происходит сопряжение, больше, чем сама поверхность.

rt_ClosedOrUnClosedError 

Все кривые должны быть либо замкнуты, либо разомкнуты.

rt_SketchNoSheet 

Эскиз должен располагаться только на внешней или внутренней плоской грани листового тела.

rt_BadSketch 

Эскиз не удовлетворяет требованиям операции.

rt_ConnectionError 

Нарушена связность объектов.

rt_MeshSmoothError 

В точках пересечения кривые из противоположных семейств касаются.

rt_NoIntersectContour 

Нет контуров пересечения.

rt_ErShMtHeight 

Полный размер высоты должен быть больше толщины листового материала.

rt_DegenerateSurface 

Поверхность вырождена.

rt_SurfaceEdgesIntersect 

Невозможно создать поверхность: нарушен порядок внутренних ребер разбиения.

rt_TooLargeExtension 

Величина удлинения слишком велика.

rt_TooSmallExtension 

Величина удлинения слишком мала.

rt_VertexExtensionError 

Не удалось продлить поверхность до данной вершины.

rt_SurfaceExtensionError 

Не удалось продлить поверхность до данной поверхности.

rt_NoEdgesConection 

Ребра не образуют связную цепочку.

rt_TooManyPoints 

Большое количество точек. Уменьшите количество.

rt_TooManyPoints_1 

Слишком большое количество точек.

rt_DirectionExtensionError 

Не удалось продлить поверхность в данном направлении.

rt_ExtensionPoleError 

Грань содержит полюс: укажите другую кромку или выберите другой тип продления.

rt_MustBeOpenOrClosed 

Контуры должны быть либо все замкнуты, либо все разомкнуты.

rt_TooComplicatedItemsSet 

Слишком сложный набор элементов для обработки.

rt_NoAxesIntersection 

Оси не пересекаются.

rt_TooFarItems 

Объекты слишком далеко.

rt_ProcessIsStopped 

Процесс остановлен.

rt_ContourSweptError 

Контур невозможно использовать для заданного перемещения.

rt_SomeContourError 

Один из контуров невозможно использовать для заданного построения.

rt_SplitWireNotAllFaces 

Линии разъема созданы не на всех выбранных гранях.

rt_GeneratrixColinearGuide 

В некоторых точках образующая параллельна направляющей.

rt_NotEnoughMemory 

Недостаточно памяти.

rt_BorderColinearCurve 

Направление боковой границы параллельно касательной на конце образующей кривой.

rt_ObjectNotFound 

Объект не найден.

rt_PoleBrokenError 

В сплайновой поверхности часть точек из полюса передвинута, часть осталась совпадающей.

rt_ApproxError 

Аппроксимация не выполнена.

rt_AccuracyError 

Не выполнены условия по точности построения.

rt_BadVariable 

Ошибочное значение переменной.

rt_BadEdgesForChamfer 

Невозможно построить фаску на указанных ребрах.

rt_RevokeStopFillet 

Остановка скругления невозможна, скругление выполнено без остановки.

rt_AdjacentTransitionError 

Не согласованы сопряжения на смежных границах.

rt_ObjectAccessDenied 

Доступ к объекту запрещен.

rt_TooManySegments 

Количество сегментов слишком велико.

rt_GapShiftError 

Недопустимое положение зазора обечайки.

rt_CutBySilhouetteError 

Силуэтная грани линия не разрезает грань.

rt_DegeneratedProjection 

Вырожденная проекция опорного объекта.

rt_NotAllContoursUsed 

Использованы не все контура.

rt_ChangedParameter 

Параметр операции был изменен.


Функции

ProgressBarWrapper* CreateProgressBarAddRef ( IProgressIndicator progInd,
IStrData msg 
)
Аргументы:
[in]progInd- Интерфейс индикатора прогресса выполнения.
[in]msg- Данные о строке.
Возвращает:
Обертку индикатора прогресса выполнения.
ProgressBarWrapper* CreateProgressBar ( IProgressIndicator progInd,
IStrData msg 
)
Аргументы:
[in]progInd- Интерфейс индикатора прогресса выполнения.
[in]msg- Данные о строке.
Возвращает:
Обертку индикатора прогресса выполнения.
bool SetProgressBarName ( ProgressBarWrapper progBar,
IStrData msg 
) [inline]
Аргументы:
[in]progBar- Обертка индикатора прогресса выполнения.
[in]msg- Данные о строке.
Возвращает:
true, если progBar != NULL и удалось задать имя процесса.
bool SetProgressBarValue ( ProgressBarWrapper progBar,
size_t  v 
) [inline]

Установить значение прогресса.

Аргументы:
[in]progBar- Обертка индикатора прогресса выполнения.
[in]v- Значение прогресса.
Возвращает:
true, в случае успешного выполнение операции.
void FinishProgressBar ( ProgressBarWrapper progBar) [inline]

Либо индикатор останавливается, либо, если он уже дошел до 100%, выдается сообщение об этом.

Аргументы:
[in]progBar- Обертка индикатора прогресса выполнения.
bool StopProgressBar ( ProgressBarWrapper progBar) [inline]
Аргументы:
[in]progBar- Обертка индикатора прогресса выполнения.
Возвращает:
true, в случае успешного выполнение операции.
bool UseParentName ( ProgressBarWrapper progBar,
bool  useParentName 
) [inline]
Аргументы:
[in]progBar- Обертка индикатора прогресса выполнения.
[in]useParentName- Флаг использования имени родителя.
Возвращает:
true, если progBar != NULL.
bool IsParentNameUsed ( const ProgressBarWrapper progBar) [inline]
Аргументы:
[in]progBar- Обертка индикатора прогресса выполнения.
Возвращает:
true, если используется.
template<class Type , class MatrixNN >
MbeNewtonResult TypedGaussEquation ( MatrixNN a,
Type *  b,
double  epsilon,
ProgressBarWrapper baseProgBar = NULL 
)

Решение системы линейных уравнений методом исключения Гаусса.

Аргументы:
[in]a- Матрица коэффициентов при неизвестных
[in]b- Массив правых частей, в него же помещается результат решения
[in]epsilon- Погрешность решения
[in]baseProgBar- Индикатор процесса решения
Возвращает:
Код ошибки: если nr_Success (+1), то система решена, если nr_Special, то нет решений или система вырождена.
template<class ArrayDouble , class ArrayType >
MbeNewtonResult TypedTridiagonalSolve ( const size_t  n,
ArrayDouble &  a,
ArrayDouble &  b,
ArrayDouble &  c,
ArrayType &  r,
ArrayType &  solution,
double  epsZero 
)

Решение системы линейных уравнений с трехдиагональной матрицей методом прогонки. Используется для построения NURBS-копии незамкнутого кубического сплайна.

Аргументы:
[in]n- число неизвестных
[in]a- Главная диагональ трехдиагональной матрицы, массив double размерности n
[in]b- Верхняя диагональ, размерность n-1
[in]С- нижняя диагональ, размерность n-1
[in]r- Вектор правой части, массив точек или векторов размерности n; должна быть определена операция умножения на double справа
[in]solution- Массив решений (точек, векторов), размерности n
[in]epsZero- Погрешность нуля
Возвращает:
Код ошибки: если nr_Success (+1), то система решена, если nr_Special, то нет решений или система вырождена.
static bool Math::NamesComplete ( ) [static]

Необходимо ли полное именование объекта. Если возвращает true, то после после создания оболочки именуются грани, рёбра, вершины, если возвращает false, то после после создания оболочки именуются только грани.

static void Math::SetNamesComplete ( bool  b) [static]

Установить необходимость полного именования объекта. Если передано true, то после после создания оболочки будут именоваться грани, рёбра, вершины, если передано false, то после после создания оболочки будут именоваться только грани.

static bool Math::Multithreaded ( ) [static]

Используются ли многопоточные вычисления?

static void Math::SetMultithreaded ( bool  b) [static]

Разрешить использовать многопоточные вычисления.
Если передано true, то будут использоваться многопоточные вычисления. Устанавливается стандартный режим если передано false, то не будут использоваться многопоточные вычисления.

static MbeMultithreadedMode Math::MultithreadedMode ( ) [static]

Режим многопоточных вычислений

static bool Math::CheckMultithreadedMode ( MbeMultithreadedMode  ) [static]

Проверить режим многопоточных вычислений

static void Math::SetMultithreadedMode ( MbeMultithreadedMode  ) [static]

Установить режим многопоточных вычислений.

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