A3DSDKDraw.h

Header file for the draw module.

Author

Tech Soft 3D

Version

23.0

Date

January 2023

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

Content

Data Structures

A3DDrawCallbacksData

Structure for specifying callback functions for drawing.

Type definitions

A3DCallbackDrawPushMatrix

Pushes the current matrix onto the stack.

A3DCallbackDrawPopMatrix

Pops the matrix off the stack.

A3DCallbackDrawMultMatrix

Multiplies the matrix on the top of the stack by another matrix.

A3DCallbackDrawBegin

Begins drawing.

A3DCallbackDrawEnd

Ends drawing.

A3DCallbackDrawSetTessellationPoints

Returns all the points of a representation item tessellation.

A3DCallbackDrawProject

Projects the point.

A3DCallbackDrawUnProject

Un-projects the point.

A3DCallbackDrawTriangle

Draws a list of triangles.

A3DCallbackDrawTriangleFan

Draws a fan of triangles.

A3DCallbackDrawTriangleStripe

Draws a triangle strip.

A3DCallbackDrawTriangleOneNormal

Draws a list of triangles where each triangle has only one normal.

A3DCallbackDrawTriangleFanOneNormal

Draws a fan of triangles with one normal.

A3DCallbackDrawTriangleStripeOneNormal

Draws a triangle strip with one normal.

A3DCallbackDrawTriangleTextured

Draws a list of textured triangles.

A3DCallbackDrawTriangleFanTextured

Draws a fan of textured triangles.

A3DCallbackDrawTriangleStripeTextured

Draws a triangle strip.

A3DCallbackDrawTriangleOneNormalTextured

Draws a list of textured triangles where each triangle has only one normal.

A3DCallbackDrawTriangleFanOneNormalTextured

Draws a fan of textured triangles, where each triangle has only one normal.

A3DCallbackDrawTriangleStripeOneNormalTextured

Draws a triangle strip with one normal.

A3DCallbackDrawColor

Defines the color to be used for all subsequent entities.

A3DCallbackDrawMaterial

Defines the material to be used for all subsequent entities.

A3DCallbackDrawBeginMaterial

Store current materials of the environment.

A3DCallbackDrawEndMaterial

Restore materials of the environment previously stored.

A3DCallbackDrawGetDrawContext

Requests the projection, modelview matrix and the viewport.

A3DCallbackDrawMarkupTriangle

Draws a list of triangles without normals, for markups.

A3DCallbackDrawBeginFrameDraw

Sets the environment to draw with screen coordinates.

A3DCallbackDrawEndFrameDraw

Ends the draw with screen coordinates.

A3DCallbackDrawBeginFixedSize

Sets the environment to draw with a fixed size.

A3DCallbackDrawEndFixedSize

Ends the draw with fixed size.

A3DCallbackDrawCylinder

Draws a cylinder.

A3DCallbackDrawPolygon

Draws a polygon.

A3DCallbackDrawBeginLineWidth

Sets the environment to draw with a line width.

A3DCallbackDrawEndLineWidth

Ends the draw with a line width.

A3DCallbackDrawPoint

Draws a list of points.

A3DCallbackDrawFont

Defines a font.

A3DCallbackDrawBeginLineStipple

Sets the environment to draw with a line stipple.

A3DCallbackDrawEndLineStipple

Ends the draw with a line stipple.

A3DCallbackDrawSymbol

Draws a symbol at the 3D position.

A3DCallbackDrawPolyLine

Draws a polyline.

A3DCallbackDrawText

Draws a text at current position.

A3DCallbackDrawPattern

Draws a pattern.

A3DCallbackDrawPicture

Draws a picture at current position.

Functions

A3DDrawInitCallbacks()

Initializes the callbacks used for drawing.

A3DDraw()

Draws the model file entities, using the callbacks defined by A3DDrawInitCallbacks .

A3DDrawRepresentationItem()

Draws the representation item entities, using the callbacks defined by A3DDrawInitCallbacks .

A3DDrawMarkup()

Draws the markup item entities, using the callbacks defined by A3DDrawInitCallbacks .

A3DDrawGetBoundingBox()

Calculates the bounding box of the model file entity, without using any callback functions.

Type definitions

typedef void (*A3DCallbackDrawPushMatrix)(void)

Pushes the current matrix onto the stack.

Deprecated:

The Draw module is deprecated.

Version

2.0

typedef void (*A3DCallbackDrawPopMatrix)(void)

Pops the matrix off the stack.

Deprecated:

