--- 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;