A3DSDKRepItems.h

Header file for representation item entities.

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

A3DRiRepresentationItemData

Representation Item Structure.

A3DRiSetData

Set structure.

A3DRiPointSetData

PointSet structure.

A3DRiDirectionData

Direction structure.

A3DRiCoordinateSystemData

Coordinate System structure.

A3DRiCurveData

RiCurve structure.

A3DRiPlaneData

RiPlane structure.

A3DRiBrepModelData

BrepModel structure.

A3DRiPolyBrepModelData

PolyBrepModel structure.

A3DRiPolyWireData

PolyWire structure.

Functions

A3DRiRepresentationItemGet()

Populates the A3DRiRepresentationItemData structure.

A3DRiRepresentationItemSet()

Sets a previously created A3DRiRepresentationItem with an A3DRiRepresentationItemData structure.

A3DRiRepresentationItemDeepCopy()

Create a new representation item by making a deep copy.

A3DRiRepresentationItemComputeTessellation()

Calculates the tessellation of a previously created A3DRiRepresentationItem with an A3DRWParamsTessellationData parameters.

A3DRiReleaseTessellation()

Function to release the tessellation stored on the representation item.

A3DRiRepresentationItemEditCoordinateSystem()

Function to edit the coordinate system of a representation item.

A3DRiSetGet()

Populates the A3DRiSetData structure.

A3DRiSetCreate()

Creates an A3DRiSet from A3DRiSetData structure.

A3DRiSetEdit()

Replaces the old data of an A3DRiSet with the new A3DRiSetData structure.

A3DRiPointSetGet()

Populates the A3DRiPointSetData structure.

A3DRiPointSetCreate()

Creates an A3DRiPointSet from an A3DRiPointSetData structure.

A3DRiPointSetEdit()

Replaces the old data of an A3DRiPointSet with the new A3DRiPointSetData structure.

A3DRiDirectionGet()

Populates the A3DRiDirectionData structure.

A3DRiDirectionCreate()

Creates an A3DRiDirection from an A3DRiDirectionData structure.

A3DRiDirectionEdit()

Modifies an A3DRiDirection from an A3DRiDirectionData structure.

A3DRiCoordinateSystemGet()

Populates the A3DRiCoordinateSystemData structure.

A3DRiCoordinateSystemCreate()

Creates an A3DRiCoordinateSystem from an A3DRiCoordinateSystemData structure.

A3DRiCoordinateSystemEdit()

Modifies an A3DRiCoordinateSystem from an A3DRiCoordinateSystemData structure.

A3DRiCurveGet()

Populates the A3DRiCurveData structure.

A3DRiCurveCreate()

Creates an A3DRiCurve from an A3DRiCurveData structure.

A3DRiCurveEdit()

Modifies an A3DRiCurve from an A3DRiCurveData structure.

A3DRiCurveSupportGet()

Get the geometrical element used to build the A3DRiCurve .

A3DRiPlaneGet()

Populates the A3DRiPlaneData structure.

A3DRiPlaneCreate()

Creates an A3DSurfPlane from an A3DRiPlaneData structure.

A3DRiPlaneEdit()

Modifies an A3DSurfPlane from an A3DRiPlaneData structure.

A3DRiPlaneSupportGet()

Get the geometrical element used to build the A3DRiPlane .

A3DRiBrepModelGet()

Populates the A3DRiBrepModelData structure.

A3DRiBrepModelCreate()

Creates an A3DRiBrepModel from an A3DRiBrepModelData structure.

A3DRiBrepModelEdit()

Modifies an A3DRiBrepModel from an A3DRiBrepModelData structure.

A3DRiPolyBrepModelGet()

Populates the A3DRiPolyBrepModelData structure.

A3DRiPolyBrepModelCreate()

Creates an A3DRiPolyBrepModel from an A3DRiPolyBrepModelData structure.

A3DRiPolyBrepModelEdit()

Modifies an A3DRiPolyBrepModel from an A3DRiPolyBrepModelData structure.

A3DRiPolyWireGet()

Populates the A3DRiPolyWireData structure.

A3DRiPolyWireCreate()

Creates an A3DRiPolyWire from an A3DRiPolyWireData structure.

Functions

A3DStatus A3DRiRepresentationItemGet(const A3DRiRepresentationItem *pRi, A3DRiRepresentationItemData *pData)

Populates the A3DRiRepresentationItemData structure.

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 A3DRiRepresentationItemSet(A3DRiRepresentationItem *pRi, const A3DRiRepresentationItemData *pData)

