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

Классы

class  MbSpine
 Криволинейная направляющая для кинематической поверхности. Подробнее...
struct  SpineData
 Направляющая кривая и её окружение. Подробнее...

Функции

MbResultType OctaLattice (const MbCartPoint3D &point_0, const MbCartPoint3D &point_1, const MbCartPoint3D &point_2, double xRadius, double yRadius, double zRadius, size_t xCount, size_t yCount, size_t zCount, const MbSNameMaker &names, MbSolid *&result)
 Создать решетчатую оболочку.
MbResultType ElementarySurface (const MbCartPoint3D &point0, const MbCartPoint3D &point1, const MbCartPoint3D &point2, MbeSpaceType surfaceType, MbSurface *&result)
 Создать элементарную поверхность.
MbResultType SplineSurface (const MbCartPoint3D &pUMinVMin, const MbCartPoint3D &pUMaxVMin, const MbCartPoint3D &pUMaxVMax, const MbCartPoint3D &pUMinVMax, size_t uCount, size_t vCount, size_t uDegree, size_t vDegree, MbSurface *&result)
 Создать плоскую NURBS - поверхность.
MbResultType SplineSurface (const SArray< MbCartPoint3D > &pointList, const SArray< double > &weightList, size_t uCount, size_t vCount, size_t uDegree, const SArray< double > &uKnotList, bool uClosed, size_t vDegree, const SArray< double > &vKnotList, bool vClosed, MbSurface *&result)
 Создать NURBS - поверхность.
MbResultType ExtrusionSurface (MbCurve3D &curve, const MbVector3D &direction, bool simplify, MbSurface *&result)
 Создать поверхность выдавливания.
MbResultType RevolutionSurface (MbCurve3D &curve, const MbCartPoint3D &origin, const MbVector3D &axis, double angle, bool simplify, MbSurface *&result)
 Создать поверхность вращения.
MbResultType ExpansionSurface (MbCurve3D &curve, MbCurve3D &spine, MbCurve3D *curve1, MbSurface *&result)
 Создать поверхность движения.
MbResultType EvolutionSurface (MbCurve3D &curve, MbCurve3D &spine, MbSurface *&result)
 Создать кинематическую поверхность.
MbResultType SpiralSurface (MbCurve3D &curve, const MbCartPoint3D &p0, const MbCartPoint3D &p1, const MbCartPoint3D &p2, double step, MbSurface *&result)
 Создать спиральную поверхность.
MbResultType SectorSurface (MbCurve3D &curve, const MbCartPoint3D &point, MbSurface *&result)
 Создать секториальную поверхность.
MbResultType RuledSurface (MbCurve3D &curve1, MbCurve3D &curve2, bool simplify, MbSurface *&result)
 Создать линейчатую поверхность.
MbResultType CornerSurface (MbCurve3D &curve1, MbCurve3D &curve2, MbCurve3D &curve3, MbSurface *&result)
 Создать треугольную поверхность.
MbResultType CoverSurface (MbCurve3D &curve1, MbCurve3D &curve2, MbCurve3D &curve3, MbCurve3D &curve4, MbSurface *&result)
 Создать билинейную поверхность.
MbResultType LoftedSurface (const RPArray< MbCurve3D > &curveList, bool closed, const MbVector3D &begDirection, const MbVector3D &endDirection, MbSurface *&result)
 Создать поверхность по семейству кривых.
MbResultType LoftedSurface (const RPArray< MbCurve3D > &curveList, MbCurve3D &spine, MbSurface *&result, bool isSimToEvol=true)
 Создать поверхность по семейству кривых и направляющей.
MbResultType MeshSurface (const RPArray< MbCurve3D > &uCurveList, const RPArray< MbCurve3D > &vCurveList, MbSurface *&result)
 Создать поверхность на сетке кривых.
MbResultType OffsetSurface (MbSurface &surface, double distance, MbSurface *&result)
 Создать эквидистантную поверхность.
MbResultType DeformedSurface (MbSurface &surface, size_t uCount, size_t vCount, size_t uDegree, size_t vDegree, double dist, MbSurface *&result)
 Создать деформированную поверхность.
MbResultType ExtendedSurface (MbSurface &surface, double uMin, double uMax, double vMin, double vMax, MbSurface *&result)
 Создать продленную поверхность.
MbResultType BoundedSurface (MbSurface &surface, const RPArray< MbCurve > &boundList, MbSurface *&result)
 Создать поверхность с заданной границей.
