/** * @file GoProfileToolUtils.h * @brief Declares shared profile tool configuration classes. * * @internal * Copyright (C) 2016-2021 by LMI Technologies Inc. * Licensed under the MIT License. * Redistributed files must retain the above copyright notice. */ #ifndef GO_PROFILE_TOOL_UTILS_H #define GO_PROFILE_TOOL_UTILS_H #include #include /** * @class GoProfileRegion * @extends kObject * @note Supported with G1, G2 * @ingroup GoSdk-ProfileTools * @brief Represents a profile region used in various profile tools. */ typedef kObject GoProfileRegion; /** * Sets the X position. * * @public @memberof GoProfileRegion * @note Supported with G1, G2 * @version Introduced in firmware 4.0.10.27 * @param region GoProfileRegion object. * @param x The X-position to set. * @return Operation status. */ GoFx(kStatus) GoProfileRegion_SetX(GoProfileRegion region, k64f x); /** * Gets the X-position. * * @public @memberof GoProfileRegion * @note Supported with G1, G2 * @version Introduced in firmware 4.0.10.27 * @param region GoProfileRegion object. * @return The X-position of the region. */ GoFx(k64f) GoProfileRegion_X(GoProfileRegion region); /** * Sets the Z-position. * * @public @memberof GoProfileRegion * @note Supported with G1, G2 * @version Introduced in firmware 4.0.10.27 * @param region GoProfileRegion object. * @param z The Z-position to set. * @return Operation status. */ GoFx(kStatus) GoProfileRegion_SetZ(GoProfileRegion region, k64f z); /** * Gets the Z-position. * * @public @memberof GoProfileRegion * @note Supported with G1, G2 * @version Introduced in firmware 4.0.10.27 * @param region GoProfileRegion object. * @return The Z-position of the region. */ GoFx(k64f) GoProfileRegion_Z(GoProfileRegion region); /** * Sets the width. * * @public @memberof GoProfileRegion * @note Supported with G1, G2 * @version Introduced in firmware 4.0.10.27 * @param region GoProfileRegion object. * @param width The width to set. * @return Operation status. */ GoFx(kStatus) GoProfileRegion_SetWidth(GoProfileRegion region, k64f width); /** * Gets the width. * * @public @memberof GoProfileRegion * @note Supported with G1, G2 * @version Introduced in firmware 4.0.10.27 * @param region GoProfileRegion object. * @return The width of the region. */ GoFx(k64f) GoProfileRegion_Width(GoProfileRegion region); /** * Sets the height. * * @public @memberof GoProfileRegion * @note Supported with G1, G2 * @version Introduced in firmware 4.0.10.27 * @param region GoProfileRegion object. * @param height The height to set. * @return Operation status. */ GoFx(kStatus) GoProfileRegion_SetHeight(GoProfileRegion region, k64f height); /** * Gets the height. * * @public @memberof GoProfileRegion * @note Supported with G1, G2 * @version Introduced in firmware 4.0.10.27 * @param region GoProfileRegion object. * @return The height of the region. */ GoFx(k64f) GoProfileRegion_Height(GoProfileRegion region); /** * @class GoProfileFeature * @extends kObject * @note Supported with G1, G2 * @ingroup GoSdk-ProfileTools * @brief Represents a profile feature used in various profile tools. */ typedef kObject GoProfileFeature; /** * Sets the feature type. * * @public @memberof GoProfileFeature * @note Supported with G1, G2 * @version Introduced in firmware 4.0.10.27 * @param feature GoProfileFeature object. * @param type GoProfileFeatureType object. * @return Operation status. */ GoFx(kStatus) GoProfileFeature_SetType(GoProfileFeature feature, GoProfileFeatureType type); /** * Gets the profile feature type. * * @public @memberof GoProfileFeature * @note Supported with G1, G2 * @version Introduced in firmware 4.0.10.27 * @param feature GoProfileFeature object. * @return The feature type. */ GoFx(GoProfileFeatureType) GoProfileFeature_Type(GoProfileFeature feature); /** * Gets the profile feature region. * * @public @memberof GoProfileFeature * @note Supported with G1, G2 * @version Introduced in firmware 4.0.10.27 * @param feature GoProfileFeature object. * @return A GoProfileRegion object. */ GoFx(GoProfileRegion) GoProfileFeature_Region(GoProfileFeature feature); /** * Enables the region. * * @public @memberof GoProfileRegion * @note Supported with G1, G2 * @version Introduced in firmware 4.4.4.14 * @param feature GoProfileFeature object. * @param enable kTRUE to use the region, kFALSE otherwise. * @return Operation status. */ GoFx(kStatus) GoProfileFeature_EnableRegion(GoProfileFeature feature, kBool enable); /** * Indicates whether the region is enabled. * * @public @memberof GoProfileFeature * @note Supported with G1, G2 * @version Introduced in firmware 4.4.4.14 * @param feature GoProfileFeature object. * @return kTRUE if the region is enabled and kFALSE otherwise. */ GoFx(kBool) GoProfileFeature_RegionEnabled(GoProfileFeature feature); /** * @class GoProfileLineFittingRegion * @extends kObject * @ingroup GoSdk-ProfileTools * @brief Represents a profile line region used in various profile tools. */ typedef kObject GoProfileLineFittingRegion; /** * Returns the number of regions. * * @public @memberof GoProfileLine * @note Supported with G1, G2 * @version Introduced in firmware 4.0.10.27 * @param lineRegion GoProfileLineFittingRegion object. * @return The region count. */ GoFx(k32u) GoProfileLineFittingRegion_RegionCount(GoProfileLineFittingRegion lineRegion); /** * Sets the number of regions in use. * * @public @memberof GoProfileLine * @version Introduced in firmware 4.7.11.65 * @param lineRegion GoProfileLineFittingRegion object. * @param count number of regions configured * @return Operation status. */ GoFx(kStatus) GoProfileLineFittingRegion_SetRegionCount(GoProfileLineFittingRegion lineRegion, kSize count); /** * Gets the profile region based on the given index. * * @public @memberof GoProfileLine * @note Supported with G1, G2 * @version Introduced in firmware 4.0.10.27 * @param lineRegion GoProfileLineFittingRegion object. * @param index The index of the profile region to return. * @return The profile region. * @see GoProfileLineFittingRegion_RegionCount */ GoFx(GoProfileRegion) GoProfileLineFittingRegion_RegionAt(GoProfileLineFittingRegion lineRegion, kSize index); /** * Enables the region. * * @public @memberof GoProfileRegion * @note Supported with G1, G2 * @version Introduced in firmware 4.4.4.14 * @param lineRegion GoProfileLineFittingRegion object. * @param index The region index of which to modify. * @param enable kTRUE to use the region, kFALSE otherwise. * @return Operation status. */ GoFx(kStatus) GoProfileLineFittingRegion_EnableRegionAt(GoProfileLineFittingRegion lineRegion, kSize index, kBool enable); /** * Indicates whether the region is enabled. * * @public @memberof GoProfileLineFittingRegion * @note Supported with G1, G2 * @version Introduced in firmware 4.4.4.14 * @param lineRegion GoProfileLineFittingRegion object. * @param index The region index to retrieve the enabled state from. * @return kTRUE if the region is enabled and kFALSE otherwise. */ GoFx(kBool) GoProfileLineFittingRegion_RegionEnabledAt(GoProfileLineFittingRegion lineRegion, kSize index); /** * @class GoProfileEdge * @extends kObject * @note Supported with G1, G2 * @ingroup GoSdk-ProfileTools * @brief Represents a profile edge used in various profile tools. */ typedef kObject GoProfileEdge; /** * Sets the profile edge type. * * @public @memberof GoProfileEdge * @note Supported with G1, G2 * @version Introduced in firmware 4.0.10.27 * @param edge GoProfileEdge object. * @param type The type of the profile edge. * @return Operation status. */ GoFx(kStatus) GoProfileEdge_SetType(GoProfileEdge edge, GoProfileEdgeType type); /** * Gets the profile edge type. * * @public @memberof GoProfileEdge * @note Supported with G1, G2 * @version Introduced in firmware 4.0.10.27 * @param edge GoProfileEdge object. * @return The profile edge type. */ GoFx(GoProfileEdgeType) GoProfileEdge_Type(GoProfileEdge edge); /** * Gets the profile region. * * @public @memberof GoProfileEdge * @note Supported with G1, G2 * @version Introduced in firmware 4.0.10.27 * @param edge GoProfileEdge object. * @return The profile region. */ GoFx(GoProfileRegion) GoProfileEdge_Region(GoProfileEdge edge); /** * Enables the region. * * @public @memberof GoProfileRegion * @note Supported with G1, G2 * @version Introduced in firmware 4.4.4.14 * @param edge GoProfileEdge object. * @param enable kTRUE to use the region, kFALSE otherwise. * @return Operation status. */ GoFx(kStatus) GoProfileEdge_EnableRegion(GoProfileEdge edge, kBool enable); /** * Indicates whether the region is enabled. * * @public @memberof GoProfileEdge * @note Supported with G1, G2 * @version Introduced in firmware 4.4.4.14 * @param edge GoProfileEdge object. * @return kTRUE if the region is enabled and kFALSE otherwise. */ GoFx(kBool) GoProfileEdge_RegionEnabled(GoProfileEdge edge); /** * Sets the maximum void width. * * @public @memberof GoProfileEdge * @note Supported with G1, G2 * @version Introduced in firmware 4.0.10.27 * @param edge GoProfileEdge object. * @param width The width to set for the maximum void width. * @return Operation status. */ GoFx(kStatus) GoProfileEdge_SetVoidWidthMax(GoProfileEdge edge, k64f width); /** * Gets the maximum void width. * * @public @memberof GoProfileEdge * @note Supported with G1, G2 * @version Introduced in firmware 4.0.10.27 * @param edge GoProfileEdge object. * @return Maximum void width. */ GoFx(k64f) GoProfileEdge_VoidWidthMax(GoProfileEdge edge); /** * Sets the minimum depth. * * @public @memberof GoProfileEdge * @note Supported with G1, G2 * @version Introduced in firmware 4.0.10.27 * @param edge GoProfileEdge object. * @param depth The minimum depth. * @return Operation status. */ GoFx(kStatus) GoProfileEdge_SetDepthMin(GoProfileEdge edge, k64f depth); /** * Gets the minimum depth. * * @public @memberof GoProfileEdge * @note Supported with G1, G2 * @version Introduced in firmware 4.0.10.27 * @param edge GoProfileEdge object. * @return The minimum depth. */ GoFx(k64f) GoProfileEdge_DepthMin(GoProfileEdge edge); /** * Sets the surface width. * * @public @memberof GoProfileEdge * @note Supported with G1, G2 * @version Introduced in firmware 4.0.10.27 * @param edge GoProfileEdge object. * @param width The surface width. * @return Operation status. */ GoFx(kStatus) GoProfileEdge_SetSurfaceWidth(GoProfileEdge edge, k64f width); /** * Gets the surface width. * * @public @memberof GoProfileEdge * @note Supported with G1, G2 * @version Introduced in firmware 4.0.10.27 * @param edge GoProfileEdge object. * @return The surface width. */ GoFx(k64f) GoProfileEdge_SurfaceWidth(GoProfileEdge edge); /** * Sets the surface offset. * * @public @memberof GoProfileEdge * @note Supported with G1, G2 * @version Introduced in firmware 4.0.10.27 * @param edge GoProfileEdge object. * @param offset The surface offset. * @return Operation status. */ GoFx(kStatus) GoProfileEdge_SetSurfaceOffset(GoProfileEdge edge, k64f offset); /** * Gets the surface offset. * * @public @memberof GoProfileEdge * @note Supported with G1, G2 * @version Introduced in firmware 4.0.10.27 * @param edge GoProfileEdge object. * @return The surface offset. */ GoFx(k64f) GoProfileEdge_SurfaceOffset(GoProfileEdge edge); /** * Sets the nominal radius. * * @public @memberof GoProfileEdge * @note Supported with G1, G2 * @version Introduced in firmware 4.0.10.27 * @param edge GoProfileEdge object. * @param radius The nominal radius. * @return Operation status. */ GoFx(kStatus) GoProfileEdge_SetNominalRadius(GoProfileEdge edge, k64f radius); /** * Gets the nominal radius. * * @public @memberof GoProfileEdge * @note Supported with G1, G2 * @version Introduced in firmware 4.0.10.27 * @param edge GoProfileEdge object. * @return The nominal radius. */ GoFx(k64f) GoProfileEdge_NominalRadius(GoProfileEdge edge); /** * Sets the edge angle. * * @public @memberof GoProfileEdge * @note Supported with G1, G2 * @version Introduced in firmware 4.0.10.27 * @param edge GoProfileEdge object. * @param angle k64f object. * @return Operation status. */ GoFx(kStatus) GoProfileEdge_SetEdgeAngle(GoProfileEdge edge, k64f angle); /** * Gets the edge angle. * * @public @memberof GoProfileEdge * @note Supported with G1, G2 * @version Introduced in firmware 4.0.10.27 * @param edge GoProfileEdge object. * @return The edge angle. */ GoFx(k64f) GoProfileEdge_EdgeAngle(GoProfileEdge edge); #include #endif