Sets a previously created A3DRiRepresentationItem with an A3DRiRepresentationItemData structure.

Version

2.0

Note

The A3DRiRepresentationItem entity is an abstract class. You cannot directly create this entity. Instead, use the appropriate derived function (such as A3DRiSetCreate or A3DRiPointSetCreate) to create a specific representation item entity. Then use this function to specify values in that entity base class. For example, this function specifies a value for the A3DRiRepresentationItemData::m_pCoordinateSystem member.

Return values
  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_SET_INCONSISTENT_EMPTY

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DRiRepresentationItemDeepCopy(const A3DRiRepresentationItem *pRi, A3DRiRepresentationItem **ppNewRi)

Create a new representation item by making a deep copy.

../_images/ri_deep_copy.jpg

Representation item data are copied, except coordinate system and surface are shared for optimization as for the rest of the model. There are some limitations:

  • ID is reset to 0, but topological item ids are kept.

  • Stored links are lost when a representation item is copied independently of the rest of the model. It’s up to the user to create new ones. An entity reference sets to describe the link between a datum plane and a body plane face will be removed.

  • Drawing block is not implemented.

  • Feature data on TfSet are not copied.

Version

11.2

Return values
  • A3D_INVALID_ENTITY_NULL

  • A3D_INVALID_ENTITY_TYPE

  • A3D_ERROR

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DRiRepresentationItemComputeTessellation(A3DRiRepresentationItem *pRi, const A3DRWParamsTessellationData *pTessellationParametersData)

Calculates the tessellation of a previously created A3DRiRepresentationItem with an A3DRWParamsTessellationData parameters.

Version

4.0

Note

If the A3DRiRepresentationItem entity has already been tessellated, the previous tessellation will be replaced by the new one. This function works for brep models and curves only.

Return values
  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_SET_INCONSISTENT_EMPTY

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DRiReleaseTessellation(A3DRiRepresentationItem *pRepresentationItem)

Function to release the tessellation stored on the representation item.

Version

5.0

Return values
  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DRiRepresentationItemEditCoordinateSystem(A3DRiCoordinateSystem *pNewCoordinateSystem, A3DRiRepresentationItem *pRepresentationItem)

Function to edit the coordinate system of a representation item.

Version

9.2

Return values
  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DRiSetGet(const A3DRiSet *pSet, A3DRiSetData *pData)

Populates the A3DRiSetData structure.

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 A3DRiSetCreate(const A3DRiSetData *pData, A3DRiSet **ppSet)

Creates an A3DRiSet from A3DRiSetData structure.

Version

2.0

Return values
  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_SET_INCONSISTENT_EMPTY

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DRiSetEdit(const A3DRiSetData *pData, A3DRiSet *pSet)

Replaces the old data of an A3DRiSet with the new A3DRiSetData structure.

Version

10.0

Return values
  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_SET_INCONSISTENT_EMPTY

  • A3D_INVALID_ENTITY_NULL

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DRiPointSetGet(const A3DRiPointSet *pPointSet, A3DRiPointSetData *pData)

Populates the A3DRiPointSetData structure.

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 A3DRiPointSetCreate(const A3DRiPointSetData *pData, A3DRiPointSet **ppPointSet)

Creates an A3DRiPointSet from an A3DRiPointSetData structure.

Version

2.0

Return values
  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DRiPointSetEdit(const A3DRiPointSetData *pData, A3DRiPointSet *pPointSet)

Replaces the old data of an A3DRiPointSet with the new A3DRiPointSetData structure.

Version

10.0

Return values
  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_INVALID_ENTITY_NULL

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DRiDirectionGet(const A3DRiDirection *pDirection, A3DRiDirectionData *pData)

Populates the A3DRiDirectionData structure.

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 A3DRiDirectionCreate(const A3DRiDirectionData *pData, A3DRiDirection **ppDirection)

Creates an A3DRiDirection from an A3DRiDirectionData structure.

Todo:

Not yet implemented

Version

2.0

Return values
  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DRiDirectionEdit(const A3DRiDirectionData *pData, A3DRiDirection *pDirection)

Modifies an A3DRiDirection from an A3DRiDirectionData structure.

Todo:

Not yet implemented

Version

10.0

Return values
  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_INVALID_ENTITY_NULL

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DRiCoordinateSystemGet(const A3DRiCoordinateSystem *pCoordinateSystem, A3DRiCoordinateSystemData *pData)

Populates the A3DRiCoordinateSystemData structure.

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 A3DRiCoordinateSystemCreate(const A3DRiCoordinateSystemData *pData, A3DRiCoordinateSystem **ppCoordinateSystem)