MbResultType NurbsSurface (const MbSurface &surf, VERSION version, MbSurface *&resSurface)
 Создать NURBS копию поверхности, ограниченную двумерными границами.
MbResultType SimplexSplineSurface (SArray< MbCartPoint3D > &pList, MbSurface *&resSurface)
 Создать поверхность симплексного сплайна.
MbResultType TriBezierSurface (ptrdiff_t k, MbCartPoint3D &p1, MbCartPoint3D &p2, MbCartPoint3D &p3, MbSurface *&resSurface)
 Создать треугольную поверхность Безье.
MbResultType TriSplineSurface (const MbCartPoint3D &p0, const MbCartPoint3D &p1, const MbCartPoint3D &p2, const MbCartPoint3D &p3, ptrdiff_t d, ptrdiff_t count, MbSurface *&resSurface)
 Создать треугольную В-сплайн поверхность.
MbResultType GridSurface (MbGrid &grid, MbSurface *&result)
 Создание поверхности на сетке точек.
MbResultType MiddlePlaces (const MbCurve3D &curve1, const MbCurve3D &curve2, std::vector< MbPlacement3D > &places)
 Создать средние плоскости.
MbSurfaceCreateEvolutionSurface (const MbCurve3D &curve, const MbSpine &spine, bool samec)
 Создать кинематическую поверхность.
MbSurfaceCreateEvolutionSurface (const MbCurve3D &curve, const MbCurve3D &spine, bool samec, bool sames)
 Создать кинематическую поверхность.
MbSurfaceCreatePipeSurface (const MbCurve3D &curve, const MbCurve3D &spine, const MbCurve3D &spineDirection, bool samec, bool sames, bool samed)
 Создать кинематическую поверхность.

Функции

MbResultType OctaLattice ( const MbCartPoint3D point_0,
const MbCartPoint3D point_1,
const MbCartPoint3D point_2,
double  xRadius,
double  yRadius,
double  zRadius,
size_t  xCount,
size_t  yCount,
size_t  zCount,
const MbSNameMaker names,
MbSolid *&  result 
)

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

Аргументы:
[in]point0- Точка, определяющая начало локальной системы координат поверхности.
[in]point1- Точка, определяющая направление оси X локальной системы и размер элемента.
[in]point2- Точка, определяющая направление оси Y локальной системы.
[in]xRadius- Шаг вдоль первой оси локальной системы координат.
[in]yRadius- Шаг вдоль второй оси локальной системы координат.
[in]zRadius- Шаг вдоль третьей оси локальной системы координат.
[in]xCount- Количество ячеек вдоль первой оси локальной системы координат.
[in]yCount- Количество ячеек вдоль второй оси локальной системы координат.
[in]zCount- Количество ячеек вдоль третьей оси локальной системы координат.
[out]result- Построенная тело.
Возвращает:
Возвращает код результата операции.
MbResultType ElementarySurface ( const MbCartPoint3D point0,
const MbCartPoint3D point1,
const MbCartPoint3D point2,
MbeSpaceType  surfaceType,
MbSurface *&  result 
)

Создать одну из элементарных поверхностей по трем управляющим точкам и типу:
surfaceType == st_Plane - плоскость
surfaceType == st_ConeSurface - коническая поверхность
surfaceType == st_CylinderSurface - цилиндрическая поверхность
surfaceType == st_SphereSurface - сферическая поверхность
surfaceType == st_TorusSurface - поверхность тора

Аргументы:
[in]point0- Точка, определяющая начало локальной системы координат поверхности.
[in]point1- Точка, определяющая направление оси X локальной системы и радиус поверхности.
[in]point2- Точка, определяющая направление оси Y локальной системы.
[in]surfaceType- Тип поверхности.
[out]result- Построенная поверхность.
Возвращает:
Возвращает код результата операции.
MbResultType SplineSurface ( const MbCartPoint3D pUMinVMin,
const MbCartPoint3D pUMaxVMin,
const MbCartPoint3D pUMaxVMax,
const MbCartPoint3D pUMinVMax,
size_t  uCount,
size_t  vCount,
size_t  uDegree,
size_t  vDegree,
MbSurface *&  result 
)

Создать плоскую NURBS - поверхность по угловым точкам.