The Draw module is deprecated.

Version

2.0

typedef void (*A3DCallbackDrawMultMatrix)(const A3DDouble adMatrix[16])

Multiplies the matrix on the top of the stack by another matrix.

Deprecated:

The Draw module is deprecated.

Version

2.0

typedef void (*A3DCallbackDrawBegin)(A3DEDrawBeginEndType eType, const A3DUTF8Char *pcName, A3DUns32 uiTrianglesCount)

Begins drawing.

Deprecated:

The Draw module is deprecated.

Version

2.0 The pcName argument can be NULL if there is no name. The uiTriangleCount argument is meaningful only when the eType argument has a value of kA3DDrawBeginEndRepresentationItem; otherwise, its value is 0.

typedef void (*A3DCallbackDrawEnd)(A3DEDrawBeginEndType eType)

Ends drawing.

Deprecated:

The Draw module is deprecated.

Version

2.0

typedef void (*A3DCallbackDrawSetTessellationPoints)(const A3DVector3dData *pasPoint, A3DUns32 uiPointsSize)

Returns all the points of a representation item tessellation.

Deprecated:

The Draw module is deprecated.

Version

2.0

typedef void (*A3DCallbackDrawProject)(const A3DVector3dData *psPoint, A3DVector3dData *psResult)

Projects the point.

Deprecated:

The Draw module is deprecated.

Version

2.0

typedef void (*A3DCallbackDrawUnProject)(const A3DVector3dData *psPoint, A3DVector3dData *psResult)

Un-projects the point.

Deprecated:

The Draw module is deprecated.

Version

2.0

typedef void (*A3DCallbackDrawTriangle)(const A3DVector3dData *pasNormals, const A3DVector3dData *pasPoints, A3DUns32 uiPointsSize)

Draws a list of triangles.

Deprecated:

The Draw module is deprecated.

Each point of each triangle has its own normal.
Version

2.0

typedef void (*A3DCallbackDrawTriangleFan)(const A3DVector3dData *pasNormals, const A3DVector3dData *pasPoints, A3DUns32 uiPointsSize)

Draws a fan of triangles.

Deprecated:

The Draw module is deprecated.

Each point of the fan has its own normal.
Version

2.0

typedef void (*A3DCallbackDrawTriangleStripe)(const A3DVector3dData *pasNormals, const A3DVector3dData *pasPoints, A3DUns32 uiPointsSize)

Draws a triangle strip.

Deprecated:

The Draw module is deprecated.

Each point of the strip has its own normal.
Version

2.0

typedef void (*A3DCallbackDrawTriangleOneNormal)(const A3DVector3dData *pasNormals, const A3DVector3dData *pasPoints, A3DUns32 uiPointsSize)

Draws a list of triangles where each triangle has only one normal.

Deprecated:

The Draw module is deprecated.

Each triangle has only one normal. Therefore, the number of normals is uiPointsSize/3.
Version

2.0

typedef void (*A3DCallbackDrawTriangleFanOneNormal)(const A3DVector3dData *psNormal, const A3DVector3dData *pasPoints, A3DUns32 uiPointsSize)

Draws a fan of triangles with one normal.

Deprecated:

The Draw module is deprecated.

The fan has only one normal, psNormal.
Version

2.0

Version

2.0

typedef void (*A3DCallbackDrawTriangleStripeOneNormal)(const A3DVector3dData *psNormal, const A3DVector3dData *pasPoints, A3DUns32 uiPointsSize)

Draws a triangle strip with one normal.

Deprecated:

The Draw module is deprecated.

The strip has only one normal, which is identified by the psNormal argument.
Version

2.0

typedef void (*A3DCallbackDrawTriangleTextured)(const A3DVector3dData *pasNormals, const A3DVector3dData *pasPoints, A3DUns32 uiPointsSize)

Draws a list of textured triangles.

Deprecated:

The Draw module is deprecated.

Each point of each triangle has its own normal.
Version

2.0

Note

Textures are not yet implemented.

typedef void (*A3DCallbackDrawTriangleFanTextured)(const A3DVector3dData *pasNormals, const A3DVector3dData *pasPoints, A3DUns32 uiPointsSize)

Draws a fan of textured triangles.

Deprecated:

The Draw module is deprecated.

Each point of the fan has its own normal.
Version

2.0

Note

Textures are not yet implemented.

typedef void (*A3DCallbackDrawTriangleStripeTextured)(const A3DVector3dData *pasNormals, const A3DVector3dData *pasPoints, A3DUns32 uiPointsSize)

