TrueType Разработка Шрифта
Хотя ни SimpleView ни WhipView, через AcGix, не поддерживает TrueType шрифты, имеется процедура, доступная в ObjectDBX для тех, кто хотят пробовать добавить TrueType поддержку шрифта на их собственный. Механизм - textMsg () метод AcGixVectorTaker класса.
Когда объект текста TrueType должен быть отображен, AcGix вызывает textMsg () методом vectortaker. В этой точке vectortaker выполнение может или обрабатывать текст или возвращать Adesk:: kFalse, чтобы инструктировать AcGix исполнять его обработку по умолчанию, которая должна преобразовать текст в SHX шрифт (txt.shx по умолчанию) и затем исполнять стандарт SHX обработка.
Координаты, снабженные textMsg () находятся в текущих образцовых координатах.
Они могут быть преобразованы к Мировой системе координат (WCS), использование снабженного преобразовывает.
Задача представления TrueType шрифты в трехмерном пространстве сложна, и это осуществление рекомендуется только для тех смотрящий достичь полной совместимости дисплея AutoCAD. Один подход может быть только, чтобы обработать это сообщение, если текст может быть представлен в виде плана для вашей области просмотра, и иначе использовать заданную по умолчанию обработку.
TextMsg () метод определен в AcGixVectorTaker.h:
virtual Adesk::Boolean
textMsg(
Adesk::Int16 nViewportId,
const TextPacket * pPacket) = 0;
Структура TextPacket содержит информацию относительно текста плюс матрица преобразования, имел обыкновение преобразовывать от текущей модели до WCS.
struct TextPacket
{
TextPacket(
const TextInfo* pInfo,
int nColor,
const AcGeMatrix3d& xModel);
int m_nColor;
const TextInfo* m_pInfo;
const AcGeMatrix3d& m_xCurrentModelToWorld;
};
Структура TextInfo содержит всю информацию относительно текста:
struct TextInfo
{
AcGePoint3d m_Position;
AcGeVector3d m_Normal;
AcGeVector3d m_Direction;
double m_Height;
double m_Width;
double m_Oblique;
const char* m_pMsg;
Adesk::Int32 m_Length;
Adesk::Boolean m_Raw;
double m_Thickness;
const AcGiTextStyle * m_pTextStyle;
};