Аргументы:
[in]pUMinVMin- Угловая точка поверхности.
[in]pUMaxVMin- Угловая точка поверхности.
[in]pUMaxVMax- Угловая точка поверхности.
[in]pUMinVMax- Угловая точка поверхности.
[in]uCount- Количество точек по U.
[in]vCount- Количество точек по V.
[in]uDegree- Порядок сплайнов по U.
[in]vDegree- Порядок сплайнов по V.
[out]result- Cплайновая поверхность.
Возвращает:
Возвращает код результата операции.
MbResultType SplineSurface ( const SArray< MbCartPoint3D > &  pointList,
const SArray< double > &  weightList,
size_t  uCount,
size_t  vCount,
size_t  uDegree,
const SArray< double > &  uKnotList,
bool  uClosed,
size_t  vDegree,
const SArray< double > &  vKnotList,
bool  vClosed,
MbSurface *&  result 
)

Создать NURBS - поверхность по массивам точек и весов.
контейнер weightList может быть пустым.
контейнер uKnotList может быть пустым.
контейнер vKnotList может быть пустым.

Аргументы:
[in]pointList- Множество точек.
[in]weightList- Множество весов
[in]uCount- Размерность массива точек по U.
[in]vCount- Размерность массива точек по V.
[in]uDegree- Порядок сплайнов по U.
[in]uKnotList- Узловой вектор по U.
[in]uClosed- Замкнутость по U.
[in]vDegree- Порядок сплайнов по V.
[in]vKnotList- Узловой вектор по V.
[in]vClosed- Замкнутость по V.
[out]result- Cплайновая поверхность.
Возвращает:
Возвращает код результата операции.
MbResultType ExtrusionSurface ( MbCurve3D curve,
const MbVector3D direction,
bool  simplify,
MbSurface *&  result 
)

Создать поверхность выдавливания кривой.

Аргументы:
[in]curve- Образующая кривая.
[in]direction- Вектор выдавливания.
[in]simplify- Упрощать поверхность, если возможно.
[out]result- Поверхность выдавливания.
Возвращает:
Возвращает код результата операции.
MbResultType RevolutionSurface ( MbCurve3D curve,
const MbCartPoint3D origin,
const MbVector3D axis,
double  angle,
bool  simplify,
MbSurface *&  result 
)

Создать поверхность вращения кривой.

Аргументы:
[in]curve- Образующая кривая.
[in]origin- Точка положения оси вращения.
[in]axis- Направление оси вращения.
[in]angle- Угол вращения.
[in]simplify- Упрощать поверхность, если возможно.
[out]result- Поверхность вращения.
Возвращает:
Возвращает код результата операции.
MbResultType ExpansionSurface ( MbCurve3D curve,
MbCurve3D spine,
MbCurve3D curve1,
MbSurface *&  result 
)

Создать поверхность движения кривой.

Аргументы:
[in]curve- Образующая кривая.
[in]spine- Направляющая кривая.
[out]result- Поверхность движения с доворотами.
Возвращает:
Возвращает код результата операции.
MbResultType EvolutionSurface ( MbCurve3D curve,
MbCurve3D spine,
MbSurface *&  result 
)

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

Аргументы:
[in]curve- Образующая кривая.
[in]spine- Направляющая кривая.
[out]result- Кинематическая поверхность или спиральная поверхность.
Возвращает:
Возвращает код результата операции.
MbResultType SpiralSurface ( MbCurve3D curve,
const MbCartPoint3D p0,
const MbCartPoint3D p1,
const MbCartPoint3D p2,
double  step,
MbSurface *&  result 
)

Создать спиральную поверхность по образующей и 3 точкам.

Аргументы:
[in]curve- Образующая кривая спирали.
[in]p0- Начало локальной системы координат (ЛСК).
[in]p1- Точка для формирования оси Z ЛСК.
[in]p2- Точка для формирования оси X ЛСК.
[in]step- Шаг спирали.
[out]result- Спиральная поверхность.
Возвращает:
Возвращает код результата операции.
MbResultType SectorSurface ( MbCurve3D curve,
const MbCartPoint3D point,
MbSurface *&  result 
)

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

Аргументы:
[in]curve- Образующая кривая.
[in]point- Точка.
[out]result- Линейчатая поверхность в виде сектора.
Возвращает:
Возвращает код результата операции.
MbResultType RuledSurface ( MbCurve3D curve1,
MbCurve3D curve2,
bool  simplify,
MbSurface *&  result 
)

Создать линейчатую поверхность по двум кривым.

