A3DSDKGeometrySrf.h

Header file for surface 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

A3DSurfNurbsData

Nurbs surface structure.

A3DSurfSphereData

Structure for representing a spherical surface.

A3DSurfCylinderData

Structure for representing a cylindrical surface.

A3DSurfTorusData

Structure for defining toric surfaces.

A3DSurfRevolutionData

Revolution structure.

A3DSurfExtrusionData

Extrusion structure.

A3DSurfOffsetData

Offset structure.

A3DSurfPlaneData

Surface Plane structure.

A3DSurfBlend01Data

Blend01 structure.

A3DSurfBlend02Data

Blend02 structure.

A3DSurfBlend03Data

Blend03 structure.

A3DSurfConeData

Structure for describing conical surfaces.

A3DSurfCylindricalData

Structure for defining a cylindrical-space surface.

A3DSurfRuledData

Ruled surface structure.

A3DSurfPipeData

Pipe structure.

A3DSurfTransformData

Transform surface structure.

A3DSurfFromCurvesData

Surface from curves structure.

Functions

A3DSurfNurbsGet()

Populates the A3DSurfNurbsData structure.

A3DSurfNurbsCreate()

Creates an A3DSurfNurbs from an A3DSurfNurbsData structure.

A3DSurfBaseGetAsNurbs()

Populates the A3DSurfNurbsData structure from any type of A3DSurfBase .

A3DSurfBaseWithDomainGetAsNurbs()

Populates the A3DSurfNurbsData structure from any type of A3DSurfBase and an optional restriction domain A3DDomainData .

A3DSurfSphereGet()

Populates the A3DSurfSphereData structure.

A3DSurfSphereCreate()

Creates an A3DSurfSphere from an A3DSurfSphereData structure.

A3DSurfCylinderGet()

Populates the A3DSurfCylinderData structure.

A3DSurfCylinderCreate()

Creates an A3DSurfCylinder from an A3DSurfCylinderData structure.

A3DSurfTorusGet()

Populates the A3DSurfTorusData structure.

A3DSurfTorusCreate()

Creates an A3DSurfTorus from an A3DSurfTorusData structure.

A3DSurfRevolutionGet()

Populates the A3DSurfRevolutionData structure.

A3DSurfRevolutionCreate()

Creates an A3DSurfRevolution from an A3DSurfRevolutionData structure.

A3DSurfExtrusionGet()

Populates the A3DSurfExtrusionData structure.

A3DSurfExtrusionCreate()

Creates an A3DSurfExtrusion from an A3DSurfExtrusionData structure.

A3DSurfOffsetGet()

Populates the A3DSurfOffsetData structure.

A3DSurfOffsetCreate()

Creates an A3DSurfOffset from an A3DSurfOffsetData structure.

A3DSurfPlaneGet()

Populates the A3DSurfPlaneData structure from any type of A3DSurfPlane .

A3DSurfPlaneCreate()

Creates the A3DSurfPlane from A3DSurfPlaneData structure.

A3DSurfBlend01Get()

Populates the A3DSurfBlend01Data structure.

A3DSurfBlend01Create()

Creates an A3DSurfBlend01 from an A3DSurfBlend01Data structure.

A3DSurfBlend02Get()

Populates the A3DSurfBlend02Data structure.

A3DSurfBlend02Create()

Creates an A3DSurfBlend02 from an A3DSurfBlend02Data structure.

A3DSurfBlend03Get()

Populates the A3DSurfBlend03Data structure.

A3DSurfBlend03Create()

Creates an A3DSurfBlend03 from an A3DSurfBlend03Data structure.

A3DSurfConeGet()

Populates the A3DSurfConeData structure.

A3DSurfConeCreate()

Creates an A3DSurfCone from an A3DSurfConeData structure.

A3DSurfCylindricalGet()

Populates the A3DSurfCylindricalData structure.

A3DSurfCylindricalCreate()

Creates an A3DSurfCylindrical from an A3DSurfCylindricalData structure.

A3DSurfRuledGet()

Populates the A3DSurfRuledData structure.

A3DSurfRuledCreate()

Creates an A3DSurfRuled from an A3DSurfRuledData structure.

A3DSurfPipeGet()

Populates the A3DSurfPipeData structure.

A3DSurfPipeCreate()

Creates an A3DSurfPipe from an A3DSurfPipeData structure.

A3DSurfTransformGet()

Populates the A3DSurfTransformData structure.

A3DSurfTransformCreate()

Creates an A3DSurfTransform from an A3DSurfTransformData structure.

