Product Documentation
Cadence Integrators Toolkit Database Reference
Product Version IC23.1, June 2023

20


CDBA Photonics Functions

This chapter includes the following topics:

You need the Virtuoso_Photonics_Option license with Virtuoso_MultiTech_Framework (95022) to use the functionality discussed in this section. For more information, see License Checkout for Virtuoso Photonics Platform in License Checkout for Virtuoso Photonics Platform of Virtuoso Software Licensing and Configuration User Guide.

Photonics Functions

This section covers the photonics functions:

You need the Virtuoso_Photonics_Option license to use the functionality discussed in this section. For information about obtaining the required license, contact your local Cadence representative.

dbGetPhotonicPinFigAngle

Boolean
dbGetPhotonicPinFigAngle(
dbFigId    figId,
float      *value
);

Description

Returns the attribute value of the angle for the specified photonics pinFig.

Arguments

d_pinFigId

Database ID of a photonics pinFig.

value

Attribute value of the angle.

Return Value

Boolean

TRUE if the attribute value of the angle for the specified photonics pinFig is returned.

FALSE if the pinFig is not a photonic pin or the attribute is not set.

Example

dbGetPhotonicPinFigAngle(figId, rtnValuePtr) 
=> true

The attribute value of the angle for the photonic pinFig figId is retrieved.

dbGetPhotonicPinFigRadius

Boolean
dbGetPhotonicPinFigRadius(
dbFigId   figId,
int       *value
);

Description

Returns the attribute value of the radius for the specified photonics pinFig.

Arguments

d_pinFigId

Database ID of a photonics pinFig.

value

Attribute value of the radius.

Return Value

Boolean

TRUE if the attribute value of the radius for the specified photonics pinFig is returned.

FALSE if the pinFig is not a photonic pin or the attribute is not set.

Example

dbGetPhotonicPinFigRadius(figId, rtnValuePtr) 
=> false

The pinFig figId is not a photonic pinFig or the radius attribute is not set.

dbGetPhotonicPinFigWidth

Boolean
dbGetPhotonicPinFigWidth(
dbFigId        figId,
unsigned int   *value
);

Description

Returns the attribute value of the width for the specified photonics pinFig.

Arguments

d_pinFigId

Database ID of a photonics pinFig.

value

Attribute value of the angle.

Return Value

Boolean

TRUE if the attribute value of the width for the specified photonics pinFig is returned.

  

FALSE if the pinFig is not a photonic pin or the attribute is not set.

Example

dbGetPhotonicPinFigWidth(figId, rtnValuePtr) 
=> true

The attribute value of the width for the photonic pinFig figId is retrieved.

dbIsPhotonicsEnabled

dbIsPhotonicsEnabled(
);

Description

Confirms whether the photonics-related functionality is enabled.

Optical sigTypes cannot be set if photonics-related functionality is not enabled.

Arguments

None

Return Value

t

Photonics-related functionality is enabled.

nil

Photonics-related functionality is not enabled.

dbCellViewHasPhotonicPinFig

Boolean
dbCellViewHasPhotonicPinFig(
dbCellViewId cvId
);

Description

Checks whether the specified cellview has a photonic pinFig.

Arguments

cvId

Database ID of a cellview.

Return Value

Boolean

TRUE if the specified cellview has a photonic pinFig.

FALSE if the specified cellview does not have a photonic pinFig.

Example

dbCellViewHasPhotonicPinFig(cvId) 
=> true

The cellview cvId contains a photonic pinFig.

dbSetPhotonicPinFigAngle

Boolean
dbSetPhotonicPinFigAngle(
dbFigId    figId,
float      value
);

Description

Sets the given attribute value as the angle of the photonic for the specified pinFig.

Arguments

figId

Database ID of a photonics pinFig.

value

Attribute value of angle.

Return Value

Boolean

TRUE if the specified attribute value is set as the angle of the photonics pinFig.