Аргументы:
[in]curve1- Первая образующая кривая.
[in]curve2- Вторая образующая кривая.
[in]simplify- Упрощать поверхность, если возможно.
[out]result- Линейчатая поверхность.
Возвращает:
Возвращает код результата операции.
MbResultType CornerSurface ( MbCurve3D curve1,
MbCurve3D curve2,
MbCurve3D curve3,
MbSurface *&  result 
)

Создать треугольную поверхность по трем кривым.

Аргументы:
[in]curve1- Первая кривая.
[in]curve2- Вторая кривая.
[in]curve3- Третья кривая.
[out]result- Треугольная поверхность по трём кривым.
Возвращает:
Возвращает код результата операции.
MbResultType CoverSurface ( MbCurve3D curve1,
MbCurve3D curve2,
MbCurve3D curve3,
MbCurve3D curve4,
MbSurface *&  result 
)

Создать билинейную поверхность по четырем кривым.

Аргументы:
[in]curve1- Первая кривая.
[in]curve2- Вторая кривая.
[in]curve3- Третья кривая.
[in]curve4- Четвертая кривая.
[out]result- Билинейная поверхность по четырём кривым.
Возвращает:
Возвращает код результата операции.
MbResultType LoftedSurface ( const RPArray< MbCurve3D > &  curveList,
bool  closed,
const MbVector3D begDirection,
const MbVector3D endDirection,
MbSurface *&  result 
)

Создать поверхность по семейству кривых.
begDirection направление в начале поверхности может быть нулевой длины.
endDirection направление в конце поверхности может быть нулевой длины.

Аргументы:
[in]curveList- Семейство образующих кривых вдоль U-направления.
[in]closed- Замкнутость вдоль V-направления.
[in]begDirection- Вектор направления в начале поверхности.
[in]endDirection- Вектор направления в конце поверхности.
[out]result- Поверхность по семейству кривых.
Возвращает:
Возвращает код результата операции.
MbResultType LoftedSurface ( const RPArray< MbCurve3D > &  curveList,
MbCurve3D spine,
MbSurface *&  result,
bool  isSimToEvol = true 
)

Создать поверхность по семейству кривых и направляющей.

Аргументы:
[in]curveList- Семейство образующих кривых вдоль U-направления.
[in]spine- Направляющая кривая.
[out]result- Поверхность по семейству кривых и направляющей.
Возвращает:
Возвращает код результата операции.
MbResultType MeshSurface ( const RPArray< MbCurve3D > &  uCurveList,
const RPArray< MbCurve3D > &  vCurveList,
MbSurface *&  result 
)

Создать поверхность на сетке кривых по двум семействам кривых.

Аргументы:
[in]uCurveList- Семейство кривых вдоль U-направления.
[in]vCurveList- Семейство кривых вдоль V-направления.
[out]result- Поверхность на сетке кривых.
Возвращает:
Возвращает код результата операции.
MbResultType OffsetSurface ( MbSurface surface,
double  distance,
MbSurface *&  result 
)

Создать эквидистантную поверхность к исходной поверхности.

Аргументы:
[in]surface- Исходная поверхность.
[in]distance- Величина эквидистанты (знаковая).
Возвращает:
Возвращает код результата операции.
Аргументы:
[out]result- Эквидистантная поверхность.
MbResultType DeformedSurface ( MbSurface surface,
size_t  uCount,
size_t  vCount,
size_t  uDegree,
size_t  vDegree,
double  dist,
MbSurface *&  result 
)

Создать деформированную поверхность по исходной поверхности.

Аргументы:
[in]surface- Исходная поверхность.
[in]uCount- Количество точек по U.
[in]vCount- Количество точек по V.
[in]uDegree- Порядок сплайнов по U.
[in]vDegree- Порядок сплайнов по V.
[in]dist- Величина сдвига вдоль нормали.
[out]result- Деформированная поверхность.
Возвращает:
Возвращает код результата операции.
MbResultType ExtendedSurface ( MbSurface surface,
double  uMin,
double  uMax,
double  vMin,
double  vMax,
MbSurface *&  result 
)

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

Аргументы:
[in]surface- Исходная поверхность.
[in]uMin- Минимальное значение по U.
[in]uMax- Максимальное значение по U.
[in]vMin- Минимальное значение по V.
[in]vMax- Максимальное значение по V.
[out]result- Продлённая поверхность.
Возвращает:
Возвращает код результата операции.
MbResultType BoundedSurface ( MbSurface surface,
const RPArray< MbCurve > &  boundList,
MbSurface *&  result 
)

