275 lines
10 KiB
C
275 lines
10 KiB
C
/**
|
|||
|
|
* @file GoProfileTools.x.h
|
||
|
|
*
|
||
|
|
* @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_TOOLS_X_H
|
||
|
|
#define GO_PROFILE_TOOLS_X_H
|
||
|
|
|
||
|
|
#include <kApi/Data/kXml.h>
|
||
|
|
|
||
|
|
// Define Profile tool names, ordered alphabetically.
|
||
|
|
#define GO_PROFILE_TOOL_NAME_AREA "ProfileArea"
|
||
|
|
#define GO_PROFILE_TOOL_NAME_BOUNDING_BOX "ProfileBoundingBox"
|
||
|
|
#define GO_PROFILE_TOOL_NAME_BRIDGE_VALUE "ProfileBridgeValue"
|
||
|
|
#define GO_PROFILE_TOOL_NAME_CIRCLE "ProfileCircle"
|
||
|
|
#define GO_PROFILE_TOOL_NAME_DIMENSION "ProfileDimension"
|
||
|
|
#define GO_PROFILE_TOOL_NAME_GROOVE "ProfileGroove"
|
||
|
|
#define GO_PROFILE_TOOL_NAME_INTERSECT "ProfileIntersect"
|
||
|
|
#define GO_PROFILE_TOOL_NAME_LINE "ProfileLine"
|
||
|
|
#define GO_PROFILE_TOOL_NAME_PANEL "ProfilePanel"
|
||
|
|
#define GO_PROFILE_TOOL_NAME_POSITION "ProfilePosition"
|
||
|
|
#define GO_PROFILE_TOOL_NAME_ROUND_CORNER "ProfileRoundCorner"
|
||
|
|
#define GO_PROFILE_TOOL_NAME_STRIP "ProfileStrip"
|
||
|
|
|
||
|
|
typedef struct GoProfileToolClass
|
||
|
|
{
|
||
|
|
GoToolClass base;
|
||
|
|
|
||
|
|
kArrayList streamOptions; //of GoStreamOption
|
||
|
|
GoDataStream stream;
|
||
|
|
|
||
|
|
kArrayList sourceOptions;
|
||
|
|
GoDataSource source;
|
||
|
|
|
||
|
|
kArrayList xAnchorOptions; //of k32u
|
||
|
|
k32s xAnchor;
|
||
|
|
kArrayList zAnchorOptions; //of k32u
|
||
|
|
k32s zAnchor;
|
||
|
|
} GoProfileToolClass;
|
||
|
|
|
||
|
|
kDeclareClassEx(Go, GoProfileTool, GoTool)
|
||
|
|
|
||
|
|
GoFx(kStatus) GoProfileTool_Init(GoProfileTool tool, kType type, GoToolType typeId, kObject sensor, kAlloc alloc);
|
||
|
|
GoFx(kStatus) GoProfileTool_VRelease(GoProfileTool tool);
|
||
|
|
GoFx(kStatus) GoProfileTool_Read(GoProfileTool tool, kXml xml, kXmlItem item);
|
||
|
|
GoFx(kStatus) GoProfileTool_Write(GoProfileTool tool, kXml xml, kXmlItem item);
|
||
|
|
|
||
|
|
|
||
|
|
typedef struct GoProfileAreaClass
|
||
|
|
{
|
||
|
|
GoProfileToolClass base;
|
||
|
|
|
||
|
|
GoProfileAreaType type;
|
||
|
|
kBool typeUsed;
|
||
|
|
|
||
|
|
GoProfileBaseline baseline;
|
||
|
|
kBool baselineUsed;
|
||
|
|
|
||
|
|
GoProfileRegion region;
|
||
|
|
kBool regionEnabled;
|
||
|
|
GoProfileLineRegion line;
|
||
|
|
} GoProfileAreaClass;
|
||
|
|
|
||
|
|
kDeclareClassEx(Go, GoProfileArea, GoProfileTool)
|
||
|
|
|
||
|
|
GoFx(kStatus) GoProfileArea_Construct(GoProfileArea* tool, kObject sensor, kAlloc allocator);
|
||
|
|
GoFx(kStatus) GoProfileArea_VInit(GoProfileArea tool, kType type, kObject sensor, kAlloc alloc);
|
||
|
|
GoFx(kStatus) GoProfileArea_VRelease(GoProfileArea tool);
|
||
|
|
GoFx(kStatus) GoProfileArea_VRead(GoProfileArea tool, kXml xml, kXmlItem item);
|
||
|
|
GoFx(kStatus) GoProfileArea_VWrite(GoProfileArea tool, kXml xml, kXmlItem item);
|
||
|
|
|
||
|
|
|
||
|
|
typedef struct GoProfileBoxClass
|
||
|
|
{
|
||
|
|
GoProfileToolClass base;
|
||
|
|
kBool regionEnabled;
|
||
|
|
GoProfileRegion region;
|
||
|
|
} GoProfileBoxClass;
|
||
|
|
|
||
|
|
kDeclareClassEx(Go, GoProfileBox, GoProfileTool)
|
||
|
|
|
||
|
|
GoFx(kStatus) GoProfileBox_Construct(GoProfileBox* tool, kObject sensor, kAlloc allocator);
|
||
|
|
GoFx(kStatus) GoProfileBox_VInit(GoProfileBox tool, kType type, kObject sensor, kAlloc alloc);
|
||
|
|
GoFx(kStatus) GoProfileBox_VRelease(GoProfileBox tool);
|
||
|
|
GoFx(kStatus) GoProfileBox_VRead(GoProfileBox tool, kXml xml, kXmlItem item);
|
||
|
|
GoFx(kStatus) GoProfileBox_VWrite(GoProfileBox tool, kXml xml, kXmlItem item);
|
||
|
|
|
||
|
|
|
||
|
|
typedef struct GoProfileBridgeValueClass
|
||
|
|
{
|
||
|
|
GoProfileToolClass base;
|
||
|
|
|
||
|
|
kBool regionEnabled;
|
||
|
|
GoProfileRegion region;
|
||
|
|
kBool normalizeEnabled;
|
||
|
|
k64f windowSize;
|
||
|
|
k64f windowSkip;
|
||
|
|
k64f maxInvalid;
|
||
|
|
GoElement64f maxDifferential;
|
||
|
|
} GoProfileBridgeValueClass;
|
||
|
|
|
||
|
|
kDeclareClassEx(Go, GoProfileBridgeValue, GoProfileTool)
|
||
|
|
|
||
|
|
GoFx(kStatus) GoProfileBridgeValue_Construct(GoProfileBridgeValue* tool, kObject sensor, kAlloc allocator);
|
||
|
|
GoFx(kStatus) GoProfileBridgeValue_VInit(GoProfileBridgeValue tool, kType type, kObject sensor, kAlloc alloc);
|
||
|
|
GoFx(kStatus) GoProfileBridgeValue_VRelease(GoProfileBridgeValue tool);
|
||
|
|
GoFx(kStatus) GoProfileBridgeValue_VRead(GoProfileBridgeValue tool, kXml xml, kXmlItem item);
|
||
|
|
GoFx(kStatus) GoProfileBridgeValue_VWrite(GoProfileBridgeValue tool, kXml xml, kXmlItem item);
|
||
|
|
|
||
|
|
|
||
|
|
typedef struct GoProfileCircleClass
|
||
|
|
{
|
||
|
|
GoProfileToolClass base;
|
||
|
|
kBool regionEnabled;
|
||
|
|
GoProfileRegion region;
|
||
|
|
} GoProfileCircleClass;
|
||
|
|
|
||
|
|
kDeclareClassEx(Go, GoProfileCircle, GoProfileTool)
|
||
|
|
|
||
|
|
GoFx(kStatus) GoProfileCircle_Construct(GoProfileCircle* tool, kObject sensor, kAlloc allocator);
|
||
|
|
GoFx(kStatus) GoProfileCircle_VInit(GoProfileCircle tool, kType type, kObject sensor, kAlloc alloc);
|
||
|
|
GoFx(kStatus) GoProfileCircle_VRelease(GoProfileCircle tool);
|
||
|
|
GoFx(kStatus) GoProfileCircle_VRead(GoProfileCircle tool, kXml xml, kXmlItem item);
|
||
|
|
GoFx(kStatus) GoProfileCircle_VWrite(GoProfileCircle tool, kXml xml, kXmlItem item);
|
||
|
|
|
||
|
|
|
||
|
|
typedef struct GoProfileDimClass
|
||
|
|
{
|
||
|
|
GoProfileToolClass base;
|
||
|
|
GoProfileFeature refFeature;
|
||
|
|
GoProfileFeature feature;
|
||
|
|
} GoProfileDimClass;
|
||
|
|
|
||
|
|
kDeclareClassEx(Go, GoProfileDim, GoProfileTool)
|
||
|
|
|
||
|
|
GoFx(kStatus) GoProfileDim_Construct(GoProfileDim* tool, kObject sensor, kAlloc allocator);
|
||
|
|
GoFx(kStatus) GoProfileDim_VInit(GoProfileDim tool, kType type, kObject sensor, kAlloc alloc);
|
||
|
|
GoFx(kStatus) GoProfileDim_VRelease(GoProfileDim tool);
|
||
|
|
GoFx(kStatus) GoProfileDim_VRead(GoProfileDim tool, kXml xml, kXmlItem item);
|
||
|
|
GoFx(kStatus) GoProfileDim_VWrite(GoProfileDim tool, kXml xml, kXmlItem item);
|
||
|
|
|
||
|
|
|
||
|
|
typedef struct GoProfileGrooveClass
|
||
|
|
{
|
||
|
|
GoProfileToolClass base;
|
||
|
|
GoProfileGrooveShape shape;
|
||
|
|
k64f minWidth;
|
||
|
|
k64f maxWidth;
|
||
|
|
k64f minDepth;
|
||
|
|
kBool regionEnabled;
|
||
|
|
GoProfileRegion region;
|
||
|
|
} GoProfileGrooveClass;
|
||
|
|
|
||
|
|
kDeclareClassEx(Go, GoProfileGroove, GoProfileTool)
|
||
|
|
|
||
|
|
GoFx(kStatus) GoProfileGroove_Construct(GoProfileGroove* tool, kObject sensor, kAlloc allocator);
|
||
|
|
GoFx(kStatus) GoProfileGroove_VInit(GoProfileGroove tool, kType type, kObject sensor, kAlloc alloc);
|
||
|
|
GoFx(kStatus) GoProfileGroove_VRelease(GoProfileGroove tool);
|
||
|
|
GoFx(kStatus) GoProfileGroove_VRead(GoProfileGroove tool, kXml xml, kXmlItem item);
|
||
|
|
GoFx(kStatus) GoProfileGroove_VWrite(GoProfileGroove tool, kXml xml, kXmlItem item);
|
||
|
|
|
||
|
|
|
||
|
|
typedef struct GoProfileIntersectClass
|
||
|
|
{
|
||
|
|
GoProfileToolClass base;
|
||
|
|
GoProfileBaseline refLineType;
|
||
|
|
GoProfileLineRegion refLineRegion;
|
||
|
|
GoProfileLineRegion lineRegion;
|
||
|
|
} GoProfileIntersectClass;
|
||
|
|
|
||
|
|
kDeclareClassEx(Go, GoProfileIntersect, GoProfileTool)
|
||
|
|
|
||
|
|
GoFx(kStatus) GoProfileIntersect_Construct(GoProfileIntersect* tool, kObject sensor, kAlloc allocator);
|
||
|
|
GoFx(kStatus) GoProfileIntersect_VInit(GoProfileIntersect tool, kType type, kObject sensor, kAlloc alloc);
|
||
|
|
GoFx(kStatus) GoProfileIntersect_VRelease(GoProfileIntersect tool);
|
||
|
|
GoFx(kStatus) GoProfileIntersect_VRead(GoProfileIntersect tool, kXml xml, kXmlItem item);
|
||
|
|
GoFx(kStatus) GoProfileIntersect_VWrite(GoProfileIntersect tool, kXml xml, kXmlItem item);
|
||
|
|
|
||
|
|
#define GO_PROFILE_LINE_MAX_FIT_REGIONS (2)
|
||
|
|
|
||
|
|
typedef struct GoProfileLineClass
|
||
|
|
{
|
||
|
|
GoProfileToolClass base;
|
||
|
|
kBool regionEnabled;
|
||
|
|
GoProfileRegion region;
|
||
|
|
kBool fittingRegionsEnabled;
|
||
|
|
GoProfileLineRegion fittingRegions;
|
||
|
|
} GoProfileLineClass;
|
||
|
|
|
||
|
|
kDeclareClassEx(Go, GoProfileLine, GoProfileTool)
|
||
|
|
|
||
|
|
GoFx(kStatus) GoProfileLine_Construct(GoProfileLine* tool, kObject sensor, kAlloc allocator);
|
||
|
|
GoFx(kStatus) GoProfileLine_VInit(GoProfileLine tool, kType type, kObject sensor, kAlloc alloc);
|
||
|
|
GoFx(kStatus) GoProfileLine_VRelease(GoProfileLine tool);
|
||
|
|
GoFx(kStatus) GoProfileLine_VRead(GoProfileLine tool, kXml xml, kXmlItem item);
|
||
|
|
GoFx(kStatus) GoProfileLine_VWrite(GoProfileLine tool, kXml xml, kXmlItem item);
|
||
|
|
|
||
|
|
|
||
|
|
typedef struct GoProfilePanelClass
|
||
|
|
{
|
||
|
|
GoProfileToolClass base;
|
||
|
|
GoProfilePanelSide refEdgeSide;
|
||
|
|
k64f maxGapWidth;
|
||
|
|
GoProfileEdge leftEdge;
|
||
|
|
GoProfileEdge rightEdge;
|
||
|
|
} GoProfilePanelClass;
|
||
|
|
|
||
|
|
kDeclareClassEx(Go, GoProfilePanel, GoProfileTool)
|
||
|
|
|
||
|
|
GoFx(kStatus) GoProfilePanel_Construct(GoProfilePanel* tool, kObject sensor, kAlloc allocator);
|
||
|
|
GoFx(kStatus) GoProfilePanel_VInit(GoProfilePanel tool, kType type, kObject sensor, kAlloc alloc);
|
||
|
|
GoFx(kStatus) GoProfilePanel_VRelease(GoProfilePanel tool);
|
||
|
|
GoFx(kStatus) GoProfilePanel_VRead(GoProfilePanel tool, kXml xml, kXmlItem item);
|
||
|
|
GoFx(kStatus) GoProfilePanel_VWrite(GoProfilePanel tool, kXml xml, kXmlItem item);
|
||
|
|
|
||
|
|
|
||
|
|
typedef struct GoProfilePositionClass
|
||
|
|
{
|
||
|
|
GoProfileToolClass base;
|
||
|
|
GoProfileFeature feature;
|
||
|
|
} GoProfilePositionClass;
|
||
|
|
|
||
|
|
kDeclareClassEx(Go, GoProfilePosition, GoProfileTool)
|
||
|
|
|
||
|
|
GoFx(kStatus) GoProfilePosition_Construct(GoProfilePosition* tool, kObject sensor, kAlloc allocator);
|
||
|
|
GoFx(kStatus) GoProfilePosition_VInit(GoProfilePosition tool, kType type, kObject sensor, kAlloc alloc);
|
||
|
|
GoFx(kStatus) GoProfilePosition_VRelease(GoProfilePosition tool);
|
||
|
|
GoFx(kStatus) GoProfilePosition_VRead(GoProfilePosition tool, kXml xml, kXmlItem item);
|
||
|
|
GoFx(kStatus) GoProfilePosition_VWrite(GoProfilePosition tool, kXml xml, kXmlItem item);
|
||
|
|
|
||
|
|
|
||
|
|
typedef struct GoProfileStripClass
|
||
|
|
{
|
||
|
|
GoProfileToolClass base;
|
||
|
|
GoProfileStripBaseType baseType;
|
||
|
|
GoProfileStripEdgeType leftEdge;
|
||
|
|
GoProfileStripEdgeType rightEdge;
|
||
|
|
kBool tiltEnabled;
|
||
|
|
k64f supportWidth;
|
||
|
|
GoElement64f transitionWidth;
|
||
|
|
k64f minWidth;
|
||
|
|
k64f minHeight;
|
||
|
|
k64f maxVoidWidth;
|
||
|
|
kBool regionEnabled;
|
||
|
|
GoProfileRegion region;
|
||
|
|
} GoProfileStripClass;
|
||
|
|
|
||
|
|
kDeclareClassEx(Go, GoProfileStrip, GoProfileTool)
|
||
|
|
|
||
|
|
GoFx(kStatus) GoProfileStrip_Construct(GoProfileStrip* tool, kObject sensor, kAlloc allocator);
|
||
|
|
GoFx(kStatus) GoProfileStrip_VInit(GoProfileStrip tool, kType type, kObject sensor, kAlloc alloc);
|
||
|
|
GoFx(kStatus) GoProfileStrip_VRelease(GoProfileStrip tool);
|
||
|
|
GoFx(kStatus) GoProfileStrip_VRead(GoProfileStrip tool, kXml xml, kXmlItem item);
|
||
|
|
GoFx(kStatus) GoProfileStrip_VWrite(GoProfileStrip tool, kXml xml, kXmlItem item);
|
||
|
|
|
||
|
|
typedef struct GoProfileRoundCornerClass
|
||
|
|
{
|
||
|
|
GoProfileToolClass base;
|
||
|
|
GoProfileRoundCornerDirection refDirection;
|
||
|
|
GoProfileEdge edge;
|
||
|
|
} GoProfileRoundCornerClass;
|
||
|
|
|
||
|
|
kDeclareClassEx(Go, GoProfileRoundCorner, GoProfileTool)
|
||
|
|
|
||
|
|
GoFx(kStatus) GoProfileRoundCorner_Construct(GoProfileRoundCorner* tool, kObject sensor, kAlloc allocator);
|
||
|
|
GoFx(kStatus) GoProfileRoundCorner_VInit(GoProfileRoundCorner tool, kType type, kObject sensor, kAlloc alloc);
|
||
|
|
GoFx(kStatus) GoProfileRoundCorner_VRelease(GoProfileRoundCorner tool);
|
||
|
|
GoFx(kStatus) GoProfileRoundCorner_VRead(GoProfileRoundCorner tool, kXml xml, kXmlItem item);
|
||
|
|
GoFx(kStatus) GoProfileRoundCorner_VWrite(GoProfileRoundCorner tool, kXml xml, kXmlItem item);
|
||
|
|
|
||
|
|
#endif
|