FALSE if the angle attribute value is not set.

Example

dbSetPhotonicPinFigAngle(figId, value) 
=> true

The attribute value of the angle for the photonic pinFig figId is set to value.

dbSetPhotonicPinFigRadius

Boolean
dbSetPhotonicPinFigRadius(
dbFigId   figId,
int       value
);

Description

Sets the given attribute value as the radius of the photonic for the specified pinFig.

Arguments

figId

Database ID of a photonics pinFig.

value

Attribute value of radius.

Return Value

Boolean

TRUE if the specified attribute value is set as the radius of the photonics pinFig.

FALSE if the radius attribute value is not set.

Example

dbSetPhotonicPinFigRadius(figId, value) 
=> false

The attribute value of the radius for the pinFig figId is not set. This may imply that figId is not a photonic pinFig or the cellview that contains figId is not a layout cellview type.

dbSetPhotonicPinFigWidth

Boolean
dbSetPhotonicPinFigWidth(
dbFigId   figId,
unsigned int   value
);

Description

Sets the given attribute value as the width of the photonic for the specified pinFig.

Arguments

figId

Database ID of a photonics pinFig.

value

Attribute value of width.

Return Value

Boolean

TRUE if the specified attribute value is set as the width of the photonics pinFig.

FALSE if the width attribute value is not set.

Example

dbSetPhotonicPinFigWidth(figId, value) 
=> true

The attribute value of the width for the specific pinFig figId is set to value.

dbUnsetPhotonicPinFigAngle

Boolean
dbUnsetPhotonicPinFigAngle(
dbFigId  figId
);

Description

Resets the attribute value of the angle for the specified photonics pinFig.

Arguments

figId

Database ID of a photonics pinFig.

Return Value

Boolean

TRUE if the angle attribute value of the specified photonic pinFig is reset.

FALSE if the angle attribute value is not reset.

Example

dbUnsetPhotonicPinFigAngle(figId) 
=> true

The attribute value of the angle for the photonic pinFig figId is reset.

dbUnsetPhotonicPinFigRadius

Boolean
dbUnsetPhotonicPinFigRadius(
dbFigId figId
);

Description

Resets the attribute value of the radius for the specified photonics pinFig.

Arguments

figId

Database ID of a photonics pinFig.

Return Value

Boolean

TRUE if the radius attribute value of the specified photonic pinFig is reset.

FALSE if the radius attribute value is not reset.

Example

dbUnsetPhotonicPinFigRadius(figId) 
=> false

The attribute value of the radius for the pinFig figId is not reset. This implies that figId is not a photonic pinFig.

dbUnsetPhotonicPinFigWidth

Boolean
dbUnsetPhotonicPinFigWidth(
dbFigId  figId
);

Description

Resets the attribute value of the width for the specified photonics pinFig.

Arguments

figId

Database ID of a photonics pinFig

Return Value

Boolean

TRUE if the width attribute value of the specified photonic pinFig is reset.

FALSE if the width attribute value is not reset.

Example

dbUnsetPhotonicPinFigWidth(figId) 
=> true

The attribute value of the width for the photonic pinFig figId is reset.

Curvy Core Functions

Curvy shapes are building blocks of photonic devices such as ring resonators, waveguide bends, and Bragg gratings. You can use these C functions to get information related to existing CurvyCore objects.

This section describes the following curvy core functions.

Functions to Check Curvy Core Objects

ccIsBoundary

Boolean
ccIsBoundary(
ccId id
);

Description

(ICADVM20.1 Photonics Only) Checks whether the specified CurvyCore object is a ccBoundary object.

Arguments

id

ID of a CurvyCore object.

Return Value

Boolean

TRUE if the specified object is a ccBoundary.

FALSE if the specified object is not a ccBoundary object, or if an error occurred.

ccIsCurve

Boolean
ccIsCurve(
ccId id
);

Description