Создать поверхность с заданной границей по массиву двумерных кривых.
контейнер boundList может быть пустым.

Аргументы:
[in]surface- Исходная поверхность.
[in]boundList- Множество двумерных границ в виде кривых (первая кривая - внешний контур).
[out]result- Поверхность, ограниченная кривыми.
Возвращает:
Возвращает код результата операции.
MbResultType NurbsSurface ( const MbSurface surf,
VERSION  version,
MbSurface *&  resSurface 
)

Создать NURBS копию поверхности, ограниченную двумерными границами проецированием пространственных границ
(предполагается, что пространственные граничные кривые лежат на поверхности).

Аргументы:
[in]surf- Исходная поверхность.
[in]version- Версия исполнения.
[out]resSurface- Сплайновая поверхность (ограниченная кривыми).
Возвращает:
Возвращает код результата операции.
MbResultType SimplexSplineSurface ( SArray< MbCartPoint3D > &  pList,
MbSurface *&  resSurface 
)

Создать поверхность симплексного сплайна по массиву вершин.

Аргументы:
[in]pList- Множество вершин.
[out]resSurface- Поверхность симплексного сплайна.
Возвращает:
Возвращает код результата операции.
MbResultType TriBezierSurface ( ptrdiff_t  k,
MbCartPoint3D p1,
MbCartPoint3D p2,
MbCartPoint3D p3,
MbSurface *&  resSurface 
)

Создать треугольную поверхность Безье по 3 точкам.

Аргументы:
[in]k- Порядок поверхности.
[in]p1- Первая точка.
[in]p2- Вторая точка.
[in]p3- Третья точка.
[out]resSurface- Треугольная поверхность Безье.
Возвращает:
Возвращает код результата операции.
MbResultType TriSplineSurface ( const MbCartPoint3D p0,
const MbCartPoint3D p1,
const MbCartPoint3D p2,
const MbCartPoint3D p3,
ptrdiff_t  d,
ptrdiff_t  count,
MbSurface *&  resSurface 
)

Создать треугольную В-сплайн поверхность по 3 точкам.

Аргументы:
[in]p0- Первая точка.
[in]p1- Вторая точка.
[in]p2- Третья точка.
[in]d- Порядок поверхности.
[out]resSurface- Треугольная В-сплайн поверхность.
Возвращает:
Возвращает код результата операции.
MbResultType GridSurface ( MbGrid grid,
MbSurface *&  result 
)

Создание поверхности на сетке точек и триангуляции.
Множество треугольников должен представлять собой правильную триангуляцию.

Аргументы:
[in]grid- Триангуляция.
[out]result- Поверхность на сетке точек.
Возвращает:
Возвращает код результата операции.
MbResultType MiddlePlaces ( const MbCurve3D curve1,
const MbCurve3D curve2,
std::vector< MbPlacement3D > &  places 
)

Создать средние плоскости по двум кривым.

Аргументы:
[in]curve1- Первая кривая.
[in]curve2- Вторая кривая.
[out]places- Набор систем координат, задающих плоскости.
Возвращает:
Возвращает код результата операции.
Предупреждения:
В разработке.
MbSurface& CreateEvolutionSurface ( const MbCurve3D curve,
const MbSpine spine,
bool  samec 
)

Создать кинематическую поверхность.

Аргументы:
[in]curve- Образующая кривая
[in]spine- Направляющая кривая
[in]samec- Признак использования оригинала образующей кривой, а не копии
MbSurface& CreateEvolutionSurface ( const MbCurve3D curve,
const MbCurve3D spine,
bool  samec,
bool  sames 
)

Создать кинематическую поверхность.

Аргументы:
[in]curve- Образующая кривая
[in]spine- Направляющая кривая
[in]samec- Признак использования оригинала образующей кривой, а не копии
[in]sames- Признак использования оригинала направляющей кривой, а не копии
MbSurface& CreatePipeSurface ( const MbCurve3D curve,
const MbCurve3D spine,
const MbCurve3D spineDirection,
bool  samec,
bool  sames,
bool  samed 
)

Создать кинематическую поверхность.

Аргументы:
[in]curve- Образующая кривая
[in]spine- Направляющая кривая
[in]spineDirection- Направляющая кривая для направляющей кривой
[in]samec- Признак использования оригинала образующей кривой, а не копии
[in]sames- Признак использования оригинала направляющей кривой, а не копии
[in]samed- Признак использования оригинала кривой spineDirection, а не копии
 Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Друзья Макросы