Files
kompas3d-mcp/docs/Kompas3D_SDK/interfaces/opengl.md
T
mikhail e1337e4016 feat(sdk-docs): MD-база знаний SDK — в репозиторий; генератор и зеркало убраны
docs/Kompas3D_SDK/ становится каноническим источником справки КОМПАС SDK
и включается в репозиторий (2491 файл, ~14 МБ). HTML-зеркало
docs/KOMPAS_SDK_ru-RU/ (~1.4 ГБ, © АСКОН) и генератор
tools/build_kompas3d_sdk.py больше не нужны — регенерация не предполагается.

- .gitignore: MD-база разблокирована; зеркало остаётся проигнорированным
  (safety-net на случай повторной локальной выгрузки).
- CLAUDE.md / SKILL.md: убраны упоминания регенерации и зеркала.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 20:00:05 +03:00

1135 lines
44 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "OpenGL"
type: interface
api: [api7]
tags: [interface, api7, ba1848735]
sources:
- ba1848735.html
- iexternalgdiobject.html
- iexternaltessellationmanager.html
- iexternaltessellationobject.html
- igabaritobject.html
- ksglobject.html
- ipaintobject.html
---
*API интерфейсов. Версия 7 > Документ  > Окна документа *
## Интерфейс IExternalGDIObject
Интерфейс внешнего GDI- объекта.
Иерархия:
IKompasAPIObject
IExternalGDIObject
Примечание:
1. Интерфейс позволяет реализовать отрисовку внешних GDI- объектов (для V11 только текстов).
2. Управление интерфейсом (создание и удаление) осуществляется через менеджер IExternalTessellationManager.
## AlwaysDrawInScreenPlane - Способ преобразования координат внешней триангуляции
Тип данных: из перечисления ksDrawInScreenPlaneEnum
Синтаксис Automation:
```
AlwaysDrawInScreenPlane = Object.AlwaysDrawInScreenPlane Получить свойство (* )
Object.AlwaysDrawInScreenPlane = AlwaysDrawInScreenPlane Установить свойство (* )
AlwaysDrawInScreenPlane = Object.GetAlwaysDrawInScreenPlane() Получить свойство (**)
Object.SetAlwaysDrawInScreenPlane( AlwaysDrawInScreenPlane ) Установить свойство (**)
```
Синтаксис COM:
```
Object.get_AlwaysDrawInScreenPlane( &AlwaysDrawInScreenPlane ) Получить свойство
Object.put_AlwaysDrawInScreenPlane( AlwaysDrawInScreenPlane ) Установить свойство
```
## Delete - Удалить объект
Синтаксис Automation:
```
BOOL Delete( );
```
Синтаксис COM:
```
HRESULT Delete( BOOL * Result );
Возвращаемое значение:
TRUE - в случае успеха,
FALSE - в случае неудачи.
```
Примечание:
1. Перед удалением объекта нужно выключить видимость объекта в окнах документа.
2. Для удаления группы объектов используется функция IExternalTessellationManager::DeleteObjects.
3. Для удаления всех внешних объектов используется метод IExternalTessellationManager::Clear.
## NonScalableX - Не масштабировать по X
Тип данных: BOOL
Синтаксис Automation:
```
NonScalableX = Object.NonScalableX Получить свойство (* )
Object.NonScalableX = NonScalableX Установить свойство (* )
NonScalableX = Object.GetNonScalableX() Получить свойство (**)
Object.SetNonScalableX( NonScalableX ) Установить свойство (**)
```
Синтаксис COM:
```
Object.get_NonScalableX( &NonScalableX ) Получить свойство
Object.put_NonScalableX( NonScalableX ) Установить свойство
```
## NonScalableY - Не масштабировать по Y
Тип данных: BOOL
Синтаксис Automation:
```
NonScalableY = Object.NonScalableY Получить свойство (* )
Object.NonScalableY = NonScalableY Установить свойство (* )
NonScalableY = Object.GetNonScalableY() Получить свойство (**)
Object.SetNonScalableY( NonScalableY ) Установить свойство (**)
```
Синтаксис COM:
```
Object.get_NonScalableY( &NonScalableY ) Получить свойство
Object.put_NonScalableY( NonScalableY ) Установить свойство
```
## NonScalableZ - Не масштабировать по Z
Тип данных: BOOL
Синтаксис Automation:
```
NonScalableZ = Object.NonScalableZ Получить свойство (* )
Object.NonScalableZ = NonScalableZ Установить свойство (* )
NonScalableZ = Object.GetNonScalableZ() Получить свойство (**)
Object.SetNonScalableZ( NonScalableZ ) Установить свойство (**)
```
Синтаксис COM:
```
Object.get_NonScalableZ( &NonScalableZ ) Получить свойство
Object.put_NonScalableZ( NonScalableZ ) Установить свойство
```
## ObjectID - Идентификатор объекта
Тип данных: long
Синтаксис Automation:
```
ObjectID = Object.ObjectID Получить свойство (* )
ObjectID = Object.GetObjectID() Получить свойство (**)
```
Синтаксис COM:
```
Object.get_ObjectID( &ObjectID ) Получить свойство
```
Примечание:
1. Позволяет получить идентификатор объекта. По идентификатору объекта осуществляется установка видимости и удаление объектов.
2. Свойство доступно только для чтения.
## ScalableText - Признак масштабирования текста
Тип данных: BOOL
Синтаксис Automation:
```
ScalableText = Object.ScalableText Получить свойство (* )
Object.ScalableText = ScalableText Установить свойство (* )
ScalableText = Object.GetScalableText() Получить свойство (**)
Object.SetScalableText( ScalableText ) Установить свойство (**)
```
Синтаксис COM:
```
Object.get_ScalableText( &ScalableText ) Получить свойство
Object.put_ScalableText( ScalableText ) Установить свойство
```
## SetBkColors - Установить цвета фона текстов с Alpha каналом
Синтаксис Automation:
```
BOOL SetBkColors( VARIANT BkColors );
```
Синтаксис COM:
```
HRESULT SetBkColors( VARIANT BkColors, BOOL * Result );
Возвращаемое значение:
TRUE - в случае успеха,
FALSE - в случае ошибки.
Входные параметры:
BkColors - массив SafeArray VT_ARRAY VT_I4.
```
## SetPlace - Установить матрицу для отрисовки объекта
Синтаксис Automation:
```
BOOL SetPlace( VARIANT Place );
```
Синтаксис COM:
```
HRESULT SetPlace( VARIANT Place, BOOL * Result );
Возвращаемое значение:
TRUE - в случае успеха,
FALSE - в случае неудачи.
Входные параметры:
Place - массив SAFEARRAY double (VT_ARRAY VT_R8).
```
## SetTextColors - Установить цвета текстов
Синтаксис Automation:
```
BOOL SetTextColors( VARIANT textColors );
```
Синтаксис COM:
```
HRESULT SetTextColors( VARIANT textColors, BOOL * Result );
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Входные параметры:
textColors - массив цветов - SafeArray целых чисел VT_ARRAY VT_I4.
```
## SetTextOrientation - Установить наклон символов текстов
Синтаксис Automation:
```
BOOL SetTextOrientation( VARIANT textOrients );
```
Синтаксис COM:
```
HRESULT SetTextOrientation( VARIANT textOrients, BOOL * Result );
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Входные параметры:
textOrients - массив наклонов.
```
## SetTexts - Установить тексты и их параметры
Синтаксис Automation:
```
BOOL SetTexts( VARIANT Texts,
VARIANT Points,
VARIANT Colors,
VARIANT Fonts,
BOOL Is3DPoints );
```
Синтаксис COM:
```
HRESULT SetTexts( VARIANT Texts,
VARIANT Points,
VARIANT Colors,
VARIANT Fonts,
BOOL Is3DPoints,
BOOL * Result );
Входные параметры:
Points - массив SafeArray VT_ARRAY VT_R8 координат точек отрисовки текстов. Координаты в массиве могут лежать в последовательности: - для Is3DPoints == TRUE x0, y0, z0, x1, y1, z1, ... xi, yi, zi - для Is3DPoints == FALSE x0, y0, x1, y1, ... xi, yi,
Texts - массив SafeArray VT_ARRAY VT_BSTR текстов,
Сolors - массив цветов текстов. Массив может быть не задан - тип VARIANT-а VT_EMPTY, в этом случае используется черный цвет. Может быть задан один цвет - тип VARIANT-а VT_I4. Может быть задан цвет для каждого текста тип VARIANT-а VT_ARRAY VT_I4,
Fonts - массив шрифтов текстов. Массив может быть не задан - тип VARIANT-а VT_EMPTY. В этом случае используется шрифт, установленный в модели. Может быть задан один шрифт - тип VARIANT-а VT_DISPATCH. Может быть задан шрифт для каждого текста тип VARIANT-а VT_ARRAY VT_DISPATCH. Передаваемый интерфейс - интерфейс IFontDispPtr, который можно получить от объекта MFC- класса CFontHolder,
Is3DPoints - признак использования 3D-координат отрисовки текстов.
Возвращаемое значение:
TRUE - в случае успеха,
FALSE - в случае неудачи.
```
## SetTextsAlign - Установить выравнивание текста
Синтаксис Automation:
```
BOOL SetTextsAlign( VARIANT TextsAlign );
```
Синтаксис COM:
```
HRESULT SetTextsAlign( VARIANT TextsAlign, BOOL * Result );
Возвращаемое значение:
TRUE - в случае успеха,
FALSE - в случае ошибки.
Входные параметры:
TextsAlign - массив SafeArray VT_ARRAY VT_I4 констант из перечисления ksTextAlignEnum.
```
## Visible - Показать\скрыть объект
Тип данных: BOOL
Синтаксис Automation:
```
Object.Visible( frame ) = Visible Установить свойство (* )
Object.SetVisible( frame, Visible ) Установить свойство (**)
```
Синтаксис COM:
```
Object.put_Visible( frame, Visible ) Установить свойство,
Входные параметры:
frame - указатель на интерфейс окна документа IDocumentFrame.
```
Примечание:
1. Позволяет изменить видимость объекта в заданном окне.
2. Если frame == NULL, то объект будет отображаться во всех окнах документа.
3. Свойство доступно только для изменения.
## Интерфейс IExternalTessellationManager
Менеджер объектов с внешней триангуляцией.
| IExternalTessellationManager | - интерфейс Automation |
| --- | --- |
Описание:
Дополнительный интерфейс для IKompasDocument3D.
Данный интерфейс можно получить у интерфейса IKompasDocument3D посредством вызова метода IUnknown::QueryInterface (const GUID far& IID, void** pif).
Примечание:
Позволяет создавать объекты с внешней триангуляцией, отрисовываемые треугольниками и ребрами.
## Add - Добавить объект с внешней триангуляцией
Синтаксис Automation:
```
LPDISPATCH Add();
```
Синтаксис COM:
```
HRESULT Add( IExternalTessellationObject ** PVal );
Возвращаемое значение:
- Указатель на интерфейс объекта с внешней триангуляцией IExternalTessellationObject.
```
## AddGDIObject - Добавить внешний GDI-объект
Синтаксис Automation:
```
LPDISPATCH AddGDIObject();
```
Синтаксис COM:
```
HRESULT AddGDIObject( IExternalGDIObject ** PVal );
Возвращаемое значение:
- Указатель на интерфейс внешнего GDI- объекта IExternalGDIObject.
```
## Clear - Удалить все объекты
Синтаксис Automation:
```
BOOL Clear();
```
Синтаксис COM:
```
HRESULT Clear( BOOL * res );
Возвращаемое значение:
TRUE - в случае успешного завершения.
```
## CreateTextureImage - Создать изображение текстуры
Синтаксис Automation:
```
long CreateTextureImage ( long Width, long Heigh,
BOOL RGBA,
BOOL WrapMode,
BOOL FiltMode,
VARIANT ImageData );
```
Синтаксис COM:
```
HRESULT CreateTextureImage ( long Width, long Heigh,
BOOL RGBA,
BOOL WrapMode,
BOOL FiltMode,
VARIANT ImageData,
long * Result );
Входные параметры:
Width, Heigh - Размер изображения,
RGBA - TRUE - RGBA, FALSE - RGB,
WrapMode - Режим повторения TRUE - GL_CLAMP FALSE - GL_REPEAT,
FiltMode - Режим повторения TRUE - GL_LINEAR FALSE - GL_NEAREST,
ImageData Массив байтов изображения текстуры VT_ARRAY VT_UI1.
Возвращаемое значение:
- Идентификатор текстуры.
Возвращаемое значение:
TRUE - в случае удачи,
FALSE - в случае ошибки.
```
Примечание:
Созданная текстура используется в методе IExternalTessellationObj::SelectTextureImage.
## DeleteObjects - Удалить объекты
Синтаксис Automation:
```
BOOL DeleteObjects();
```
Синтаксис COM:
```
HRESULT DeleteObjects( VARIANT Id, BOOL * res );
Входные параметры:
Ids - Идентификаторы объектов тип VARIANT. Можно передать один идентификатор тип VARIANT-а VT_I4 или массив SafeArray идентификаторов тип VARIANT-а VT_ARRAY VT_I4.
Возвращаемое значение:
TRUE - в случае успеха,
FALSE - в случае неудачи.
```
## DeleteTextureImage - Удалить изображение текстуры
Синтаксис Automation:
```
BOOL DeleteTextureImage( long TexImgId );
```
Синтаксис COM:
```
HRESULT DeleteTextureImage( long TexImgId, BOOL * Result );
Входные параметры:
TexImgId - идентификатор текстуры.
Возвращаемое значение:
TRUE - в случае успеха,
FALSE - в случае неудачи.
```
## DisableModelDrawing - Запретить отрисовку модели для указанных элементов
Синтаксис Automation
```
BOOL DisableModelDrawing( long ForElements );
```
Синтаксис COM:
```
HRESULT DisableModelDrawing( long ForElements, BOOL * Result );
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
Входные параметры:
ForElements - типы объектов ksModelDrawingElementsEnum.
```
## DisableModelRotation - Запретить поворот модели и изменение ориентации вида
Тип данных: BOOL
Синтаксис Automation:
```
DisableModelRotation = Object.DisableModelRotation Получить свойство (* )
Object.DisableModelRotation = DisableModelRotation Установить свойство (* )
DisableModelRotation = Object.GetDisableModelRotation() Получить свойство (**)
Object.SetDisableModelRotation( DisableModelRotation ) Установить свойство (**)
```
Синтаксис COM:
```
Object.get_DisableModelRotation( &DisableModelRotation ) Получить свойство
Object.put_DisableModelRotation( DisableModelRotation ) Установить свойство
```
## EnableModelDrawing - Отменить последний запрет на отрисовку элементов модели
Синтаксис Automation:
```
BOOL EnableModelDrawing();
```
Синтаксис COM:
```
HRESULT EnableModelDrawing( BOOL * Result );
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
```
## GDIObject - Получить внешний GDI объект
Тип данных: BOOL
Синтаксис Automation:
```
GDIObject = Object.GDIObject( Id ) Получить свойство (* )
GDIObject = Object.GetGDIObject( Id ) Получить свойство (**)
```
Синтаксис COM:
```
Object.get_GDIObject( Ids, &GDIObject ) Получить свойство
Входные параметры:
Id - идентификатор объекта.
```
## IsModelDrawingEnabled - Проверить, разрешена ли отрисовка для указанных элементов
Синтаксис Automation:
```
BOOL IsModelDrawingEnabled( long ForElements );
```
Синтаксис COM:
```
HRESULT IsModelDrawingEnabled( long ForElements, BOOL * Result );
Возвращаемое значение:
TRUE - если отрисовка разрешена.
Входные параметры:
ForElements - типы объектов ksModelDrawingElementsEnum.
```
## ObjectsVisible - Показать\скрыть объекты
Тип данных: BOOL
Синтаксис Automation:
```
Object.ObjectsVisible( Ids, frame ) = Visible Установить свойство (* )
Object.SetObjectsVisible( Ids, frame, Visible ) Установить свойство (**)
```
Синтаксис COM:
```
Object.put_ObjectsVisible( Ids, frame, Visible ) Установить свойство
Входные параметры:
Ids - Идентификаторы объектов тип VARIANT. Можно передать один идентификатор тип VARIANT-а VT_I4 или массив SafeArray идентификаторов тип VARIANT-а VT_ARRAY VT_I4
frame - указатель на интерфейс окна документа IDocumentFrame.
```
Примечание:
1. Позволяет изменить видимость объектов в заданном окне. Если frame == NULL, то объект будет отображаться во всех окнах документа.
2. Свойство доступно только для изменения.
## PickObjects - Собрать объекты по лучу
Синтаксис Automation:
```
BOOL PickObjects( LPDISPATCH Frame, VARIANT PickRay, BOOL Visible, VARIANT * PickedObjs, VARIANT * PickedPars );
```
Синтаксис COM:
```
HRESULT PickObjects( IDocumentFrame * Frame, VARIANT PickRay, BOOL Visible, VARIANT * PickedObjs, VARIANT * PickedPars, BOOL * Result) ;
Входные параметры:
Frame - Указатель на интерфейс окна документа IDocumentFrame,
PickRay - Параметры луча ( VT_ARRAY VT_R8 ), массив из шести элементов (Точка начала луча и единичный вектор задающий направление луча),
Visible - Признак учета видимых объектов: TRUE - пересекать только с видимыми объектами, FALSE - со всеми объектами.
Выходные параметры:
PickedObjs - Идентификаторы найденных внешних объектов триангуляции (VT_ARRAY VT_UI4),
PickedPars - Параметры луча в точке пересечения с объектами (VT_ARRAY VT_R4).
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
```
## TessellationObject - Получить объект по идентификатору
Тип данных: BOOL
Синтаксис Automation:
```
TessellationObject = Object.TessellationObject( Id ) Получить свойство (* )
TessellationObject = Object.GetTessellationObject( Id ) Получить свойство (**)
```
Синтаксис COM:
```
Object.get_TessellationObject( Ids, &TessellationObject ) Получить свойство
Входные параметры:
Id - идентификатор объекта.
```
## Интерфейс IExternalTessellationObject
Интерфейс объекта с внешней триангуляцией.
| IExternalTessellationObject | - интерфейс Automation |
| --- | --- |
Примечание:
Интерфейс позволяет реализовать отрисовку внешних объектов с триангуляцией.
## AlwaysDrawInScreenPlane - Способ преобразования координат внешней триангуляции
Тип данных: из перечисления ksDrawInScreenPlaneEnum
Синтаксис Automation:
```
AlwaysDrawInScreenPlane = Object.AlwaysDrawInScreenPlane Получить свойство (* )
Object.AlwaysDrawInScreenPlane = AlwaysDrawInScreenPlane Установить свойство (* )
AlwaysDrawInScreenPlane = Object.GetAlwaysDrawInScreenPlane() Получить свойство (**)
Object.SetAlwaysDrawInScreenPlane( AlwaysDrawInScreenPlane ) Установить свойство (**)
```
Синтаксис COM:
```
Object.get_AlwaysDrawInScreenPlane(&AlwaysDrawInScreenPlane ) Получить свойство
Object.put_AlwaysDrawInScreenPlane( AlwaysDrawInScreenPlane ) Установить свойство
```
## Delete - Удалить объект
Синтаксис Automation:
```
BOOL Delete( );
```
Синтаксис COM:
```
HRESULT Delete( BOOL * Result );
Возвращаемое значение:
TRUE - в случае успеха,
FALSE - в случае неудачи.
```
Примечание:
1. Перед удалением объекта нужно выключить видимость объекта в окнах документа.
2. Для удаления группы объектов используется метод IExternalTessellationManager::DeleteObjects. Для удаления всех внешних объектов используется метод IExternalTessellationManager::Clear.
## DisableDepthTest - Запрет проверки глубины
Тип данных: BOOL
Синтаксис Automation:
```
DisableDepthTest = Object.DisableDepthTest Получить свойство (* )
Object.DisableDepthTest = DisableDepthTest Установить свойство (* )
DisableDepthTest = Object.GetDisableDepthTest() Получить свойство (**)
Object.SetDisableDepthTest( DisableDepthTest ) Установить свойство (**)
```
Синтаксис COM:
```
Object.get_DisableDepthTest(&DisableDepthTest ) Получить свойство
Object.put_DisableDepthTest( DisableDepthTest ) Установить свойство
Свойство позволяет устанавливать и получать признак запрета глубины.
```
## NonGeometry - Не геометрический
Тип данных: BOOL
Синтаксис Automation:
```
NonGeometry = Object.NonGeometry Получить свойство (* )
Object.NonGeometry = NonGeometry Установить свойство (* )
NonGeometry = Object.GetNonGeometry() Получить свойство (**)
Object.SetNonGeometry( NonGeometry ) Установить свойство (**)
```
Синтаксис COM:
```
Object.get_AlwaysDrawInScreenPlane(&AlwaysDrawInScreenPlane ) Получить свойство
Object.put_AlwaysDrawInScreenPlane( AlwaysDrawInScreenPlane ) Установить свойство
```
## NonPickable - Не выбираемый
Тип данных: BOOL
Синтаксис Automation:
```
NonPickable = Object.NonPickable Получить свойство (* )
Object.NonPickable = NonPickable Установить свойство (* )
NonPickable = Object.GetNonPickable() Получить свойство (**)
Object.SetNonPickable( NonPickable ) Установить свойство (**)
```
Синтаксис COM:
```
Object.get_NonPickable(&NonPickable ) Получить свойство
Object.put_NonPickable( NonPickable ) Установить свойство
```
## NonScalableX - Не масштабировать по X
Тип данных: BOOL
Синтаксис Automation:
```
NonScalableX = Object.NonScalableX Получить свойство (* )
Object.NonScalableX = NonScalableX Установить свойство (* )
NonScalableX = Object.GetNonScalableX() Получить свойство (**)
Object.SetNonScalableX( NonScalableX ) Установить свойство (**)
```
Синтаксис COM:
```
Object.get_NonScalableX(&NonScalableX ) Получить свойство
Object.put_NonScalableX( NonScalableX ) Установить свойство
```
## NonScalableY - Не масштабировать по Y
Тип данных: BOOL
Синтаксис Automation:
```
NonScalableY = Object.NonScalableY Получить свойство (* )
Object.NonScalableY = NonScalableY Установить свойство (* )
NonScalableY = Object.GetNonScalableY() Получить свойство (**)
Object.SetNonScalableY( NonScalableY ) Установить свойство (**)
```
Синтаксис COM:
```
Object.get_NonScalableY(&NonScalableY ) Получить свойство
Object.put_NonScalableY( NonScalableY ) Установить свойство
```
## NonScalableZ - Не масштабировать по Z
Тип данных: BOOL
Синтаксис Automation:
```
NonScalableZ = Object.NonScalableZ Получить свойство (* )
Object.NonScalableZ = NonScalableZ Установить свойство (* )
NonScalableZ = Object.GetNonScalableZ() Получить свойство (**)
Object.SetNonScalableZ( NonScalableZ ) Установить свойство (**)
```
Синтаксис COM:
```
Object.get_NonScalableZ(&NonScalableZ ) Получить свойство
Object.put_NonScalableZ( NonScalableZ ) Установить свойство
```
## ObjectID - Идентификатор объекта
Тип данных:long
Синтаксис Automation:
```
ObjectID = Object.ObjectID Получить свойство (* )
ObjectID = Object.GetObjectID() Получить свойство (**)
```
Синтаксис COM:
```
Object.get_ObjectID( &ObjectID ) Получить свойство
```
Примечание:
1. Позволяет получить идентификатор объекта. По идентификатору объекта осуществляется установка видимости и удаление объектов.
2. Свойство доступно только для чтения.
## SelectTextureImage - Задать изображение текстуры по идентификатору
Синтаксис Automation:
```
BOOL SelectTextureImage( long TexImgId );
```
Синтаксис COM:
```
HRESULT SelectTextureImage( long TexImgId, BOOL * Result );
Возвращаемое значение:
TRUE - в случае удачи,
FALSE - в случае ошибки.
```
Примечание:
Метод позволяет установить для объекта текстуру, созданную функцией IExternalTessellationManager::CreateTextureImage.
## SetAdvancedColor - Установить параметры цвета объекта
Синтаксис Automation:
```
BOOL SetAdvancedColor (long color,
double ambient,
double diffuse,
double specularity,
double shininess,
double transparency,
double emission);
```
Синтаксис COM:
```
HRESULT SetAdvancedColor (COLORREF color,
double ambient,
double diffuse,
double specularity,
double shininess,
double transparency,
double emission,
BOOL * result);
Входные параметры:
color - цвет,
ambient - общий свет,
diffuse - диффузия,
specularity - зеркальность,
shininess - блеск,
transparency - прозрачность,
emission - излучение.
Возвращаемое значение:
TRUE - в случае успешного завершения.
```
## SetEdgeColors - Установить цвет ребрам сетки
Синтаксис Automation:
```
BOOL SetEdgeColors( VARIANT Colors );
```
Синтаксис COM:
```
HRESULT SetEdgeColors( VARIANT Colors, BOOL * Result );
Возвращаемое значение:
TRUE - в случае успешного завершения.
Входные параметры:
Colors - безопасный массив цветов.
```
## SetEdges - Установить ребра сетки
Синтаксис Automation:
```
BOOL SetEdges( VARIANT points,
VARIANT edges,
VARIANT colors );
```
Синтаксис COM:
```
HRESULT SetEdges( VARIANT points,
VARIANT edges,
VARIANT colors,
BOOL * res );
Входные параметры:
points - массив SafeArray VT_ARRAY VT_R8 координат вершин. Если массив координат уже задан функцией SetTessellation, то нужно передать пустой Variant VT_ARRAY VT_R8,
edges - массив SafeArray типа VT_ARRAY VT_I4 индексов координат вершин,
colors - массив цветов. Массив может быть не задан - тип VARIANT-а VT_EMPTY. В этом случае используется цвет, заданный функцией SetAdvancedColor. Может быть задан один цвет - тип VARIANT-а VT_I4. Может быть задан цвет для каждой точки - тип VARIANT-а VT_ARRAY VT_I4.
Возвращаемое значение:
TRUE - в случае успешного завершения.
```
Примечание:
1. Массив ребер может содержать одно или несколько ребер. Каждое ребро может иметь две или более вершины.
2. Для описания ребер используется последовательность:
[ [count0, i00, i01, ...] - первое ребро
[count1, i10, i11, ...] - второе ребро
...
[counti, ii0, ii1, ...]] - i-тое ребро,
где count0, count1, counti - количество вершин в ребре, i00, i01, i10, i11, ii0, ii1 - индексы координат точек из массива points.
## SetEdgeStyles - Установить стили рёбер сетки
Синтаксис Automation:
```
BOOL SetEdgeStyles( VARIANT Styles );
```
Синтаксис COM:
```
HRESULT SetEdgeStyles( VARIANT Styles, BOOL * Result );
Входные параметры:
Styles - массив VT_ARRAY VT_I4 стилей ребер.
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
```
## SetEdgeWidths - Установить толщины ребер сетки
Синтаксис Automation:
```
BOOL SetEdgeWidths( VARIANT Widths );
```
Синтаксис COM:
```
HRESULT SetEdgeWidths( VARIANT Widths, BOOL * Result );
Входные параметры:
Widths - массив VT_ARRAY VT_R8 значений толщины ребер.
Возвращаемое значение:
TRUE - в случае успешного завершения,
FALSE - в случае неудачи.
```
## SetFacetMode - Установить режим отображения граней
Синтаксис Automation:
```
BOOL SetFacetMode( BOOL SideMode,
ksFacetCullingMode CullingMode );
```
Синтаксис COM:
```
HRESULT SetFacetMode( BOOL SideMode,
ksFacetCullingMode CullingMode, BOOL * Res );
Входные параметры:
SideMode - TRUE - объект является двусторонним, - FALSE - объект является односторонним,
CullingMode - режим отображения граней ksFacetCullingMode.
Возвращаемое значение:
TRUE - в случае удачи.
```
## SetPlaces - Установить матрицы для отрисовки объекта
Синтаксис Automation:
```
BOOL SetPlaces( VARIANT places );
```
Синтаксис COM:
```
HRESULT SetPlaces( VARIANT places, BOOL * res );
Входные параметры:
places - массив SafeArray типа VT_ARRAY VT_R8. В массиве может быть передана одна или несколько матриц размером 4*4. Если передано несколько матриц, объект будет отрисован столько раз, сколько передано матриц. Используется для многократной отрисовки одинаковых объектов. Матрицы передаются в виде одномерного массива.
Возвращаемое значение:
TRUE - в случае успешного завершения.
```
## SetTessellation - Установить параметры триангуляции
Синтаксис Automation:
```
BOOL SetTessellation( VARIANT points,
VARIANT indexes,
VARIANT normals,
VARIANT colors );
```
Синтаксис COM:
```
HRESULT SetTessellation( VARIANT points,
VARIANT indexes,
VARIANT normals,
VARIANT colors,
BOOL * Result );
Входные параметры:
points - массив SafeArray VT_ARRAY VT_R8 координат точек триангуляционной сетки; координаты в массиве лежат в последовательности x0, y0, z0, x1, y1, z1, ... xi, yi, zi,
indexes - массив SafeArray VT_ARRAY VT_I4 индексов вершин треугольников; по индексу из массива indexes достаются координаты вершин из массива points,
normals - массив SafeArray VT_ARRAY VT_R8 единичных векторов нормалей для вершин. Если направление нормалей во всех вершинах совпадают, можно добавить направление только одной нормали. Иначе количество нормалей должно быть равно количеству точек в массиве points,
colors - массив цветов в точках. Массив может быть не задан - тип VARIANT-а VT_EMPTY. В этом случае используется цвет, заданный функцией SetAdvancedColor. Может быть задан один цвет - тип VARIANT-а VT_I4. Может быть задан цвет для каждой точки - тип VARIANT-а VT_ARRAY VT_I4.
```
## SetTextureImage - Установить изображение текстуры
Синтаксис Automation:
```
BOOL SetTextureImage( long Width,
long Heigh,
BOOL RGBA,
BOOL WrapMode,
BOOL FiltMode,
VARIANT ImageData );
```
Синтаксис COM:
```
HRESULT SetTextureImage( long Width,
long Heigh,
BOOL RGBA,
BOOL WrapMode,
BOOL FiltMode,
VARIANT ImageData,
BOOL * Res );
Входные параметры:
Width, Heigh - размер изображения, являющегося элементом текстуры; Рекомендуется использовать изображения, значения размеров которых являются целой положительной степенью числа 2; в противном случае, объекты будут неправильно выведены на печать и конвертированы в растр,
RGBA - TRUE - RGBA, - FALSE - RGB,
WrapMode режим повторения: - TRUE - GL_CLAMP, - FALSE - GL_REPEAT,
FiltMode режим фильтрации: - TRUE - GL_LINEAR, - FALSE - GL_NEAREST,
ImageData - массив байтов изображения текстуры VT_ARRAY VT_UI1.
Возвращаемое значение:
TRUE - в случае удачи.
```
## SetTexturePoints - Установить координаты вывода текстуры
Синтаксис Automation:
```
BOOL SetTexturePoints( BOOL Image2D, VARIANT ImagePoints );
```
Синтаксис COM:
```
HRESULT SetTexturePoints( BOOL Image2D, VARIANT ImagePoints, BOOL * Res );
Входные параметры:
Image2D - TRUE - двумерные координаты, - FALSE - одномерные координаты,
ImagePoints - Координаты в диапазоне 0...1.
Возвращаемое значение:
TRUE - в случае удачи.
```
## Visible - Идентификатор объекта
Тип данных: BOOL
Синтаксис Automation:
```
Object.Visible( frame ) = Visible Установить свойство (* )
Object.SetVisible( frame, Visible ) Установить свойство (**)
```
Синтаксис COM:
```
Object.put_Visible( frame, Visible ) Установить свойство
Входные параметры:
frame - указатель на интерфейс окна документа IDocumentFrame.
```
Примечание:
1. Позволяет изменить видимость объекта в заданном окне. Если frame == NULL, то объект будет отображаться во всех окнах документа.
2. Свойство доступно только для изменения.
## Интерфейс IGabaritObject
Вспомогательные данные для изменения габарита документа.
Иерархия:
IDispatch
IGabaritObject
Примечание:
Данный интерфейс может быть получен в событиях интерфейса событий окна документа ksDocumentFrameNotify, ksDocumentFrameNotify::AddGabarit.
## AddGabarit - Добавить дополнительный габарит к габариту документа
Синтаксис Automation:
```
void AddGabarit (double x1,
double y1,
double z1,
double x2,
double y2,
double z2);
```
Синтаксис COM:
```
HRESULT AddGabarit ([in]double x1,
[in]double y1,
[in]double z1,
[in]double x2,
[in]double y2,
[in]double z2);
Выходные параметры:
x1, y1, z1, x2, y2, z2 - координаты габаритной рамки добавляемого дополнительного габарита.
```
## GetCurrentGabarit - Получить текущий габарит документа
Синтаксис Automation:
```
void GetCurrentGabarit (long nPage,
double* p1X,
double* p1Y,
double* p1Z,
double* p2X,
double* p2Y,
double* p2Z);
```
Синтаксис COM:
```
HRESULT GetCurrentGabarit ([in]long nPage,
[out]double *p1X,
[out]double *p1Y,
[out]double *p1Z,
[out]double *p2X,
[out]double *p2Y,
[out]double *p2Z )
Входные параметры:
nPage - номер листа, начиная с единицы.
Выходные параметры:
p1X, p1Y, p1Z, p2X, p2Y, p2Z - координаты габаритной рамки документа.
```
Примечание:
Метод позволяет получить текущий габарит документа в миллиметрах. Для многолистовых документов можно получить габарит конкретного листа.
## GetGabaritModifying - Изменился ли габарит документа
Синтаксис Automation:
```
BOOL GetGabaritModifying();
```
Синтаксис COM:
```
HRESULT GetGabaritModifying ([out, retval]VARIANT_BOOL * DocGabaritModify);
Возвращаемое значение:
TRUE - габарит документа изменен,
FALSE - габарит документа не изменен.
```
Примечание:
В момент отработки события Определение габаритов документа метод позволяет узнать менялся ли габарит документа или нет.
## Интерфейс ksGLObject
Вспомогательные данные для создания листа в контексте OpenGL.
Примечание:
1. Данный интерфейс нужно использовать при отрисовке с помощью OpenGL из внешнего приложения (контроллера). При работе из подключаемой библиотеки (dll) данный интерфейс использовать нельзя. Более подробное описание методов смотрите в описании библиотеки OpenGL.
2. Данный интерфейс может быть получен в событиях интерфейса событий окна документа ksDocumentFrameNotify:
•ksDocumentFrameNotify::BeginPaintGL,
•ksDocumentFrameNotify::ClosePaintGL.
## Интерфейс IPaintObject
Интерфейс вспомогательных данные для отрисовки документа.
Иерархия:
IDispatch
IPaintObject
Примечание:
Данный интерфейс может быть получен в событиях интерфейса событий окна документа ksDocumentFrameNotify:
•ksDocumentFrameNotify::BeginPaint,
•ksDocumentFrameNotify::ClosePaint.
## GetDIBForOutput - Создать растровое изображение документа в объект «проекция файла» для дорисовки
Синтаксис Automation:
```
BSTR GetDIBForOutput();
```
Синтаксис COM:
```
HRESULT GetDIBForOutput ([out, retval] BSTR* mapFileName);
Возвращаемое значение:
Имя созданного объекта «проекция файла». - в случае успешного завершения.
```
Примечание:
Создает объект «проекция файла» (объект ядра в Windows, создаваемый для организации совместного использования несколькими процессами одних и тех же блоков данных) для возможности дорисовки своей геометрии к изображению документа.
## GetHWND - Получить дескриптор окна
Синтаксис Automation:
```
long GetHWND();
```
Синтаксис COM:
```
HRESULT GetHWND ([out, retval] OLE_HANDLE* hwnd);
Возвращаемое значение:
Дескриптор окна в котором идет отрисовка - в случае успешного завершения.
```
## GetTransformMatrix - Получить коэффициенты для матрицы преобразования координат
Синтаксис Automation:
```
void GetTransformMatrix (double* a11,
double* a12,
double* a13,
double* a14,
double* a21,
double* a22,
double* a23,
double* a24);
```
Синтаксис COM:
```
HRESULT GetTransformMatrix ([out]double* a11,
[out]double* a12,
[out]double* a13,
[out]double* a14,
[out]double* a21,
[out]double* a22,
[out]double* a23,
[out]double* a24);
Выходные параметры:
a11, a12, a13, a14, a21, a22, a23, a24 - коэффициенты для матрицы преобразования координат.
```
Примечание:
Матрица для преобразования координат mm -> LP:
Xlp = Xmm * a11 + Ymm * a12 + Zmm * a13 + a14;
Ylp = Xmm * a21 + Ymm * a22 + Zmm * a23 + a24;