(ICADVM20.1 Photonics Only) Checks whether the specified CurvyCore object is a ccCurve object.

Arguments

id

ID of a CurvyCore object.

Return Value

Boolean

TRUE if the specified object is a ccCurve.

FALSE if the specified object is not a ccCurve object, or if an error occurred.

ccIsFacet

Boolean
ccIsFacet(
ccId id
);

Description

(ICADVM20.1 Photonics Only) Checks whether the specified CurvyCore object is a ccFacet object.

Arguments

id

ID of a CurvyCore object.

Return Value

Boolean

TRUE if the specified object is a ccFacet object.

FALSE if the specified object is not a ccFacet object, or if an error occurred.

ccIsLine

Boolean
ccIsLine(
ccId id
);

Description

(ICADVM20.1 Photonics Only) Checks whether the specified CurvyCore object is a ccLine object.

Arguments

id

ID of a CurvyCore object.

Return Value

Boolean

TRUE if the specified object is a ccLine.

FALSE if the specified object is not a ccLine object, or if an error occurred.

ccIsMath

Boolean
ccIsMath(
ccId id
);

Description

(ICADVM20.1 Photonics Only) Checks whether the specified CurvyCore object is a mathematical object, such as ccCurve, ccFacet, ccPolyCurve, or ccBoundary.

Arguments

id

ID of a CurvyCore object.

Return Value

Boolean

TRUE if the specified object is a mathematical object.

FALSE if the specified object is not a mathematical object, or if an error occurred.

ccIsPath

Boolean
ccIsPath(
ccId id
);

Description

(ICADVM20.1 Photonics Only) Checks whether the specified CurvyCore object is a ccPath object.

Arguments

id

ID of a CurvyCore object.

Return Value

Boolean

TRUE if the specified object is a ccPath object.

FALSE if the specified object is not a ccPath object, or if an error occurred.

ccIsPolyCurve

Boolean
ccIsPolyCurve(
ccId id
);

Description

(ICADVM20.1 Photonics Only) Checks whether the specified CurvyCore object is a ccPolyCurve object.

Arguments

id

ID of a CurvyCore object.

Return Value

Boolean

TRUE if the specified object is a ccPolyCurve object.

FALSE if the specified object is not a ccPolyCurve object, or if an error occurred.

ccIsPolyCurveSegment

Boolean
ccIsPolyCurveSegment(
ccId id
);

Description

(ICADVM20.1 Photonics Only) Checks whether the specified CurvyCore object is a ccPolyCurve segment object, such as ccCurve or ccFacet.

Arguments

id

ID of a CurvyCore object.

Return Value

Boolean

TRUE if the specified object is a ccPolyCurve segment object.

FALSE if the specified object is not a ccPolyCurve segment object, or if an error occurred.

ccIsShape

Boolean
ccIsShape(
ccId id
);

Description

(ICADVM20.1 Photonics Only) Checks whether the specified CurvyCore object is a ccShape object, such as ccPath, ccLine, or ccSurface.

Arguments

id

ID of a CurvyCore object.

Return Value

Boolean

TRUE if the specified object is a ccShape object.

FALSE if the specified object is not a ccShape object, or if an error occurred.

ccIsSurface

Boolean
ccIsSurface(
ccId id
);

Description

(ICADVM20.1 Photonics Only) Checks whether the specified CurvyCore object is a ccSurface object.

Arguments

id

ID of a CurvyCore object.

Return Value

Boolean

TRUE if the specified object is a ccSurface object.

FALSE if the specified object is not a ccSurface object, or if an error occurred.

Functions to query object attributes

ccGetCurveSpec

ccCurveSpec
ccGetCurveSpec(
ccCurveId curveId
);

Description

(ICADVM20.1 Photonics Only) Retrieves the curve specification for the specified ccCurve ID.

Arguments

curveId

ID of a ccCurve object.

Return Value

ccCurveSpec