Draws a triangle strip.

Deprecated:

The Draw module is deprecated.

Each point of the strip has its own normal.
Version

2.0

Note

Textures are not yet implemented.

typedef void (*A3DCallbackDrawTriangleOneNormalTextured)(const A3DVector3dData *pasNormals, const A3DVector3dData *pasPoints, A3DUns32 uiPointsSize)

Draws a list of textured triangles where each triangle has only one normal.

Deprecated:

The Draw module is deprecated.

Each triangle has only one normal. Therefore, the number of normals is uiPointsSize/3.
Version

2.0

Note

Textures are not yet implemented.

typedef void (*A3DCallbackDrawTriangleFanOneNormalTextured)(const A3DVector3dData *psNormal, const A3DVector3dData *pasPoints, A3DUns32 uiPointsSize)

Draws a fan of textured triangles, where each triangle has only one normal.

Deprecated:

The Draw module is deprecated.

The fan has only one normal, which is psNormal.
Version

2.0

Note

Textures are not yet implemented.

typedef void (*A3DCallbackDrawTriangleStripeOneNormalTextured)(const A3DVector3dData *psNormal, const A3DVector3dData *pasPoints, A3DUns32 uiPointsSize)

Draws a triangle strip with one normal.

Deprecated:

The Draw module is deprecated.

The strip has only one normal, which is returned in the psNormal argument.
Version

2.0

Note

Textures are not yet implemented.

typedef void (*A3DCallbackDrawColor)(const A3DDouble adPoints[3])

Defines the color to be used for all subsequent entities.

Deprecated:

The Draw module is deprecated.

Version

6.1

typedef void (*A3DCallbackDrawMaterial)(A3DEDrawMaterialType eType, const A3DDouble *pdValues, A3DUns32 uiValuesSize)

Defines the material to be used for all subsequent entities.

Deprecated:

The Draw module is deprecated.

Version

2.0

typedef void (*A3DCallbackDrawBeginMaterial)(void)

Store current materials of the environment.

Deprecated:

The Draw module is deprecated.

Version

2.0

typedef void (*A3DCallbackDrawEndMaterial)(void)

Restore materials of the environment previously stored.

Deprecated:

The Draw module is deprecated.

Version

2.0

typedef void (*A3DCallbackDrawGetDrawContext)(A3DDouble adProjection[16], A3DDouble adModelView[16], A3DInt32 aiViewport[4])

Requests the projection, modelview matrix and the viewport.

(See classical Open GL definition for more information.)

Deprecated:

The Draw module is deprecated.

Version

2.0

typedef void (*A3DCallbackDrawMarkupTriangle)(const A3DDouble *pdPoints, A3DUns32 uiPointSize)

Draws a list of triangles without normals, for markups.

Deprecated:

The Draw module is deprecated.

Version

2.0

typedef void (*A3DCallbackDrawBeginFrameDraw)(const A3DVector3dData *psPoint3d, A3DBool bIsZoomable, A3DDouble dFixedSize)

Sets the environment to draw with screen coordinates.

Deprecated:

The Draw module is deprecated.

Version

2.0

typedef void (*A3DCallbackDrawEndFrameDraw)(void)

Ends the draw with screen coordinates.

Deprecated:

The Draw module is deprecated.

Version

2.0

typedef void (*A3DCallbackDrawBeginFixedSize)(const A3DVector3dData *psPoint3d)

Sets the environment to draw with a fixed size.

Deprecated:

The Draw module is deprecated.

Version

2.0

typedef void (*A3DCallbackDrawEndFixedSize)(void)

Ends the draw with fixed size.

Deprecated:

The Draw module is deprecated.

Version

2.0

typedef void (*A3DCallbackDrawCylinder)(A3DDouble dBaseRadius, A3DDouble dTopRadius, A3DDouble dHeight)

Draws a cylinder.

Deprecated:

The Draw module is deprecated.

Version

2.0

typedef void (*A3DCallbackDrawPolygon)(const A3DDouble *pdPoints, A3DUns32 uiPointSize)

Draws a polygon.

Deprecated:

The Draw module is deprecated.

Version

2.0

typedef void (*A3DCallbackDrawBeginLineWidth)(A3DDouble dWidth)

Sets the environment to draw with a line width.

Deprecated:

The Draw module is deprecated.

Version

2.0

typedef void (*A3DCallbackDrawEndLineWidth)(void)

Ends the draw with a line width.

Deprecated:

The Draw module is deprecated.

