Preprocessor Definitions

A3D_API(RET, NAME, PARAMS)

Declares NAME as a function returning RET and with PARAMS as parameters.

Expands to either a function declaration (when building the library) or a function pointer typedef (for SDK consumers)

Expands to

A3D_C_EXTERN_PFN(RET,NAME,PARAMS)
A3D_C_API_ATTRS

Function directives.

Define these do that the clients use functions with the same calling conventions as the implementation.

A3D_C_API_ATTRS - Before the return type in declarations. A3D_C_API_CALL - After the return type in declaration. A3D_C_API_PTR - Between the ‘(’ and ‘*’ in function pointer.

Function declaration: A3D_C_API_ATTRS return_type A3D_C_API_CALL fname(params…); Function pointer: typedef void (A3D_C_API_PTR *PF_fname)(params…);

A3D_C_API_CALL

Used to override calling convention.

A3D_C_API_PTR

Function pointer calling convention override.

A3D_C_EXTERN_PFN(RET, NAME, PARAMS)

Declares NAME as a function pointer returning RET and with PARAMS as parameters.

Expands to

typedef RET (A3D_C_API_PTR *PF##NAME) PARAMS; extern PF##NAME NAME;
A3D_DECODE_EXTRA_DATA(TessCode)

Macro to decode the extra data type from a markup’s tessellation code.

Expands to

((TessCode & kA3DMarkupExtraDataType) >> 21)
A3D_DEFAULT_COLOR_INDEX

Default color index.

Expands to

((A3DUns32)-1)
A3D_DEFAULT_LAYER

Default layer.

Expands to

((A3DUns16)-1)
A3D_DEFAULT_LINEPATTERN_INDEX

Default line pattern index.

Expands to

((A3DUns32)-1)
A3D_DEFAULT_LINE_WIDTH

Default line width.

Expands to

((A3DDouble)0.1)
A3D_DEFAULT_MATERIAL_INDEX

Default material index.

Expands to

((A3DUns32)-1)
A3D_DEFAULT_NO_UNIT

Metadata with no unit.

Expands to

((A3DUns16)-1)
A3D_DEFAULT_PATTERN_INDEX

Default pattern index.

Expands to

((A3DUns32)-1)
A3D_DEFAULT_PICTURE_INDEX

Default picture index.

Expands to

((A3DUns32)-1)
A3D_DEFAULT_STYLE_INDEX

Default style index.

Expands to

((A3DUns16)-1)
A3D_DEFAULT_TEXTURE_APPLICATION_INDEX

Default texture application index.

Expands to

((A3DUns32)-1)
A3D_DEFAULT_TEXTURE_DEFINITION_INDEX

Default texture definition index.

Expands to

((A3DUns32)-1)
A3D_DEFAULT_TRANSPARENCY

Default transparency.

Expands to

((A3DUns8)-1)

Library copyright information.

Expands to

"Copyright (c) 2010 - 2026 by Tech Soft 3D, Inc. All rights reserved."
A3D_DLL_MAJORVERSION

Library Major version

Expands to

26
A3D_DLL_MINORVERSION

Library Minor version

Expands to

8
A3D_DLL_NAME

Name of the library

Expands to

"A3DLIB"
A3D_DLL_UPDATEVERSION

Library Update version.

Expands to

0
A3D_ENCODE_EXTRA_DATA(ExtraDataType, InnerCodes)

Macro to encode an extra data type for storing in a markup’s tessellation.

The ExtraDataType parameter must be set with one of the above markup encoding definitions. The InnerCodes parameter is the number of inner codes associated with the extra data.

Expands to

((kA3DMarkupIsExtraData | ExtraDataType) + InnerCodes)
A3D_FALSE

Boolean standard false value.

Expands to

0
A3D_HLR_TYPE_EDGE

curve is a edge in the A3DRiRepresentationItem input

Expands to

1
A3D_HLR_TYPE_SECTION

curve is a section of previous boolean operation

Expands to

3
A3D_HLR_TYPE_SILHOUETTE

curve is a silhouette

Expands to

2
A3D_HLR_TYPE_SILHOUETTE_SECTION

curve is a silhouette and a section of previous boolean operation

Expands to

4
A3D_HLR_TYPE_UNKNOWN

Unknown type.

Expands to

0
A3D_LOOP_UNKNOWN_OUTER_INDEX

Outer loop is unknown.

Expands to

((A3DUns32)-1)
A3D_MAKE_DATA(MAC_TYPE)

One-line macro initializer for entity data structures.

Before calling any function, structures such as A3DAsmModelFileData must be initialized, either using directly A3D_INITIALIZE_DATA or using this convenience macro.

const A3DAsmProductOccurrenceData data = A3D_MAKE_DATA(A3DAsmProductOccurrenceData);
A3DAsmProductOccurrence* pPO = A3D_NULL_HANDLE;
const A3DStatus status = A3DAsmProductOccurrenceCreate(&data, &pPO);
Because this macro invokes the standard memset function, stdlib.h must be included before this file.

Expands to

A3D_MAKE_ ## MAC_TYPE ()
A3D_MAX_BUFFER

Maximum length for character string.

Expands to

2048
A3D_NULL_HANDLE

Non-valid object handle.

Expands to

((void*)0)
A3D_PRODUCT_FLAG_BIM_BUILDING

The product occurrence is a BIM building.

Expands to

0x10000
A3D_PRODUCT_FLAG_BIM_CATEGORY

The product occurrence is a BIM category.

Expands to

0x40000
A3D_PRODUCT_FLAG_BIM_COMPONENT

The product occurrence is a BIM component.

Expands to

0x80000
A3D_PRODUCT_FLAG_BIM_LEVEL

The product occurrence is a BIM level.

Expands to

0x20000
A3D_PRODUCT_FLAG_BIM_PROJECT

The product occurrence is a BIM project.

Expands to

0x4000
A3D_PRODUCT_FLAG_BIM_SITE

The product occurrence is a BIM site.

Expands to

0x8000
A3D_PRODUCT_FLAG_CONFIG

The product occurrence is a configuration.

Expands to

0x0008
A3D_PRODUCT_FLAG_CONFIG_NOT_UPDATED

The configuration does not include the model data.

Expands to

0x0100
A3D_PRODUCT_FLAG_CONTAINER

The product occurrence is a container.

Expands to

0x0004
A3D_PRODUCT_FLAG_DEFAULT

The product occurrence is the default container, view or configuration.

Expands to

0x0001
A3D_PRODUCT_FLAG_EXTERNAL_REFERENCE

The product occurrence is an external reference.

Expands to

0x2000
A3D_PRODUCT_FLAG_INTERNAL

The product occurrence is internal.

Expands to

0x0002
A3D_PRODUCT_FLAG_SUPPRESSED

The product occurrence is suppressed.

Expands to

0x0040
A3D_PRODUCT_FLAG_VIEW

The product occurrence is a view.

Expands to

0x0010
A3D_TRUE

Boolean standard true value.

Expands to

1
FALSE

Boolean standard false value.

Expands to

0
HMODULE

A handle to a module.

Expands to

void*
HOOPS_EXCHANGE

Marks the product as using HOOPS Exchange.

MAX_FIELD_NAME

The maximum size (in bytes) of a field name in A3DPDFFieldData.

Expands to

1024
TRUE

Boolean standard true value.

Expands to

1
__A3DPDFDEPRECATED__
__A3DSDKDEPRECATED__
kA3DBodyBoundingBoxCadData

The bounding box has been read from the originating CAD file.

Expands to

0x0003
kA3DBodyBoundingBoxEvaluation

The bounding box has been roughly evaluated from geometrical entities included in the body.

Expands to

0x0001
kA3DBodyBoundingBoxPrecise

The bounding box has been deduced from a complete tessellation of the body.

Expands to

0x0002
kA3DContextHasAnalytics

B-rep can contain analytic elements (not exclusively BSpline).

Expands to

0x0008
kA3DContextNoClamp

UV Curves are clamped on surface.

Expands to

0x0002
kA3DContextNoSplit

Faces are split.

Expands to

0x0004
kA3DContextOuterLoopFirst

Outer loops are always first loops.

Expands to

0x0001
kA3DFontBold

Bold.

Expands to

0x02
kA3DFontFixedWidth

Fixed width.

Indicates that the original font is not proportional (each glyph has the same width).

Expands to

0x100
kA3DFontItalic

Italic.

Expands to

0x04
kA3DFontKeyAttrib

Mask to encode the font attributes of the A3DFontKeyData structure into the A3DTessMarkupData structure.

Expands to

0x00000FFF
kA3DFontKeySize

Mask to encode the font size index of the A3DFontKeyData structure into the A3DTessMarkupData structure.

Expands to

0x00FFF000
kA3DFontKeyStyle

Mask to encode the font style index of the A3DFontKeyData structure into the A3DTessMarkupData structure.

Expands to

0xFF000000
kA3DFontOverlined

Overlined.

Expands to

0x20
kA3DFontStretched

Stretched.

In case the font used is not the original font, it indicates that the text needs to be stretched to fit its bounding box.

Expands to

0x40
kA3DFontStrikedOut

Striked-out.

Expands to

0x10
kA3DFontUnderlined

Underlined.

Expands to

0x08
kA3DFontWired

Wired.

Indicates that the original font is a wireframe font.

Expands to

0x80
kA3DGraphicsFatherHeritColor

Color / material inheritance.

Expands to

0x0010
kA3DGraphicsFatherHeritLayer

Layer inheritance.

Expands to

0x0040
kA3DGraphicsFatherHeritLinePattern

Line pattern inheritance.

Expands to

0x0400
kA3DGraphicsFatherHeritLineWidth

Line width inheritance.

Expands to

0x1000
kA3DGraphicsFatherHeritShow

Show inheritance.

Expands to

0x0004
kA3DGraphicsFatherHeritTransparency

Transparency inheritance.

Expands to

0x0100
kA3DGraphicsRemoved

Entity is removed.

As a result, the entity no longer appears in the tree.

Expands to

0x2000
kA3DGraphicsShow

Entity is shown.

Expands to

0x0001
kA3DGraphicsSonHeritColor

Color / material inheritance.

Expands to

0x0008
kA3DGraphicsSonHeritLayer

Layer inheritance.

Expands to

0x0020
kA3DGraphicsSonHeritLinePattern

Line pattern inheritance.

Expands to

0x0200
kA3DGraphicsSonHeritLineWidth

Line width inheritance.

Expands to

0x0800
kA3DGraphicsSonHeritShow

Show inheritance.

Expands to

0x0002
kA3DGraphicsSonHeritTransparency

Transparency inheritance.

Expands to

0x0080
kA3DMDTrailingToleranceConsistentDigitsMask

Mask that describes the display of trailing zeros in case of separate values for numerical tolerances.

22.1

This mask is used to interpret the content of the field m_iTrailing of A3DMDDimensionSimpleToleranceFormatData

Expands to

0b100
kA3DMarkupColorMask

Mask to encode color type entity.

Expands to

0x1600000
kA3DMarkupCylinderMask

Mask to encode cylinder type entity.

Expands to

0x1400000
kA3DMarkupExtraDataType

Mask to get the integer type of the entity.

Expands to

0x03E00000
kA3DMarkupFaceViewMask

Mask to encode face view mode.

Expands to

0x0C00000
kA3DMarkupFixedSizeMask

Mask to encode fixed size mode.

Expands to

0x1000000
kA3DMarkupFontMask

Mask to encode font type entity.

Expands to

0x1A00000
kA3DMarkupFrameDrawMask

Mask to encode frame draw mode.

Expands to

0x0E00000
kA3DMarkupHasFrame

The tessellation has a frame.

Expands to

0x02
kA3DMarkupIntegerMask

Integer mask to retrieve sizes.

Expands to

0x000FFFFF
kA3DMarkupIsExtraData

Bit to denote whether the current entity is extra data (neither matrix nor polyline).

Expands to

0x04000000
kA3DMarkupIsHidden

The tessellation is hidden.

Expands to

0x01
kA3DMarkupIsMatrix

Bit to denote whether the current entity is a matrix.

Expands to

0x08000000
kA3DMarkupIsNotModifiable

The tessellation is given and must not be modified.

Expands to

0x04
kA3DMarkupIsNotRotatable

The tessellation is not rotatable.

9.0

Expands to

0x20
kA3DMarkupIsOnTop

The tessellation is on top of geometry.

Expands to

0x10
kA3DMarkupIsZoomable

The tessellation is zoomable.

Expands to

0x08
kA3DMarkupLineStippleMask

Mask to encode line stipple type entity.

Expands to

0x1800000
kA3DMarkupLineWidthMask

Mask to encode line width type entity.

Expands to

0x2200000
kA3DMarkupPatternMask

Mask to encode pattern type entity.

Expands to

0x0000000
kA3DMarkupPictureMask

Mask to encode picture type entity.

Expands to

0x0200000
kA3DMarkupPointsMask

Mask to encode point type entities.

Expands to

0x1E00000
kA3DMarkupPolygonMask

Mask to encode polygonal type entity.

Expands to

0x2000000
kA3DMarkupQuadsMask

Mask to encode quads type entity.

Expands to

0x0600000
kA3DMarkupSymbolMask

Mask to encode symbol type entity.

Expands to

0x1200000
kA3DMarkupTextMask

Mask to encode text type entity.

Expands to

0x1C00000
kA3DMarkupTrianglesMask

Mask to encode triangles type entity.

Expands to

0x0400000
kA3DNoActiveSheet

No active sheet defined.

Expands to

~0
kA3DPBRAttributeNameAlphaCutOff

Name of the alpha cut-off attribute (kA3DModellerAttributeTypeReal value).

Expands to

"AlphaCutOff"
kA3DPBRAttributeNameAlphaMode

Name of the alpha mode attribute.

See Texture Applying Mode for the values.

Expands to

"AlphaMode"
kA3DPBRAttributeNameMetallicFactor

Name of the metallic factor attribute (kA3DModellerAttributeTypeReal value).

Expands to

"MetallicFactor"
kA3DPBRAttributeNameNormalTextureFactor

Name of the normal texture factor attribute (kA3DModellerAttributeTypeReal value).

Expands to

"NormalTextureFactor"
kA3DPBRAttributeNameOcclusionTextureFactor

Name of the occlusion texture factor attribute (kA3DModellerAttributeTypeReal value).

Expands to

"OcclusionTextureFactor"
kA3DPBRAttributeNameRoughnessFactor

Name of the roughness factor attribute (kA3DModellerAttributeTypeReal value).

Expands to

"RoughnessFactor"
kA3DPDFDocumentPermAccessible

Overrides kA3DPDFDocumentPermCopy to enable the Accessibility API.

If a document is saved in Rev2 format (Acrobat 4.0 compatible), only the kA3DPDFDocumentPermCopy bit is checked to determine the Accessibility API state.

Expands to

0x200
kA3DPDFDocumentPermAll

All permissions.

Expands to

0xFFFFFFFF
kA3DPDFDocumentPermCopy

The user can copy information from the document to the clipboard.

In the document restrictions, this corresponds to the Content Copying or Extraction entry.

Expands to

0x10
kA3DPDFDocumentPermDocAssembly

Overrides various kA3DPDFDocumentPermEdit bits and allows the following operations: page insert/delete/rotate and create bookmark and thumbnail.

Expands to

0x400
kA3DPDFDocumentPermEdit

The user can edit the document more than adding or modifying text notes (see also kA3DPDFDocumentPermEditNotes).

In the Document Security dialog, this corresponds to the Changing the Document entry.

Expands to

0x08
kA3DPDFDocumentPermEditNotes

The user can add, modify, and delete text notes (see also kA3DPDFDocumentPermEdit).

In the document restrictions, this corresponds to the Authoring Comments and Form Fields entry.

Expands to

0x20
kA3DPDFDocumentPermFillandSign

Overrides other kA3DPDFDocumentPerm bits.

It allows the user to fill in or sign existing form or signature fields.

Expands to

0x100
kA3DPDFDocumentPermFormSpawnTempl

This should be set if the user can spawn template pages.

This bit will allow page template spawning even if kA3DPDFDocumentPermEdit and kA3DPDFDocumentPermEditNotes are clear.

Expands to

0x20000
kA3DPDFDocumentPermFormSubmit

This should be set if the user can submit forms outside of the browser.

This bit is a supplement to kA3DPDFDocumentPermFillandSign.

Expands to

0x10000
kA3DPDFDocumentPermHighPrint

This bit is a supplement to kA3DPDFDocumentPermPrint.

If it is clear (disabled) only low quality printing (Print As Image) is allowed. On UNIX platforms where Print As Image doesn’t exist, printing is disabled.

Expands to

0x800
kA3DPDFDocumentPermNone

All visible permissions unallowed.

Expands to

(kA3DPDFDocumentPermAll - kA3DPDFDocumentPermSettable - kA3DPDFDocumentPermAccessible - kA3DPDFDocumentPermFillandSign - kA3DPDFDocumentPermDocAssembly)
kA3DPDFDocumentPermOpen

The user can open and decrypt the document.

Expands to

0x01
kA3DPDFDocumentPermOwner

The user is permitted to perform all operations, regardless of the permissions specified by the document.

Unless this permission is set, the document’s permissions will be reset to those in the document after a full save.

Expands to

0x8000
kA3DPDFDocumentPermPrint

The user can print the document.

Page Setup access is unaffected by this permission, since that affects Acrobat’s preferences - not the document’s. In the Document Security dialog, this corresponds to the Printing entry.

Expands to

0x04
kA3DPDFDocumentPermSaveAs

The user can perform a Save As….

If both kA3DPDFDocumentPermEdit and kA3DPDFDocumentPermEditNotes are disallowed, Save will be disabled but Save As… will be enabled. The Save As… menu item is not necessarily disabled even if the user is not permitted to perform a Save As…

Expands to

0x40
kA3DPDFDocumentPermSecure

The user can change the document’s security settings.

Expands to

0x02
kA3DPDFDocumentPermSettable

The OR of all operations that can be set by the user in the security restrictions (kA3DPDFDocumentPermPrint + kA3DPDFDocumentPermEdit + kA3DPDFDocumentPermCopy + kA3DPDFDocumentPermEditNotes).

Expands to

(kA3DPDFDocumentPermPrint + kA3DPDFDocumentPermEdit + kA3DPDFDocumentPermCopy + kA3DPDFDocumentPermEditNotes)
kA3DPDFDocumentPermUser

All permissions.

These values are to have all items unallowed, at least all items visible in Acrobat and Acrobat Reader dialog boxes.

Expands to

(kA3DPDFDocumentPermAll - kA3DPDFDocumentPermOpen - kA3DPDFDocumentPermSecure)
kA3DPDFFilterNativeViews

Native views are filtered using the kA3DGraphicsRemoved from A3DGraphicsData structure.

Expands to

0x04
kA3DPDFFilterPDFDefaultView

The PDF default view is filtered using the kA3DGraphicsRemoved from A3DGraphicsData structure.

Expands to

0x01
kA3DPDFFilterPDFViewsExceptDefault

The PDF views are filtered using the kA3DGraphicsRemoved from A3DGraphicsData structure, ony the default PDF is excluded.

Expands to

0x02
kA3DPDFFilterSubAssemblyViews

The PDF default views not on the root assembly are filtered using the kA3DGraphicsRemoved from A3DGraphicsData structure.

Expands to

0x08
kA3DPDFInterpolateAppearanceColor

Color is interpolated.

Expands to

0x00000002
kA3DPDFInterpolateAppearanceTransparency

Transparency is interpolated.

Expands to

0x00000004
kA3DPDFInterpolateCamera

Camera is interpolated.

Expands to

0x00000008
kA3DPDFInterpolateTransformationMatrix

Transformation matrix is interpolated.

Expands to

0x00000001
kA3DPDFNoFilter

All views, (the native views and the PDF views.

Expands to

0x00
kA3DPDFSaveCopy

Save a copy of the document.

If this flag is not used, the file is locked until A3DPDFDocumentClose is called.

Expands to

0x04
kA3DPDFSaveFull

Basic level (equivalent to a call to A3DPDFDocumentSaveEx()).

Expands to

0x00
kA3DPDFSaveOptimizeFonts

Adds optimization on fonts definition.

This can involve substantial memory and CPU overhead.

Expands to

0x02
kA3DPDFSaveOptimized

Adds misc optimizations for saving.

Expands to

0x01
kA3DPDFTableFor3DViewsAll

All views are stored in the table.

Expands to

0x02
kA3DPDFTableFor3DViewsComputePosters

The posters for views are automatically generated during table creation.

Expands to

0x04
kA3DPDFTableFor3DViewsCustom

The detail of views are passed as an argument to the function.

Expands to

0x01
kA3DPDFUnknownStreamIdentifier

Special identifier value for A3DStream3DPDFData.

1

Expands to

0
kA3DRhinoAttributeName3DMVersion

Constant for Rhino ‘3DM version’ attribute.

Expands to

"3DM version"
kA3DRhinoAttributeNameApplicationUUID

Constant for Rhino ‘application UUID’ attribute.

Expands to

"application UUID"
kA3DRhinoAttributeNameArchiveClassUUID

Constant for Rhino ‘archive class UUID’ attribute.

Expands to

"archive class UUID"
kA3DRhinoAttributeNameBufferData

Constant for Rhino ‘buffer data’ attribute.

Expands to

"buffer data"
kA3DRhinoAttributeNameDocumentUserStrings

Constant for Rhino ‘document user strings’ attribute.

Expands to

"document user strings"
kA3DRhinoAttributeNameModelObjectUUID

Constant for Rhino ‘model object UUID’ attribute.

Expands to

"model object UUID"
kA3DRhinoAttributeNameOpenNURBSVersion

Constant for Rhino ‘OpenNURBS version number’ attribute.

Expands to

"OpenNURBS version number"
kA3DRhinoAttributeNameRDKMaterialInstanceUUID

Constant for Rhino ‘RDK material instance UUID’ attribute.

Expands to

"RDK material instance UUID"
kA3DRhinoAttributeNameUnknownClassUUID

Constant for Rhino ‘unknown class UUID’ attribute.

Expands to

"unknown class UUID"
kA3DRhinoAttributeNameUserDataCopyCount

Constant for Rhino ‘user data copy count’ attribute.

Expands to

"user data copy count"
kA3DRhinoAttributeNameUserDataUUID

Constant for Rhino ‘user data UUID’ attribute.

Expands to

"user data UUID"
kA3DRhinoAttributeNameUserDataXForm

Constant for Rhino ‘user data xform’ attribute.

Expands to

"user data xform"
kA3DTess3DWireDataIsClosing

The current wire is closed.

Expands to

0x10000000
kA3DTess3DWireDataIsContinuous

Indicates that the last point of preceding wire should be linked with the first point of the current one.

Expands to

0x20000000
kA3DTessFaceDataNormalMask

Access to real value of number of entities.

Expands to

0x3FFFFFFF
kA3DTessFaceDataNormalSingle

Bit indicating normal behavior for OneNormal entities.

Expands to

0x40000000
kA3DTessFaceDataPolyface

Reserved for future use.

Expands to

0x0001
kA3DTessFaceDataPolyfaceOneNormal

Reserved for future use.

Expands to

0x0010
kA3DTessFaceDataPolyfaceOneNormalTextured

Reserved for future use.

Expands to

0x1000
kA3DTessFaceDataPolyfaceTextured

Reserved for future use.

Expands to

0x0100
kA3DTessFaceDataTriangle

Unique triangle.

One triangle described using 6 indexes forming 3 `{Normal, Point} pairs: { Normal1, Point1, Normal2, Point2, Normal3, Point3 }

Expands to

0x0002
kA3DTessFaceDataTriangleFan

Triangle fan.

The layout consists in 2*N indices where N is the number of points. Each vertex is described as a {Normal, Point} pair.

{ Normal1, Point1, Normal2, Point2, ..., ..., NormalN, PointN }

Expands to

0x0004
kA3DTessFaceDataTriangleFanOneNormal

Triangle fan where the normal is defined either globally or per-point.

The normal is globally defined if kA3DTessFaceDataNormalSingle flag is set. In that case the layout consists in N+1 indices, where N is the number of points:

{ Normal, Point1, Point2, ..., PointN }

If not set, the normal indices are set per-point. The layout is the same as kA3DTessFaceDataTriangleFan.

Expands to

0x0040
kA3DTessFaceDataTriangleFanOneNormalTextured

Triangle fan with texture coordinates where the normal is defined either globally or per-point.

This layout is similar to kA3DTessFaceDataTriangleFanOneNormal with the addition of texture coordinates indices before the point index.

The normal is globally defined if kA3DTessFaceDataNormalSingle flag is set. In that case the unique normal is defined first. Each point is then described using the following layout: {Textures..., Point}, where Textures... is the list of texture indices.

The number of texture indices per point is given by A3DTessFaceData::m_uiTextureCoordIndexesSize. Thus the number of indices in the element array is equal to N * (m_uiTextureCoordIndexesSize + 1) where N is the number of points.

For example, if there are two texture indices per point and two triangles (6 points), the layout will be a 24 wide array:

{
  Normal
  Texture1-1, Texture1-2, Point1,
  Texture2-1, Texture2-2, Point2,
  Texture3-1, Texture3-2, Point3,
  Texture4-1, Texture4-2, Point4,
  Texture5-1, Texture5-2, Point5,
  Texture6-1, Texture6-2, Point6
}

If kA3DTessFaceDataNormalSingle is not set, the layout is the same as kA3DTessFaceDataTriangleFanTextured.

Expands to

0x4000
kA3DTessFaceDataTriangleFanTextured

Triangle fan with texture coordinates.

This layout is similar to kA3DTessFaceDataTriangleFan with the addition of texture coordinates indices before the point index. Each point is then described using the following layout: {Normal, Textures..., Point}, where Textures... is the list of texture indices.

The number of texture indices per point is given by A3DTessFaceData::m_uiTextureCoordIndexesSize. Thus the number of indices in the element array is equal to N * (m_uiTextureCoordIndexesSize + 2) where N is the number of points.

For example, if there are two texture indices per point and two triangles (6 points), the layout will be a 24 wide array:

{
  Normal1, Texture1-1, Texture1-2, Point1,
  Normal2, Texture2-1, Texture2-2, Point2,
  Normal3, Texture3-1, Texture3-2, Point3,
  Normal4, Texture4-1, Texture4-2, Point4,
  Normal5, Texture5-1, Texture5-2, Point5,
  Normal6, Texture6-1, Texture6-2, Point6
}

Expands to

0x0400
kA3DTessFaceDataTriangleOneNormal

Unique triangle with one normal.

Unique triangle with one normal. It is described using 4 indices:

{ Normal, Point1, Point2, Point3 }

Expands to

0x0020
kA3DTessFaceDataTriangleOneNormalTextured

Unique triangle with texture coordinates and a globally defined normal.

This layout is similar to kA3DTessFaceDataTriangleOneNormal with the addition of texture coordinates indices before the point index. The unique normal is defined first. Each point is then described using the following layout: {Textures..., Point}, where Textures... is the list of texture indices.

The number of texture indices per point is given by A3DTessFaceData::m_uiTextureCoordIndexesSize. Thus the number of indices in the element array is equal to 4 + 3 * m_uiTextureCoordIndexesSize.

For example, if there are two texture indices per point, the layout will be a 12 wide array:

{
  Normal
  Texture1-1, Texture1-2, Point1,
  Texture2-1, Texture2-2, Point2,
  Texture3-1, Texture3-2, Point3,
}

Expands to

0x2000
kA3DTessFaceDataTriangleStripe

Triangle strip.

The layout consists in 2*N indices where N is the number of points. Each vertex is described as a {Normal, Point} pair.

{ Normal1, Point1, Normal2, Point2, ..., ..., NormalN, PointN }

Expands to

0x0008
kA3DTessFaceDataTriangleStripeOneNormal

Triangle strip where the normal is defined either globally or per-point.

The normal is globally defined if kA3DTessFaceDataNormalSingle flag is set. In that case the layout consists in N+1 indices, where N is the number of points:

{ Normal, Point1, Point2, ..., PointN }

If not set, the normal indices are set per-point. The layout is the same as kA3DTessFaceDataTriangleStripe.

Expands to

0x0080
kA3DTessFaceDataTriangleStripeOneNormalTextured

Triangle strip with texture coordinates where the normal is defined either globally or per-point.

This layout is similar to kA3DTessFaceDataTriangleStripeOneNormal with the addition of texture coordinates indices before the point index.

The normal is globally defined if kA3DTessFaceDataNormalSingle flag is set. In that case the unique normal is defined first. Each point is then described using the following layout: {Textures..., Point}, where Textures... is the list of texture indices.

The number of texture indices per point is given by A3DTessFaceData::m_uiTextureCoordIndexesSize. Thus the number of indices in the element array is equal to N * (m_uiTextureCoordIndexesSize + 1) where N is the number of points.

For example, if there are two texture indices per point and two triangles (6 points), the layout will be a 24 wide array:

{
  Normal
  Texture1-1, Texture1-2, Point1,
  Texture2-1, Texture2-2, Point2,
  Texture3-1, Texture3-2, Point3,
  Texture4-1, Texture4-2, Point4,
  Texture5-1, Texture5-2, Point5,
  Texture6-1, Texture6-2, Point6
}

If kA3DTessFaceDataNormalSingle is not set, the layout is the same as kA3DTessFaceDataTriangleStripeTextured.

Expands to

0x8000
kA3DTessFaceDataTriangleStripeTextured

Triangle strip with texture coordinates.

This layout is similar to kA3DTessFaceDataTriangleStripe with the addition of texture coordinates indices before the point index. Each point is then described using the following layout: {Normal, Textures..., Point}, where Textures... is the list of texture indices.

The number of texture indices per point is given by A3DTessFaceData::m_uiTextureCoordIndexesSize. Thus the number of indices in the element array is equal to N * (m_uiTextureCoordIndexesSize + 2) where N is the number of points.

For example, if there are two texture indices per point and two triangles (6 points), the layout will be a 24 wide array:

{
  Normal1, Texture1-1, Texture1-2, Point1,
  Normal2, Texture2-1, Texture2-2, Point2,
  Normal3, Texture3-1, Texture3-2, Point3,
  Normal4, Texture4-1, Texture4-2, Point4,
  Normal5, Texture5-1, Texture5-2, Point5,
  Normal6, Texture6-1, Texture6-2, Point6
}

Expands to

0x0800
kA3DTessFaceDataTriangleTextured

Unique triangle with texture coordinates.

This layout is similar to kA3DTessFaceDataTriangle with the addition of texture coordinates indices before the point index. Each point is then described using the following layout: {Normal, Textures..., Point}, where Textures... is the list of texture indices.

The number of texture indices per point is given by A3DTessFaceData::m_uiTextureCoordIndexesSize. Thus the number of indices in the element array is equal to 6 + 3 * m_uiTextureCoordIndexesSize.

For example, if there are two texture indices per point, the layout will be a 12 wide array:

{
  Normal1, Texture1-1, Texture1-2, Point1,
  Normal2, Texture2-1, Texture2-2, Point2,
  Normal3, Texture3-1, Texture3-2, Point3,
}

Expands to

0x0200
kA3DTessFaceDataWireIsClosing

Current wire is closing on first point.

Expands to

0x8000
kA3DTessFaceDataWireIsNotDrawn

Current wire is not to be drawn.

Expands to

0x4000
kA3DTextureApplyingModeAlphaTest

Alpha Test Enabled.

Expands to

0x0002
kA3DTextureApplyingModeLighting

Lighting Enabled.

Expands to

0x0001
kA3DTextureApplyingModeNone

All states are disabled.

Expands to

0x0000
kA3DTextureApplyingModeVertexColor

Use Vertex Color (combine a texture with one-color-per-vertex mode).

Expands to

0x0004
kA3DTextureMappingAmbient

Ambient texture mapping attribute.

Not yet supported.

Expands to

0x0080
kA3DTextureMappingBump

Bump texture mapping attribute.

Not yet supported.

Expands to

0x0002
kA3DTextureMappingClearcoat

Clearcoat texture mapping attribute.

23.0

Expands to

0x8000
kA3DTextureMappingClearcoatNormal

Packed clearcoat-normal mapping attribute.

23.0

Expands to

kA3DTextureMappingClearcoat | kA3DTextureMappingNormal
kA3DTextureMappingClearcoatRoughness

Packed clearcoat-roughness mapping attribute.

23.0

Expands to

kA3DTextureMappingClearcoat | kA3DTextureMappingRoughness
kA3DTextureMappingComponentsAlpha

Alpha component.

Expands to

0x0008
kA3DTextureMappingComponentsBlue

Blue component.

Expands to

0x0004
kA3DTextureMappingComponentsGreen

Green component.

Expands to

0x0002
kA3DTextureMappingComponentsRed

Defines which component(s) must be used to map a texture These values can be bitwise combined to select several components at once.

2.0 Red component.

Expands to

0x0001
kA3DTextureMappingComponentsRgb

Full Red-Green-Blue components.

Expands to

0x0007
kA3DTextureMappingComponentsRgba

Full Red-Green-Blue-Alpha components.

Expands to

0x000f
kA3DTextureMappingCubicalReflection

Cubical reflection texture mapping attribute (used for environment mapping).

Expands to

0x0010
kA3DTextureMappingDiffuse

Diffuse texture mapping attribute.

Default value.

Expands to

0x0001
kA3DTextureMappingDiffuseGlossiness

Packed diffuse-glossiness mapping attribute.

23.0

Expands to

kA3DTextureMappingDiffuse | kA3DTextureMappingGlossiness
kA3DTextureMappingEmission

Emission texture mapping attribute.

Not yet supported.

Expands to

0x0100
kA3DTextureMappingGlossiness

Glossiness texture mapping attribute.

23.0

Expands to

0x2000
kA3DTextureMappingMetalness

Metalness texture mapping attribute (used in Physically-Based Rendering).

11.2

Expands to

0x0400
kA3DTextureMappingMetalnessRoughness

Packed metalness-roughness mapping attribute.

11.2

Expands to

kA3DTextureMappingMetalness | kA3DTextureMappingRoughness
kA3DTextureMappingMetalnessRoughnessOcclusion

Packed metalness-roughness-occlusion mapping attribute.

11.2

Expands to

kA3DTextureMappingMetalnessRoughness | kA3DTextureMappingOcclusion
kA3DTextureMappingNormal

Normal texture mapping attribute.

11.2

Expands to

0x0200
kA3DTextureMappingOcclusion

Occlusion mapping attribute.

11.2

Expands to

0x1000
kA3DTextureMappingOpacity

Opacity texture mapping attribute.

Not yet supported.

Expands to

0x0004
kA3DTextureMappingRefraction

Refraction texture mapping attribute.

Not yet supported.

Expands to

0x0020
kA3DTextureMappingRoughness

Roughness mapping attribute (used in Physically-Based Rendering).

11.2

Expands to

0x0800
kA3DTextureMappingSpecular

Specular texture mapping attribute.

Not yet supported.

Expands to

0x0040
kA3DTextureMappingSpecularColor

Specular color texture mapping attribute.

23.0

Expands to

0x4000
kA3DTextureMappingSpecularGlossiness

Packed specular-glossiness mapping attribute.

23.0

Expands to

kA3DTextureMappingSpecular | kA3DTextureMappingGlossiness
kA3DTextureMappingSphericalReflection

Spherical reflection texture mapping attribute (used for environment mapping).

Expands to

0x0008
kA3DTransformationIdentity

Identity transformation.

Expands to

0x00
kA3DTransformationMirror

Mirror transformation.

Expands to

0x04
kA3DTransformationNonUniformScale

Non-uniform scale transformation.

Expands to

0x10
kA3DTransformationRotate

Rotate transformation.

Expands to

0x02
kA3DTransformationScale

Scale transformation.

Expands to

0x08
kA3DTransformationTranslate

Translate transformation.

Expands to

0x01
kA3DTypeAdditionalPrcData

Types for PRC user data.

Expands to

( kA3DTypeRoot + 10000 )
kA3DTypeAsm

Types for PRC assembly.

Expands to

( kA3DTypeRoot + 300 )
kA3DTypeBIM

Types for PRC BIM data.

Expands to

( kA3DTypeRoot + 3000 )
kA3DTypeCrv

Types for PRC geometrical curves.

Expands to

( kA3DTypeRoot +  10 )
kA3DTypeDrawing

Types for PRC drawing.

a3d_drawing_module

Expands to

( kA3DTypeRoot + 1300 )
kA3DTypeFRM

Types for PRC features.

Expands to

( kA3DTypeRoot + 2000 )
kA3DTypeFeat

Types for PRC feature entities.

Expands to

( kA3DTypeRoot + 1100 )
kA3DTypeGraph

Types for PRC graphics.

Expands to

( kA3DTypeRoot + 700 )
kA3DTypeMD

Types for PRC markup with definition.

Expands to

( kA3DTypeAdditionalPrcData + 100 )
kA3DTypeMath

Types for PRC mathematical operators.

Expands to

( kA3DTypeRoot + 900 )
kA3DTypeMisc

Types for PRC miscellaneous data.

Expands to

( kA3DTypeRoot + 200 )
kA3DTypeMkp

Types for PRC markup.

Expands to

( kA3DTypeRoot + 500 )
kA3DTypeNonePRCData

Types for PRC user data.

Expands to

( kA3DTypeAdditionalPrcData + 1000
kA3DTypePDFField

Abstract Types for fields.

Expands to

( kA3DTypePDFWidgetRoot +  1 )
kA3DTypePDFHighLevelWidget

Abstract Types for High Level widgets.

Expands to

( kA3DTypePDFWidgetRoot +  20 )
kA3DTypePDFWidgetRoot

This type does not correspond to any widget.

Expands to

0
kA3DTypeRi

Types for PRC representation items.

a3d_geometry_module

Expands to

( kA3DTypeRoot + 230 )
kA3DTypeRoot

This type does not correspond to any entity.

Expands to

0
kA3DTypeSurf

Types for PRC geometrical surfaces.

Expands to

( kA3DTypeRoot +  75 )
kA3DTypeTess

Types for PRC tessellation.

Expands to

( kA3DTypeRoot + 170 )
kA3DTypeTopo

Types for PRC topology.

Expands to

( kA3DTypeRoot + 140 )
kA3DWebOfflineDefaultOptions

Default options set when initializing the flags.

Expands to

(kA3DWebOfflineShow3DToolbar | kA3DWebOfflineShow3DModelView)
kA3DWebOfflineShow3DModelView

The 3D Model View is displayed for each Annotation 3D.

Expands to

0x000002
kA3DWebOfflineShow3DToolbar

These flags are used to toggle on and off elements when exporting to HTML.

A3DRWHtmlOfflineData

A3DRWHtmlOfflineData::m_uiOptionFlags

12.0 The 3D Tool bar is displayed for each Annotation 3D.

Expands to

0x000001
kA3DWebOfflineShowViewNavigation

A widget to navigate through views is displayed for each Annotation 3D.

Expands to

0x000004
kA3DWebOutFormatHtml

Output format flag when exporting for web.

12.0 Annotation 3D are exported into html files.

Expands to

0x01
kA3DWebOutFormatPrc

Annotation 3D are exported into prc files (only needed to integrate Communicator in streaming mode).

Expands to

0x04