A ccCurveSpec object with curve data.

The function allocates memory for the strings in the specifications in format (.x, .y).

Use free() to free the strings after the procedure is complete.

Returns a STRUCT filled with zeros and no memory is allocated.

ccGetFacetSpec

ccFacetSpec
ccGetFacetSpec(
ccFacetId facetId
);

Description

(ICADVM20.1 Photonics Only) Retrieves the facet specifications from the given ccFacet ID.

Arguments

facetId

ID of a ccFacet object.

An error occurs if ccID of some other type is specified.

Return Value

ccFacetSpec

A ccFacetSpec object filled with facet data.

The function allocates memory for the strings in the specifications in format (.origin.x,.origin.y).

Use free() to free the strings after the procedure.

Returns a STRUCT filled with zeros and no memory is allocated.

ccGetFromFig

ccShapeId
ccGetFromFig(
dbShapeId  shapeId
);

Description

(ICADVM20.1 Photonics Only) Retrieves the CurvyCore shapes for the specified database shape.

This operation increments the reference-count of the underlying ccShapeHandle object by 1.

Arguments

curveId

ID of an OpenAccess shape.

Type validation for the specified shapeId is not done.

Return Value

ccShapeId

ID of a ccShape object.

Returns ccNullId in case of error.

ccGetPathBeginFacet

ccFacetId
ccGetPathBeginFacet(
ccPathId pathId
);

Description

(ICADVM20.1 Photonics Only) Retrieves the beginning facet of the specified ccPath object.

Arguments

pathId

ID of a ccPath object.

An error occurs if ccID of some other type is specified.

Return Value

ccFacetId

ID of a ccFacet object.

Returns ccNullId in case of error.

ccGetPathBoundary

ccBoundaryId
ccGetPathBoundary(
ccPathId pathId
);

Description

(ICADVM20.1 Photonics Only) Retrieves the boundary of the specified ccPath as a ccBoundary.

Arguments

pathId

ID of a ccPath.

An error occurs if ccID of some other type is specified.

Return Value

ccBoundaryId

A ccBoundary ID.

Returns ccNullId in case of error.

ccGetPathCenterLine

ccPolyCurveId
ccGetPathCenterLine(
ccPathId pathId
);

Description

(ICADVM20.1 Photonics Only) Retrieves the centerLine of the specified ccPath as an open polyCurve.

Arguments

pathId

ID of a ccPath object.

An error occurs if ccID of some other type is specified.

Return Value

ccPolyCurveId

ID of a ccPolyCurve object.

Returns ccNullId in case of error.

ccGetPathWidths

ccPathWidthSpec
ccGetPathWidths(
ccPathId pathId
);

Description

(ICADVM20.1 Photonics Only) Retrieves the width specifications for the specified ccPath.

Arguments

pathId

ID of a ccPath object.

An error occurs if ccID of some other type is specified.

Return Value

ccPathWidthSpec

A ccPathWidthSpec object with width data.

This function allocates memory for the strings in the width specification.

Use ccFreePathWidths to free the strings after the procedure is complete.

Returns a STRUCT filled with zeros and no memory is allocated.

ccGetPathEndFacet

ccFacetId
ccGetPathEndFacet(
ccPathId pathId
);

Description

(ICADVM20.1 Photonics Only) Retrieves the ending facet of the specified ccPath object.

Arguments

pathId

ID of a ccPath object.

An error occurs if ccID of some other type is specified.

Return Value

ccFacetId

ID of a ccFacet object.

Returns ccNullId in case of error.

ccGetPolyCurve

ccPolyCurveId
ccGetPolyCurve(
ccLineId lineId
);

Description

(ICADVM20.1 Photonics Only) Retrieves the mathematical polyCurve of the given ccLine.

Arguments

pathId

ID of a ccLine object.

An error occurs if ccID of some other type is specified.

Return Value

ccPolyCurveId

A ccPolyCurve ID.