Version

2.0

typedef void (*A3DCallbackDrawPoint)(const A3DDouble *pdPoints, A3DUns32 uiPointSize)

Draws a list of points.

Deprecated:

The Draw module is deprecated.

Version

2.0

typedef void (*A3DCallbackDrawFont)(const A3DFontKeyData *psFontKeyData)

Defines a font.

Deprecated:

The Draw module is deprecated.

Version

2.0

typedef void (*A3DCallbackDrawBeginLineStipple)(const A3DGraphStyleData *psGraphStyleData)

Sets the environment to draw with a line stipple.

Deprecated:

The Draw module is deprecated.

Version

2.0

typedef void (*A3DCallbackDrawEndLineStipple)(void)

Ends the draw with a line stipple.

Deprecated:

The Draw module is deprecated.

Version

2.0

typedef void (*A3DCallbackDrawSymbol)(const A3DGraphVPicturePatternData *psPatternData, const A3DVector3dData *psPosition)

Draws a symbol at the 3D position.

Deprecated:

The Draw module is deprecated.

Version

2.0

typedef void (*A3DCallbackDrawPolyLine)(const A3DDouble *pdPoints, A3DUns32 uiPointSize)

Draws a polyline.

Deprecated:

The Draw module is deprecated.

Version

2.0

typedef void (*A3DCallbackDrawText)(const A3DUTF8Char *pcBuffer, A3DDouble dWidth, A3DDouble dHeight)

Draws a text at current position.

Deprecated:

The Draw module is deprecated.

Version

2.0

typedef void (*A3DCallbackDrawPattern)(A3DUns32 uiLoopsSize, A3DUns32 uiPatternId, A3DUns32 uiFilledMode, A3DUns32 uiBehaviour, const A3DDouble *pdPoints, const A3DUns32 *puiLoopsPointSize)

Draws a pattern.

Deprecated:

The Draw module is deprecated.

Version

2.0

typedef void (*A3DCallbackDrawPicture)(const A3DGraphPictureData *psPictureData)

Draws a picture at current position.

Deprecated:

The Draw module is deprecated.

Version

2.0

Functions

A3DStatus A3DDrawInitCallbacks(A3DDrawCallbacksData *psCallbacks)

Initializes the callbacks used for drawing.

Deprecated:

The Draw module is deprecated.

Version

2.0

Return values
  • A3D_INITIALIZE_NOT_CALLED

  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_INVALID_ENTITY_NULL

  • A3D_INVALID_ENTITY_TYPE

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DDraw(const A3DAsmModelFile *pModelFile, A3DUns32 uiDrawFlags)

Draws the model file entities, using the callbacks defined by A3DDrawInitCallbacks.

Deprecated:

The Draw module is deprecated.

To set the uiDrawFlags argument, use the flags defined in Flags for Drawing Model File Entities.
Version

2.0

Return values
  • A3D_INITIALIZE_NOT_CALLED

  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_INVALID_ENTITY_NULL

  • A3D_INVALID_ENTITY_TYPE

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DDrawRepresentationItem(const A3DRiRepresentationItem *pRepItem, const A3DMiscCascadedAttributes *pFatherAttr)

Draws the representation item entities, using the callbacks defined by A3DDrawInitCallbacks.

Deprecated:

The Draw module is deprecated.

Version

2.0

Return values
  • A3D_INITIALIZE_NOT_CALLED

  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_INVALID_ENTITY_NULL

  • A3D_INVALID_ENTITY_TYPE

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DDrawMarkup(const A3DMkpMarkup *pMarkup, const A3DMiscCascadedAttributes *pFatherAttr)

Draws the markup item entities, using the callbacks defined by A3DDrawInitCallbacks.

Deprecated:

The Draw module is deprecated.

Version

2.0

Return values
  • A3D_INITIALIZE_NOT_CALLED

  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_INVALID_ENTITY_NULL

  • A3D_INVALID_ENTITY_TYPE

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DDrawGetBoundingBox(const A3DAsmModelFile *pModelFile, A3DBoundingBoxData *psBoundingBox, A3DUns32 uiDrawFlags)

Calculates the bounding box of the model file entity, without using any callback functions.

Deprecated:

The Draw module is deprecated.

To set the uiDrawFlags argument, use the flags defined in Flags for Drawing Model File Entities.
Version

2.0

Return values
  • A3D_INITIALIZE_NOT_CALLED

  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_INVALID_ENTITY_NULL

  • A3D_INVALID_ENTITY_TYPE

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code