Creates an A3DRiCoordinateSystem from an A3DRiCoordinateSystemData structure.

Version

2.0

Return values
  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_SET_INCONSISTENT_EMPTY

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DRiCoordinateSystemEdit(const A3DRiCoordinateSystemData *pData, A3DRiCoordinateSystem *pCoordinateSystem)

Modifies an A3DRiCoordinateSystem from an A3DRiCoordinateSystemData structure.

Version

10.0

Return values
  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_SET_INCONSISTENT_EMPTY

  • A3D_INVALID_ENTITY_NULL

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DRiCurveGet(const A3DRiCurve *pRICrv, A3DRiCurveData *pData)

Populates the A3DRiCurveData structure.

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 A3DRiCurveCreate(const A3DRiCurveData *pData, A3DRiCurve **ppRICrv)

Creates an A3DRiCurve from an A3DRiCurveData structure.

Version

2.0

Return values
  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DRiCurveEdit(const A3DRiCurveData *pData, A3DRiCurve *pRICrv)

Modifies an A3DRiCurve from an A3DRiCurveData structure.

Version

10.0

Return values
  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_INVALID_ENTITY_NULL

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DRiCurveSupportGet(const A3DRiCurve *pRiCurve, A3DMiscMarkupLinkedItem **ppLinkedItem)

Get the geometrical element used to build the A3DRiCurve.

Version

6.0

Parameters
  • pRiCurve[in] The A3DRiCurve to query

  • ppLinkedItem[out] The entity used to build pRiCurve

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 A3DRiPlaneGet(const A3DRiPlane *pRiPlane, A3DRiPlaneData *pData)

Populates the A3DRiPlaneData structure.

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 A3DRiPlaneCreate(const A3DRiPlaneData *pData, A3DRiPlane **ppRIPlane)

Creates an A3DSurfPlane from an A3DRiPlaneData structure.

Version

2.0

Return values
  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DRiPlaneEdit(const A3DRiPlaneData *pData, A3DRiPlane *pRIPlane)

Modifies an A3DSurfPlane from an A3DRiPlaneData structure.

Version

10.0

Return values
  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_INVALID_ENTITY_NULL

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DRiPlaneSupportGet(const A3DRiPlane *pRiPlane, A3DMiscMarkupLinkedItem **ppLinkedItem)

Get the geometrical element used to build the A3DRiPlane.

Version

6.0

Parameters
  • pRiPlane[in] The A3DRiPlane to query

  • ppLinkedItem[out] The entity used to build pRiPlane

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 A3DRiBrepModelGet(const A3DRiBrepModel *pRIBrepModel, A3DRiBrepModelData *pData)

Populates the A3DRiBrepModelData structure.

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 A3DRiBrepModelCreate(const A3DRiBrepModelData *pData, A3DRiBrepModel **ppRIBrepModel)

Creates an A3DRiBrepModel from an A3DRiBrepModelData structure.

Version

2.0

Return values
  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DRiBrepModelEdit(const A3DRiBrepModelData *pData, A3DRiBrepModel *pRIBrepModel)

Modifies an A3DRiBrepModel from an A3DRiBrepModelData structure.

Version

10.0

Return values
  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_INVALID_ENTITY_NULL

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DRiPolyBrepModelGet(const A3DRiPolyBrepModel *pRIPolyBrepModel, A3DRiPolyBrepModelData *pData)

Populates the A3DRiPolyBrepModelData structure.

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 A3DRiPolyBrepModelCreate(const A3DRiPolyBrepModelData *pData, A3DRiPolyBrepModel **ppRIPolyBrepModel)

Creates an A3DRiPolyBrepModel from an A3DRiPolyBrepModelData structure.

Version

2.0

Return values
  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DRiPolyBrepModelEdit(const A3DRiPolyBrepModelData *pData, A3DRiPolyBrepModel *pRIPolyBrepModel)

Modifies an A3DRiPolyBrepModel from an A3DRiPolyBrepModelData structure.

Version

10.0

Return values
  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_INVALID_ENTITY_NULL

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DRiPolyWireGet(const A3DRiPolyWire *pRIPolyWire, A3DRiPolyWireData *pData)

Populates the A3DRiPolyWireData structure.

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 A3DRiPolyWireCreate(const A3DRiPolyWireData *pData, A3DRiPolyWire **ppRIPolyWire)

Creates an A3DRiPolyWire from an A3DRiPolyWireData structure.

Version

2.0

Return values
  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_SET_INCONSISTENT_EMPTY

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code