Returns ccNullId in case of error.

ccGetSurfaceBoundary

ccBoundaryId
ccGetSurfaceBoundary(
ccSurfaceId surfaceId
);

Description

(ICADVM20.1 Photonics Only) Retrieves the boundary of the specified ccSurface as a ccBoundary.

Arguments

surfaceId

ID of a ccSurface object.

An error occurs if ccID of some other type is specified.

Return Value

ccBoundaryId

A ccBoundary ID.

Returns ccNullId in case of error.

Generator functions

ccGenOAShape

Boolean
ccGenOAShape(
ccGenState  *pstate,
dbShapeId   *id
);

Description

(ICADVM20.1 Photonics Only) Retrieves the ID of the next OpenAccess shape from the specified ccGenState created by ccStartGenOAShape.

Arguments

pState

State ID for the generator.

id

ID of the next OpenAccess shape produced by the generator. This value is undefined if FALSE is returned.

Return Value

Boolean

TRUE is returned if the operation succeeded and the generator advanced to next value.

FALSE is returned if the operation succeeded but the generator reached the end of the list, or if an error occurred.

ccGenPolyCurveSegment

Boolean
ccGenPolyCurveSegment(
ccGenState  *pstate,
ccMathId    *id,
ccTransform *xform
);

Description

(ICADVM20.1 Photonics Only) Retrieves the ID of the next polyCurve segment and related ccTransform (in case of Facet segment) from the specified ccGenState created by ccStartGenPolyCurveSegment.

Arguments

pstate

State ID for the generator.

id

Pointer to the memory location where the ID of the next polyCurve segment produced by the generator will be written.

This value is undefined if FALSE is returned.

xform

Pointer to the memory location where the ccTransform of the next polyCurve segment produced by the generator will be written.

ccTransform is retrieved only in case of the ccFacet segment. If the segment is a ccCurve, the value of xform remains unchanged.

Return Value

Boolean

TRUE is returned if the operation succeeded and the generator advanced to next value.

FALSE is returned if the operation succeeded but the generator reached the end of the list, or if an error occurred.

ccGenSurfaceHole

Boolean
ccGenSurfaceHole(
ccGenState     *pstate,
ccBoundaryId   *id
);

Description

(ICADVM20.1 Photonics Only) Retrieves the ID of the next ccBoundaryId (hole) from the specified ccGenState created by ccStartGenSurfaceHole.

Arguments

pstate

State ID for the generator.

id

Pointer to the memory location where ID of the next ccBoundaryId produced by the generator will be written.

This value is undefined if FALSE is returned.

Return Value

Boolean

TRUE is returned if the operation succeeded and the generator advanced to next value.

FALSE is returned if the operation succeeded but the generator reached the end of the list, or if an error occurred.

ccStartGenOAShape

ccGenState
ccStartGenOAShape(
ccShapeId  shapeId
);

Description

(ICADVM20.1 Photonics Only) Creates and initializes a generator for all OpenAccess shapes with the OpenAccess geometry of the specified shape. A generator state is returned, which is used with the ccGenOAShape.

Call the ccStopGen function at the end of generation loop to free the generator state.

Arguments

shapeId

ID of a ccShape object.

An error occurs if ccID of some other type is specified.

Return Value

ccGenState

State ID for the generator, which is:

.type = ccIdGenTypeOAShape, 
.status = ccGenStatusActive

In case of error, the following is returned:

.type = ccIdGenTypeNone, 
.status = ccGenStatusNull.

ccStartGenPolyCurveSegment

ccGenState
ccStartGenPolyCurveSegment(
ccMathId  pcId
);

Description

(ICADVM20.1 Photonics Only) Creates and initializes a generator for all the segments of the specified ccPolyCurve or ccBoundary. A generator state is returned, which is used with the ccGenPolyCurveSegment.

Call the ccStopGen function at the end of generation loop to free the generator state.