A3DSurfFromCurvesGet()

Populates the A3DSurfFromCurvesData structure.

A3DSurfFromCurvesCreate()

Creates an A3DSurfFromCurves from an A3DSurfFromCurvesData structure.

Functions

A3DStatus A3DSurfNurbsGet(const A3DSurfNurbs *pSrf, A3DSurfNurbsData *pData)

Populates the A3DSurfNurbsData 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 A3DSurfNurbsCreate(const A3DSurfNurbsData *pData, A3DSurfNurbs **ppSrf)

Creates an A3DSurfNurbs from an A3DSurfNurbsData structure.

Version

2.0

Return values
  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_INTERVAL_INCONSISTENT_DATA

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DSurfBaseGetAsNurbs(const A3DSurfBase *pSrf, A3DDouble dTolerance, A3DBool bUseSameParameterization, A3DSurfNurbsData *pData)

Populates the A3DSurfNurbsData structure from any type of A3DSurfBase.

Deprecated:

This structure will be deprecated with HE 2023. Please use A3DSurfBaseWithDomainGetAsNurbs instead.

Version

2.0

This structure must be freed with A3DSurfNurbsGet call.

Warning

This function can modify the parameterization for surface. You must treat related entities accordingly.

Warning

See note on Tolerance explanation at A3DCrvBaseGetAsNurbs definition.

Warning

This function can be called with any type of curve.

Return values
  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_INTERVAL_INCONSISTENT_DATA

  • A3D_SRF_NURBS_TOO_TINY_TOLERANCE

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DSurfBaseWithDomainGetAsNurbs(const A3DSurfBase *pSrf, const A3DDomainData *pOptDomain, A3DDouble dTolerance, A3DBool bUseSameParameterization, A3DSurfNurbsData *pData)

Populates the A3DSurfNurbsData structure from any type of A3DSurfBase and an optional restriction domain A3DDomainData.

This structure must be freed with A3DSurfNurbsGet call.

Version

14.2

Warning

This function can modify the parameterization for surface. You must treat related entities accordingly.

Warning

If pOptDomain is defined it must be contained by surface domaine.

Warning

See note on Tolerance explanation at A3DCrvBaseGetAsNurbs definition.

Warning

This function can be called with any type of curve.

Return values
  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_INTERVAL_INCONSISTENT_DATA

  • A3D_SRF_NURBS_TOO_TINY_TOLERANCE

  • A3D_SRF_INVALID_PARAMETERS

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DSurfSphereGet(const A3DSurfSphere *pSrf, A3DSurfSphereData *pData)

Populates the A3DSurfSphereData 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 A3DSurfSphereCreate(const A3DSurfSphereData *pData, A3DSurfSphere **ppSrf)

Creates an A3DSurfSphere from an A3DSurfSphereData structure.

Version

2.0

Warning

Associated transformation must be Identity

Warning

Trimming interval must be defined inside curve definition

Warning

Parameterization must have CoeffA = 1. and CoeffB = 0.

Return values
  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_INTERVAL_INCONSISTENT_DATA

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DSurfCylinderGet(const A3DSurfCylinder *pSrf, A3DSurfCylinderData *pData)

Populates the A3DSurfCylinderData 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 A3DSurfCylinderCreate(const A3DSurfCylinderData *pData, A3DSurfCylinder **ppSrf)

Creates an A3DSurfCylinder from an A3DSurfCylinderData 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 A3DSurfTorusGet(const A3DSurfTorus *pSrf, A3DSurfTorusData *pData)

Populates the A3DSurfTorusData 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 A3DSurfTorusCreate(const A3DSurfTorusData *pData, A3DSurfTorus **ppSrf)

Creates an A3DSurfTorus from an A3DSurfTorusData 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 A3DSurfRevolutionGet(const A3DSurfRevolution *pSrf, A3DSurfRevolutionData *pData)

Populates the A3DSurfRevolutionData 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 A3DSurfRevolutionCreate(const A3DSurfRevolutionData *pData, A3DSurfRevolution **ppSrf)

Creates an A3DSurfRevolution from an A3DSurfRevolutionData 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 A3DSurfExtrusionGet(const A3DSurfExtrusion *pSrf, A3DSurfExtrusionData *pData)

Populates the A3DSurfExtrusionData 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 A3DSurfExtrusionCreate(const A3DSurfExtrusionData *pData, A3DSurfExtrusion **ppSrf)