Arguments

pcId

ID of a ccPolyCurve or ccBoundary object.

An error occurs if ccID of some other type is specified.

Return Value

ccGenState

State ID for the generator, which is:

.type = ccIdGenTypePolyCurveSegment, 
.status = ccGenStatusActive

In case of error, the following is returned:

.type = ccIdGenTypeNone, 
.status = ccGenStatusNull.

ccStartGenSurfaceHole

ccGenState
ccStartGenSurfaceHole(
ccSurfaceId  surfaceId
);

Description

(ICADVM20.1 Photonics Only) Creates and initializes a generator for all the holes of the specified ccSurface. A generator state is returned, which is used with the ccGenSurfaceHole.

Call the ccStopGen function at the end of generation loop to free the generator state.

Arguments

surfaceId

ID of a ccSurface object.

An error occurs if ccID of some other type is specified.

Return Value

ccGenState

State ID for the generator, which is:

.type = ccIdGenTypeSurfaceHole, 
.status = ccGenStatusActive

In case of error, the following is returned:

.type = ccIdGenTypeNone,
.status = ccGenStatusNull

ccStopGen

void
ccStopGen(
ccGenState  *pstate
);

Description

(ICADVM20.1 Photonics Only) Clears the specified ccGenState data. At the end of a generator loop, you must call the ccStopGen function to end generation. This frees the generator state.

Arguments

pstate

Pointer to the ccGenState object to clean up.

Return Value

None

Miscellaneous Functions

ccFreePathWidths

void
ccFreePathWidths(
const ccPathWidthSpec *pathSpec
);

Description

(ICADVM20.1 Photonics Only) Frees the memory allocated for the given ccPathWidthSpec data. This function is often used by ccGetPathWidths.

This function does not control or deallocate the memory allocated for the specification .

Arguments

pathSpec

Pointer to a ccPathWidthSpec.

Return Value

None

ccReleaseObject

void
ccReleaseObject(
ccId id
);

Description

(ICADVM20.1 Photonics Only) Releases the object specified by the ccID. Additionally:

Arguments

id

ID of a CurvyCore object.

Return Value

None

Waveguide Functions

This section covers the following topics and waveguide functions.

You need the Virtuoso_Photonics_Option license to use the functionality discussed in this section. For information about obtaining the required license, contact your local Cadence representative.

Structs in the Waveguide Infrastructure

This section covers the structs used in the Waveguide infrastructure.

techWGDerivedShapeSpec

Type Name Description

techLayerNum

layerNum

Layer number associated with WGDerivedShape

techPurpose

purposeNum

Purpose associated with WGDerivedShape

techWGDerivedShapeType

shapeType

Type of shape

techWGEnclosureValueType

encValueType

Integer or string specifying the type of enclosure of WGDerivedShape.

techWGEnclosureValueType

innerEncValueType

Integer or string specifying the type of inner enclosure of WGDerivedShape

techWGEnclosureValueType

outerEncValueType

Integer or string specifying the type of outer enclosure of WGDerivedShape

Enumerated Types and Enumerated Constants used in the Waveguide Infrastructure

Waveguide side direction

Direction Enumerated constants

Both

0

Right

1

Left

2

Waveguide derived shape type

Shape Type

Enumerated constants

Enclosure

0

Offset

1

Waveguide enclosure value type

Enclosure value type

Enumerated constants

Unspecified

0

Integer

1

String

2

techAllocWaveguideModePropArray

techWGModeProperty*
techAllocWaveguideModePropArray(
unsigned int numProps
);

Description

Allocates memory for the techWGModeProperty array. All members of the array are initialized to zero or NULL.

Arguments

numProps

Number of techWGModeProperty specifications that can fit in the allocated memory.

Return Value

techWGModeProperty

Pointer to the allocated memory area.

techAllocWGDerivedShapeSpecArray

techWGDerivedShapeSpec*
techAllocWGDerivedShapeSpecArray(
unsigned int numSpecs
);

Description

Allocates memory for the techWGDerivedShapeSpec array. All members of the array are initialized to zero or NULL.

Arguments

numSpecs

Number of WGDerivedShape specifications that can fit in the allocated memory.

Return Value

techWGDerivedShapeSpec

Pointer to the allocated memory area.

techCreateWaveguideDef

techWaveguideDefId
techCreateWaveguideDef(
techFileId               techfile,
constString      name,
techLayerNum             layerNum,
techPurpose              purposeNum,
dbDistance               minWidth,
dbDistance               minBendRadius,
unsigned int             numShapeSpecs,
const techWGDerivedShapeSpec *shapeSpecs, 
const techWGModePropertySpec *modeProperties

);

Description

Creates a waveguideDef in the specified technology file and returns its ID.

Arguments

techfile

Database ID of the technology file in which the waveguideDef object is to be created.

name

Unique name of the new waveguideDef object.

layerNum

Layer number of the waveguideDef object.

purposeNum

Purpose number associated with the waveguideDef object.

minWidth

Minimum width of the object.

minBendRadius

Minimum bend radius of the object.

numShapeSpecs

Number of shape specifications to create the waveguideDef object.

*shapeSpecs

Pointer to the shapeSpecs array.

*modeProperties

Pointer to the array of mode property specifications.

Return Value

techWaveguideDefId

ID of the new waveguideDef object created in the specified technology file.

techDeleteWaveguideDef

Boolean
techDeleteWaveguideDef(
techWaveguideDefId     wgDefId
);

Description

Deletes the specified waveguideDef.

Arguments

wgDefId

ID of a waveguideDef object.

Return Value

Boolean

TRUE if the specified waveguideDef object is deleted.

FALSE if the operation fails.

techFindWaveguideDef

techWaveguideDefId
techFindWaveguideDef(
techFileId       techfile,
techLayerNum     layerNum,
techPurpose      purposeNum
);

Description

Searches for the specified waveguideDef object in the given technology database and returns its ID.

Arguments

techfile

Database ID of the technology file.

layerNum

Layer number for the waveguideDef object.

purposeNum

Purpose number associated with the waveguideDef object.

Return Value

techWaveguideDefId

  

ID of the waveguideDef object, if found.

Returns NULL if the specified waveguideDef object is not found.

techFreeWaveguideModePropArray

void
techFreeWaveguideModePropArray(
unsigned int numProps,
techWGDModeProperty *props
);

Description

Frees the memory allocated for a techWGModeProperty array.

Arguments

numProps

Size of the deallocated memory area.

*props

Pointer to the memory area to deallocate.

Return Value

None

techFreeWGDerivedShapeSpecArray

void
techFreeWGDerivedShapeSpecArray(
unsigned int numSpecs,
techWGDerivedShapeSpec  *specs
);

Description

Frees the memory allocated for a techWGDerivedShapeSpec array.

Arguments

numSpecs

Size of the deallocated memory area.

*specs

Pointer to the memory area to deallocate.

Return Value

None

techGenWaveguideDef

Boolean
techGenWaveguideDef(
techGenStateId      pState,
techWaveguideDefId  *wgDefId
);

Description

Retrieves the ID of the next waveguideDef object from the generator with the specified pState. ID of the waveguideDef is returned in wgDefId.

Arguments

pState

State ID for the generator.

*wgDefId

ID of the next waveguideDef object produced by the generator. This value is undefined if FALSE is returned.

Return Value

Boolean

TRUE if the next waveguideDef object ID is successfully generated.

FALSE if the list is exhausted or an error occurs.

techGetWaveguideDefDerivedShapeSpecs

void
techGetWaveguideDefDerivedShapeSpecs(
techWaveguideDefId     wgDefId,
unsigned int           *numShapeSpecs,
techWGDerivedShapeSpec **shapeSpecs
);