Creates an A3DSurfExtrusion from an A3DSurfExtrusionData 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 A3DSurfOffsetGet(const A3DSurfOffset *pSrf, A3DSurfOffsetData *pData)

Populates the A3DSurfOffsetData 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 A3DSurfOffsetCreate(const A3DSurfOffsetData *pData, A3DSurfOffset **ppSrf)

Creates an A3DSurfOffset from an A3DSurfOffsetData 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 A3DSurfPlaneGet(const A3DSurfPlane *pSrf, A3DSurfPlaneData *pData)

Populates the A3DSurfPlaneData structure from any type of A3DSurfPlane.

Version

2.0

Return values
  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_INTERVAL_INCONSISTENT_DATA

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DSurfPlaneCreate(const A3DSurfPlaneData *pData, A3DSurfPlane **ppSrf)

Creates the A3DSurfPlane from A3DSurfPlaneData structure.

Version

2.0

Return values
  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_SUCCESS

  • A3D_SRF_PLANE_CANNOT_CREATE_CANONICAL

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DSurfBlend01Get(const A3DSurfBlend01 *pSrf, A3DSurfBlend01Data *pData)

Populates the A3DSurfBlend01Data 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 A3DSurfBlend01Create(const A3DSurfBlend01Data *pData, A3DSurfBlend01 **ppSrf)

Creates an A3DSurfBlend01 from an A3DSurfBlend01Data 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 A3DSurfBlend02Get(const A3DSurfBlend02 *pSrf, A3DSurfBlend02Data *pData)

Populates the A3DSurfBlend02Data 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 A3DSurfBlend02Create(const A3DSurfBlend02Data *pData, A3DSurfBlend02 **ppSrf)

Creates an A3DSurfBlend02 from an A3DSurfBlend02Data 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 A3DSurfBlend03Get(const A3DSurfBlend03 *pSrf, A3DSurfBlend03Data *pData)

Populates the A3DSurfBlend03Data structure.

Version

2.0

Attention

FUNCTION IS NOT IMPLEMENTED YET

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 A3DSurfBlend03Create(const A3DSurfBlend03Data *pData, A3DSurfBlend03 **ppSrf)

Creates an A3DSurfBlend03 from an A3DSurfBlend03Data structure.

Version

2.0

Attention

FUNCTION IS NOT IMPLEMENTED YET

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 A3DSurfConeGet(const A3DSurfCone *pSrf, A3DSurfConeData *pData)

Populates the A3DSurfConeData 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 A3DSurfConeCreate(const A3DSurfConeData *pData, A3DSurfCone **ppSrf)

Creates an A3DSurfCone from an A3DSurfConeData 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 A3DSurfCylindricalGet(const A3DSurfCylindrical *pSrf, A3DSurfCylindricalData *pData)

Populates the A3DSurfCylindricalData 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 A3DSurfCylindricalCreate(const A3DSurfCylindricalData *pData, A3DSurfCylindrical **ppSrf)

Creates an A3DSurfCylindrical from an A3DSurfCylindricalData 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 A3DSurfRuledGet(const A3DSurfRuled *pSrf, A3DSurfRuledData *pData)

Populates the A3DSurfRuledData 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 A3DSurfRuledCreate(const A3DSurfRuledData *pData, A3DSurfRuled **ppSrf)

Creates an A3DSurfRuled from an A3DSurfRuledData 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 A3DSurfPipeGet(const A3DSurfPipe *pSrf, A3DSurfPipeData *pData)

Populates the A3DSurfPipeData 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 A3DSurfPipeCreate(const A3DSurfPipeData *pData, A3DSurfPipe **ppSrf)

Creates an A3DSurfPipe from an A3DSurfPipeData 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 A3DSurfTransformGet(const A3DSurfTransform *pSrf, A3DSurfTransformData *pData)

Populates the A3DSurfTransformData 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_SRF_CANNOT_ACCESS_CANONICAL

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DSurfTransformCreate(const A3DSurfTransformData *pData, A3DSurfTransform **ppSrf)

Creates an A3DSurfTransform from an A3DSurfTransformData structure.

Version

2.0

Return values
  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_SRF_CANNOT_CREATE_CANONICAL

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DSurfFromCurvesGet(const A3DSurfFromCurves *pSrf, A3DSurfFromCurvesData *pData)

Populates the A3DSurfFromCurvesData 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 A3DSurfFromCurvesCreate(const A3DSurfFromCurvesData *pData, A3DSurfFromCurves **ppSrf)

Creates an A3DSurfFromCurves from an A3DSurfFromCurvesData 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