Description

Retrieves the derivedShapeSpecs for the specified waveguideDef object.

Arguments

wgDefId

ID of a waveguideDef object.

*numShapeSpecs

Number of entries in the array of derivedShapeSpecs.

**shapeSpecs

Pointer to the memory area where the array of derivedShapeSpecs is placed.

Return Value

None

techGetWaveguideDefLayer

techLayerNum
techGetWaveguideDefLayer(
techWaveguideDefId   wgDefId
);

Description

Returns the layer number of the specified waveguideDef object.

Arguments

wgDefId

ID of a waveguideDef object.

Return Value

techLayerNum

Layer number of the specified waveguideDef object.

Returns techcNullLayer in case of an error.

techGetWaveguideDefMinBendRadius

dbDistance
techGetWaveguideDefMinBendRadius(
techWaveguideDefId wgDefId
);

Description

Returns the minimum bend radius of the specified waveguideDef object.

Arguments

wgDefId

ID of a waveguideDef object.

Return Value

dbDistance

Minimum bend radius of the specified waveguideDef object.

Returns 0 in case of an error.

techGetWaveguideDefMinWidth

dbDistance
techGetWaveguideDefMinWidth(
techWaveguideDefId wgDefId
);

Description

Returns the minimum width of the specified waveguideDef object.

Arguments

wgDefId

ID of the specified waveguideDef object.

Return Value

dbDistance

Minimum width of the specified waveguideDef object.

Returns 0 in case of an error.

techGetWaveguideDefName

String
techGetWaveguideDefName(
techWaveguideDefId    wgDefId
);

Description

Returns the name of the specified waveguideDef object.

Arguments

wgDefId

ID of the specified waveguideObject.

Return Value

String

Name of the specified waveguideDef object.

Returns NULL in case of an error.

techGetWaveguideDefPurpose

techPurpose
techGetWaveguideDefPurpose(
techWaveguideDefId wgDefId
);

Description

Returns the purpose number of the specified waveguideDef object.

Arguments

wgDefId

ID of the specified waveguideObject.

Return Value

techPurpose

Purpose number of the specified waveguideObject.

Returns techcUnknownPurpose in case of an error.

techStartGenWaveguideDef

techGenStateId
techStartGenWaveguideDef(
techFileId  techfile
);

Description

Initializes a generator for all the waveguideDef objects in the specified technology file. A generator state ID is returned, which is used with the techGenWaveguideDef function.

Arguments

techfile

Database ID of the technology file.

Return Value

techGenStateId

State ID for the generator.

techHasWaveguideDefMinBendRadius

Boolean
techHasWaveguideDefMinBendRadius(
techWaveguideDefId wgDefId,
);

Description

Checks if the specified waveguideDef object has the minimum bend radius.

Arguments

wgDefId

ID of a waveguideDef object.

Return Value

Boolean

TRUE if the waveguideDef object has the minimum bend radius.

FALSE if the waveguideDef object does not have the minimum bend radius.

techSetWaveguideDefMinBendRadius

Boolean
techSetWaveguideDefMinBendRadius(
techWaveguideDefId wgDefId,
dbDistance minBendRadius
);

Description

Sets the minimum bend radius of the specified waveguideDef object.

Arguments

wgDefId

ID of a waveguideDef object.

minBendRadius

Minimum bend radius of the object.

Return Value

Boolean

TRUE if the minimum bend radius is set.

FALSE if the minimum bend radius is not set.

techUnsetWaveguideDefMinBendRadius

Boolean
techUnsetWaveguideDefMinBendRadius(
techWaveguideDefId wgDefId
);

Description

Unsets the minimum bend radius of the specified waveguideDef object.

Arguments

wgDefId

ID of a waveguideDef object.

Return Value

Boolean

TRUE if the minimum bend radius is reset.

FALSE if the minimum bend radius is not reset.


Return to top
 ⠀
X