#ifndef PROOBJECTS_H #define PROOBJECTS_H /* Creo Parametric TOOLKIT declarations for Pro<object> related data structures */ #include <ProToolkit.h> /* * PTC Engineers: if you add a ProType, convert the T_ entry in ent_type.h * to refer to this type instead of a value. */ PRO_BEGIN_C_DECLS #define PRO_UV_PARAM_UNUSED ((double) -2.0) typedef enum pro_obj_types { PRO_TYPE_DIR = -5, PRO_TYPE_INVALID = -2, PRO_TYPE_UNUSED = PRO_VALUE_UNUSED, PRO_ASSEMBLY = 1, PRO_PART = 2, PRO_FEATURE = 3, PRO_DRAWING = 4, PRO_SURFACE = 5, PRO_EDGE = 6, PRO_3DSECTION = 7, PRO_DIMENSION = 8, PRO_2DSECTION = 11, PRO_PAT_MEMBER = 12, PRO_PAT_LEADER = 13, PRO_XSEC = 18, PRO_LAYOUT = 19, PRO_AXIS = 21, PRO_CSYS = 25, PRO_REF_DIMENSION = 28, PRO_GTOL = 32, PRO_DWGFORM = 33, PRO_SUB_ASSEMBLY = 34, PRO_MFG = 37, PRO_SURF_FIN = 42, PRO_QUILT = 57, PRO_DATUM_TARGET = 61, PRO_CURVE = 62, PRO_POINT = 66, PRO_NOTE = 68, PRO_IPAR_NOTE = 69, PRO_EDGE_START = 71, PRO_EDGE_END = 72, PRO_CRV_START = 74, PRO_CRV_END = 75, PRO_SYMBOL_INSTANCE = 76, PRO_DRAFT_ENTITY = 77, PRO_DRAFT_DATUM = 79, PRO_DRAFT_GROUP = 83, PRO_DRAW_TABLE = 84, PRO_TABLE = 84, PRO_COSMETIC = 90, PRO_VIEW = 92, PRO_CABLE = 96, PRO_BODY = 98, PRO_REPORT = 105, PRO_MARKUP = 116, PRO_LAYER = 117, PRO_DIAGRAM = 121, PRO_SKETCH_ENTITY = 133, PRO_DATUM_TEXT = 144, PRO_ENTITY_TEXT = 145, PRO_DRAW_TABLE_CELL = 147, PRO_PIPE_SEG = 174, PRO_DATUM_PLANE = 176, PRO_COMP_CRV = 180, PRO_BND_TABLE = 211, PRO_ANNOTATION_ELEM = 219, PRO_SET_DATUM_TAG = 220, PRO_ANNOT_ELEM_DRIVING_DIM = 224, PRO_PARAMETER = 240, PRO_SILH_EDGE = 256, /* Some functions may return a type value between PRO_SILH_EDGE and PRO_SILH_EDGE_MAX, if the surface has multiple silhouettes. The meaning of this is that it is a silhouette of the surface given by id, and the silhouette index is (val - PRO_SILH_EDGE). The only supported use of the type including the index is to use the same value when wanting to refer to the same silhouette, for example in a ProReference. */ PRO_SILH_EDGE_MAX = 299, PRO_DIAGRAM_OBJECT = 305, PRO_DIAGRAM_WIRE = 308, PRO_SIMP_REP = 309, PRO_CE_DRAWING = 315, /* For internal use */ PRO_CE_SOLID = 316, /* For internal use */ PRO_DRW_SOLID = 319, /* For internal use */ PRO_WELD_PARAMS = 371, PRO_SNAP_LINE = 377, PRO_EXTOBJ = 385, PRO_HYBRID_BODY = 390, PRO_CSYS_AXIS_X = 407, PRO_CSYS_AXIS_Y = 408, PRO_CSYS_AXIS_Z = 409, PRO_STYLE_STATE = 460, PRO_VIS_STATE = 461, PRO_COLOR_STATE = 462, PRO_COMBINED_STATE = 463, PRO_REFONLY_STATE = 464, PRO_LAYER_STATE = 465, PRO_SUBSET_STATE = 466, PRO_APPEARANCE_STATE = 467, PRO_EXPLD_STATE = 500, PRO_CABLE_LOCATION = 504, PRO_RELSET = 533, PRO_ANALYSIS = 555, PRO_SURF_CRV = 556, PRO_SOLID_GEOMETRY = 622, PRO_LOG_SRF = 625, PRO_LOG_EDG = 626, PRO_DESKTOP = 627, PRO_SYMBOL_DEFINITION = 628, PRO_FACET_SET = 630, PRO_LOG_OBJECT = 640, PRO_NEUTRAL_LAYER = 641, PRO_IC_START = 642, PRO_IC_END = 643, PRO_EDGE_PNT = 660, PRO_CRV_PNT = 661, PRO_EDGE_END_PNT = 662, PRO_ECAD_CONDUCTOR = 704, PRO_CC_ASSEMBLY = 737, PRO_CC_PART = 740, PRO_NC_STEP_MODEL = 804, PRO_NC_STEP_OBJECT = 805, PRO_CATIA_MODEL = 819, PRO_ANNOT_PLANE = 849, PRO_CUSTOM_ANNOTATION = 850, PRO_UG = 872, PRO_INVENTOR_PART = 881, PRO_INVENTOR_ASSEM = 882, PRO_SW_PART = 886, PRO_SW_ASSEM = 890, PRO_TOOL_MOTION = 907, PRO_LOG_PNT = 913, PRO_LOG_PLANE = 914, PRO_LOG_CSYS = 915, PRO_LOG_AXIS = 916, PRO_SURFACE_PNT = 919, PRO_SURF_REGION_SIDE1 = 933, PRO_SURF_REGION_SIDE2 = 934, PRO_SRF_PLANE_PNT = 935, PRO_CRV_SIDE1SRF_CNTR = 937, PRO_CRV_SIDE2SRF_CNTR = 938, PRO_SKETCH_CONSTRAINT = 942, /* PRO_BODY_HNDL = 973, */ PRO_MODEL_BODIES = 974, PRO_UDG = 975, /* for internal use */ PRO_CMPST_PLY_DEF = 976, PRO_CMPST_PLY_ORDER = 977, PRO_CMPST_PLY_PNT = 978, /* Following objects do not correspond to real proe database objects */ PRO_CONTOUR = 1000, PRO_GROUP = 1001, PRO_UDF = 1002, PRO_FAMILY_TABLE = 1003, PRO_CATIA_PART = 1013, PRO_CATIA_PRODUCT = 1014, PRO_CATIA_CGR = 1015, /* Types used at Custom group only. */ PRO_AUTO_GROUP_BODIES = 4540, // T_AUTO_GROUP_BODIES, for internal use PRO_AUTO_GROUP_QUILTS = 4541, // T_AUTO_GROUP_QUILTS, for internal use PRO_PATREL_FIRST_DIR = 10018, PRO_PATREL_SECOND_DIR = 10019, PRO_JAR_FILE = 10020, PRO_SIMULATION_LOAD = 11000, PRO_SIMULATION_WCS = 11001, PRO_SIMULATION_BEAM = 11004, PRO_SIMULATION_SHELL = 11005, PRO_SIMULATION_BEAM_SECTION = 11007, PRO_SIMULATION_BEAM_ORIENT = 11008, PRO_SIMULATION_BEAM_RELEASE = 11009, PRO_SIMULATION_SHELL_PROPS = 11010, PRO_SIMULATION_MATL_ORIENT = 11011, PRO_SIMULATION_SPRING = 11012, PRO_SIMULATION_SPRING_PROPS = 11013, PRO_SIMULATION_GAP = 11014, PRO_SIMULATION_CONTACT = PRO_SIMULATION_GAP, PRO_SIMULATION_MASS = 11015, PRO_SIMULATION_MASS_PROPS = 11016, PRO_SIMULATION_MESH_CNTRL = 11017, PRO_SIMULATION_LOAD_SET = 11018, PRO_SIMULATION_FUNCTION = 11019, PRO_SIMULATION_CONSTRAINT = 11020, PRO_SIMULATION_CONSTR_SET = 11021, PRO_SIMULATION_SHELL_PAIR = 11022, PRO_SIMULATION_CONNECTION = 11023, PRO_SIMULATION_INTERFACE = PRO_SIMULATION_CONNECTION, PRO_SIMULATION_WELD = 11024, PRO_SIMULATION_MATL_ASSIGN = 11025, PRO_SIMULATION_MEASURE = 11026, PRO_SIMULATION_RUNNER = 11027, /*obsolete*/ PRO_SIMULATION_ENTRANCE_PNT = 11028, /*obsolete*/ PRO_SIMULATION_STIFF_COND = 11029, PRO_SIMULATION_RIGID_LINK = 11030, PRO_SIMULATION_WEIGHT_LINK = 11033, PRO_SIMULATION_BOLT = 11035, PRO_SIMULATION_CONT_REGION = 11036, /* obsolete */ PRO_SIMULATION_OBJECT = 11037, PRO_SIMULATION_ANALYSIS = 11038, PRO_SIMULATION_CRACK = 11039, PRO_SIMULATION_MATERIAL = 11040, PRO_SIMULATION_SCOPE = 11041, PRO_SIMULATION_INTEG_CONTACT = 11042, PRO_SIMULATION_INTEG_CONTACTPROP = 11043, PRO_SIMULATION_JOINT = 11044, PRO_SIMULATION_JOINT_BEHAV = 11045, PRO_SIMULATION_VOLUME = 11200, PRO_SIMULATION_PNT_PATTERN = 11201, PRO_SIMULATION_FEAT_SEC = 11202, PRO_SIMULATION_HP_FACE = 11203, PRO_SIMULATION_HP_EDGE = 11204, PRO_SIMULATION_HPE_BUNDLE = 11205, PRO_SIMULATION_3D_NOTE = 11206, PRO_SIMP_3D_LATTICE_ENT = 11207, PRO_SIMULATION_USER_STUDY = 11208, /* for internal use */ PRO_SIMULATION_LOAD_CASE = 11209, /* for internal use */ /* Topology Optimimization objects */ PRO_TOPOLOGYOPT_TOPO_REGION = 11501, PRO_TOPOLOGYOPT_DESIGN_OBJ = 11502, PRO_TOPOLOGYOPT_DESIGN_CONSTR = 11503, PRO_TOPOLOGYOPT_STUDY = 11504, PRO_MESH_MESH = 11999, PRO_MESH_COMPONENT = 12000, PRO_MESH_SURFACE = 12002, PRO_MESH_EDGE = 12004, PRO_MESH_CURVE = 12005, PRO_MESH_VERTEX = 12006, PRO_MESH_HARD_POINT = 12008, PRO_MESH_NODE = 12020, PRO_MESH_ELEMENT = 12021, PRO_FEM_NEUTRAL_FILE = 414, PRO_FEM_TM_FILE = 12900, PRO_MECH_DIR = 12905, PRO_DISPOBJ = 13000, PRO_RP_MATERIAL = 17001, PRO_RP_FUNCTION = 17002, PRO_RP_MATERIAL_SET = 17003, /* For internal use only */ PRO_SKETCH_COSMETIC = 20423, PRO_SEDGE_PART = 20253, PRO_SEDGE_ASSEMBLY = 20255, PRO_SEDGE_SHEETMETAL = 20256, PRO_QUERY = 45106, PRO_ARTWORK = 55100, /* PI Artwork */ PRO_TRY_OUT_HDR = 60084, PRO_MDO_BODY = 70000, PRO_MDO_CAM_CONN = 70003, PRO_MDO_GEAR_CONN = 70004, PRO_MDO_SERVO_MOTOR = 70005, PRO_MDO_FORCE_MOTOR = 70006, PRO_MDO_SPRING = 70007, PRO_MDO_DAMPER = 70008, PRO_MDO_FORCE = 70009, PRO_MDO_TORQUE = 70010, PRO_MDO_ANALYSIS = 70011, PRO_MDO_SNAPSHOT = 70012, PRO_MDO_INIT_COND = 70013, PRO_MDO_MEASURE = 70014, PRO_MDO_JAS = 70015, PRO_MDO_GRAVITY = 70016, PRO_MDO_MASSPROP = 70017, PRO_MDO_SETTINGS = 70018, PRO_MDO_CONN = 70019, PRO_MDO_CONN_AXIS = 70020, /* obsoleted */ PRO_MDO_SLOT_CONN = 70021, PRO_MDO_CONN_PARAM = 70022, PRO_MDO_LOAD_XFER = 70023, PRO_MDO_SLOT_AXIS = 70024, PRO_MDO_CONN_AXIS_TR_1 = 70025, PRO_MDO_CONN_AXIS_TR_2 = 70026, PRO_MDO_CONN_AXIS_TR_3 = 70027, PRO_MDO_CONN_AXIS_ROT_1 = 70028, PRO_MDO_CONN_AXIS_ROT_2 = 70029, PRO_MDO_CONN_AXIS_ROT_3 = 70030, PRO_MDO_CONN_AXIS_EXT = 70031, PRO_MDO_CONTACT_3D = 70032, PRO_MDO_BELT = 70033, PRO_MDO_BUSHING_LD = 70034, PRO_MDO_CONN_AXIS_CONE = 70035, PRO_MDO_TERM_COND = 70036, PRO_PLACEMENT_SET = 70100, PRO_COLSN_DATA = 71000, PRO_ANIM_ANIMATION = 73000, PRO_ANIM_SUB_ANIMATION = 73001, PRO_ANIM_BODY = 73002, PRO_ANIM_BODY_LOCK = 73003, PRO_ANIM_CONN_STATUS = 73004, PRO_ANIM_EVENT = 73005, PRO_ANIM_DRIVER_INSTANCE = 73006, PRO_ANIM_KFS = 73007, PRO_ANIM_KFS_INSTANCE = 73008, PRO_ANIM_VIEW_AT_TIME = 73009, PRO_ANIM_DISPLAY_AT_TIME = 73010, PRO_ANIM_TRANS_AT_TIME = 73011, PRO_ANIM_COMB = 73012, PRO_ANIM_PI_KFS_INSTANCE = 73013, /* obsoleted */ PRO_ANIM_PI_INT_PT = 73014, /* obsoleted */ PRO_ANIM_PI_INT_AXIS = 73015, /* obsoleted */ PRO_ANIM_PI_INT_PLANE = 73016, /* obsoleted */ PRO_ANIM_EXPLD_KFS = 73017, PRO_ANIM_EXPLD_KFS_INSTANCE = 73018, PRO_ANIM_EXPLD_SUB_ANIMATION = 73019, PRO_ANIM_EXPLD_EVENT = 73020, PRO_ANIM_MDO_EVENT = 73021, PRO_ANIM_MDO_MOVIE = 73022, PRO_ANIM_EXPLD_COMB = 73023, PRO_ANIM_SNAP_COMB_KFS = 73024, PRO_ANIM_SNAP_COMB_KFS_INSTANCE = 73025, PRO_ANIM_EXPLD_COMB_KFS = 73026, PRO_ANIM_EXPLD_COMB_KFS_INSTANCE = 73027, PRO_LOG_CURVE = 74150, PRO_LOG_COLLECTION = 74151, PRO_LAYOUT_TAG = 74152, /* for internal use */ PRO_LAYOUT_NODE = 74153, /* for internal use */ PRO_LAYOUT_WP = 74154, /* for internal use */ PRO_DTM_CHK_PNT = 74266, /* for internal use */ PRO_PSEG_START = 74275, PRO_PSEG_END = 74276, PRO_QUILT_CONTOUR = 74287, PRO_SENSOR = 74288, /* for internal use */ PRO_ECAD_CUT = 74290, PRO_RP_MANIKIN_SET = 74345, PRO_ASM_LOG_SRF = 74360 } ProType; typedef enum { PRO_DISP_REF_COL_ENT = 10001, PRO_DISP_INT_QLT_EDGE = 10002, PRO_DISP_SHTMETAL_SRF = 10003, PRO_DISP_CURVE_COL = 10004, PRO_DISP_DTM_PLN_POS = 10005, PRO_DISP_DTM_PLN_NEG = 10006, PRO_DISP_DTM_PLN_TAG = 10007, PRO_DISP_DTM_AXIS = 10008, PRO_DISP_DTM_AXIS_TAG = 10009, PRO_DISP_DTM_PNT = 10010, PRO_DISP_DTM_PNT_TAG = 10011, PRO_DISP_COORD_SYS = PRO_CSYS, PRO_DISP_COORD_SYS_TAG = 10013, PRO_DISP_QLT_EDGE = 10014, PRO_DISP_SURF_MESH = 10015, PRO_DISP_DTM_CRV_TAG = 10024, PRO_DISP_CABLE = PRO_CABLE, PRO_DISP_COSM_AR_PL_IN = 10101, /* ECAD */ PRO_DISP_COSM_AR_PL_OUT= 10102, /* ECAD */ PRO_DISP_COSM_AR_R_IN = 10103, /* ECAD */ PRO_DISP_COSM_AR_R_OUT = 10104, /* ECAD */ PRO_DISP_COSM_AR_VIA = 10105, /* ECAD */ PRO_DISP_COSM_AR_PL_REG = 10106, /* ECAD */ PRO_DISP_COSM_AR_FLX_REG = 10107, /* ECAD */ PRO_DISP_ECAD_BOARD_TOP_SRF = 10108, /* ECAD */ PRO_DISP_ECAD_AR_USRDEF = 10109, /* ECAD */ PRO_DISP_ECAD_CONDCTR_TOP_PINPADS = 10110, /* ECAD */ PRO_DISP_ECAD_CONDCTR_TOP_VIAPADS = 10111, /* ECAD */ PRO_DISP_ECAD_CONDCTR_TOP_ROUTES = 10112, /* ECAD */ PRO_DISP_ECAD_CONDCTR_TOP_PLANES = 10113, /* ECAD */ PRO_DISP_ECAD_CONDCTR_TOP_CONDFGR = 10114, /* ECAD */ PRO_DISP_ECAD_CONDCTR_BOT_PINPADS = 10115, /* ECAD */ PRO_DISP_ECAD_CONDCTR_BOT_VIAPADS = 10116, /* ECAD */ PRO_DISP_ECAD_CONDCTR_BOT_ROUTES = 10117, /* ECAD */ PRO_DISP_ECAD_CONDCTR_BOT_PLANES = 10118, /* ECAD */ PRO_DISP_ECAD_CONDCTR_BOT_CONDFGR = 10119, /* ECAD */ PRO_DISP_ECAD_CONDCTR_TOP_SILKSCREEN = 10120, /* ECAD */ PRO_DISP_ECAD_CONDCTR_BOT_SILKSCREEN = 10121, /* ECAD */ PRO_DISP_ECAD_CONDCTR_TOP_SOLDERMASK = 10122, /* ECAD */ PRO_DISP_ECAD_CONDCTR_BOT_SOLDERMASK = 10123, /* ECAD */ PRO_DISP_ECAD_AR_SOLDERMASK = 10124, /* ECAD */ PRO_DISP_ECAD_CONDCTR_TOP_PASTEMASK = 10125, /* ECAD */ PRO_DISP_ECAD_CONDCTR_BOT_PASTEMASK = 10126, /* ECAD */ } ProDisplayedType; typedef enum pro_ent_type { PRO_ENT_NONE = -1, PRO_ENT_POINT = 1, PRO_ENT_LINE = 2, PRO_ENT_ARC = 3, PRO_ENT_TXT = 6, PRO_ENT_ARROW = 8, PRO_ENT_CIRCLE = 10, PRO_ENT_SPLINE = 12, PRO_ENT_B_SPLINE = 19, PRO_ENT_ELLIPSE = 30, PRO_ENT_POLYGON = 40, PRO_ENT_CMP_CRV = 41, PRO_ENT_SRF_CRV = 56, PRO_ENT_PARAM_CRV = 62 } ProEnttype; #define TK_BLOCK_MODEL_NONE 0 #define TK_BLOCK_MODEL_READONLY (1 << 0) #define TK_BLOCK_MODEL_COMPOSITE (1 << 1) #define TK_BLOCK_MODEL_EMBEDDED (1 << 2) #define TK_BLOCK_MODEL_ATB_WRAPPER (1 << 3) #define TK_BLOCK_MODEL_OBJ_NAME (1 << 4) //Cover flexible/inheritance #define TK_BLOCK_MODEL_EMBEDDED_NOT_ATB (1 << 5) typedef enum pro_standard { PROSTANDARD_ANSI = 1, PROSTANDARD_ISO = 2 } ProStandard; typedef void* ProObj; typedef void* ProMdl; typedef struct sld_part* ProSolid; typedef struct sld_part* ProAssembly; typedef struct sld_part* ProPart; typedef struct drawing* ProDrawing; #define ProMdlToSolid(mdl) ((ProSolid) mdl) #define ProMdlToAssembly(mdl) ((ProAssembly) mdl) #define ProMdlToPart(mdl) ((ProPart) mdl) #define ProMdlTohandle(mdl) ((Prohandle) mdl) #define ProSolidToMdl(sld) ((ProMdl) sld) #define ProAssemblyToMdl(asm) ((ProMdl) asm) #define ProPartToMdl(prt) ((ProMdl) prt) #define ProhandleToMdl(hdl) ((ProMdl) hdl) typedef struct pro_model_item { ProType type; int id; ProMdl owner; } ProModelitem, ProGeomitem, ProExtobj, ProFeature, ProProcstep, ProSimprep, ProExpldstate, ProLayer, ProDimension, ProDtlnote, ProDtlsyminst, ProGtol, ProCompdisp, ProDwgtable, ProNote, ProAnnotationElem, ProAnnotation, ProAnnotationPlane, ProSymbol, ProSurfFinish, ProMechItem, ProMaterialItem, ProCombstate, ProLayerstate, ProApprnstate, ProSolidBody, ProPly, ProTable; typedef struct entity* ProPoint; typedef struct entity* ProAxis; typedef struct entity* ProCsys; typedef struct entity* ProCurve; typedef struct entity* ProCompcrv; typedef struct geom* ProSurface; typedef struct curve_header* ProEdge; typedef struct contour* ProContour; typedef struct quilt* ProQuilt; typedef struct pro_model_item *ProModelitemList; typedef struct pro_model_item *ProFeatlist; typedef struct analysis *ProAnalysis; /* opaque handle for text style */ typedef struct text_style *ProTextStyle; typedef void* ProUIImage; typedef void *ProAppData; typedef ProError (*ProFunction)( ); /* Purpose: This is a generic type for a function passed to Creo Parametric TOOLKIT by an application. Input Arguments: none Output Arguments: none Return Values: Varies See Also: ProNotificationSet() */ #define PRO_NO_FUNCTION ((ProFunction) 0) typedef enum proparamfrom { PRM_MODEL, PRM_ITEM } ProParamfrom; typedef struct proparamowner { ProParamfrom type; union { ProModelitem item; ProMdl model; } who; } ProParamowner; typedef struct proparameter { ProType type; ProName id; ProParamowner owner; } ProParameter; typedef struct propattern { ProType type; struct pat_struct *pattern; ProMdl owner; } ProPattern; typedef struct propatmemb { ProType type; struct pat_member *patmemb; ProMdl owner; } ProPatmemb; /*---------------------------------------------------------------------------*/ /* Additional data structures that are NOT based on ProMdl and do NOT */ /* correspond to specific ProE objects. */ /*---------------------------------------------------------------------------*/ typedef int ProIdTable[PRO_MAX_ASSEM_LEVEL]; typedef struct pro_comp_path { ProSolid owner; ProIdTable comp_id_table; int table_num; } ProAsmcomppath; typedef struct pro_asm_item { ProModelitem item; ProName name; /* used for PRO_PARAMETER in this case item->type == PRO_PART or PRO_ASSEMBLY */ ProAsmcomppath path; } ProAsmitem; typedef struct pro_asm_path { ProSolid owner; int *path; /* ProArray of int */ } ProAsmpath; typedef double ProUvParam[2]; typedef double ProVector[3]; typedef PRO_CONST_ARG double ProConstVector[3]; typedef double ProMatrix[4][4]; typedef float ProMatrixFloat[4][4]; typedef double ProSelbox[2][3]; typedef double ProPoint2d[2]; /* obsolete; use Pro2dPnt */ typedef double Pro2dPnt[2]; /* 2-dimensional point */ typedef float Pro2dPntFloat[2]; typedef double ProPoint3d[3]; /* obsolete; use Pro3dPnt */ typedef double Pro3dPnt[3]; /* 3-dimensional point */ typedef double ProAngle; /* angular type (in radians) */ typedef double ProArea; typedef double ProOutline[2][3]; typedef double ProLineEnvelope[4][3]; /* The order of coordinates in the envelope is: 0 ----------------------------1 | | 2 ----------------------------3 This ordering of coordinates is preserved even if the text is mirrored or applied at a rotation angle. */ typedef int *ProIntlist; typedef struct { ProName name; int type; } ProExtobjClass; typedef struct pro_collection *ProCollection; typedef ProError (*ProGeomitemFilter) (ProGeomitem *p_handle, ProAppData app_data); /* Purpose: This is the generic function for filtering a geomitem. Input Arguments: p_handle - The handle to a geomitem app_data - The user data passed from <b>ProFeatureGeomitemVisit()</b> Output Arguments: none Return Values: PRO_TK_NO_ERROR - Calls the visit function if not NULL PRO_TK_CONTINUE - Skips to next ProGeomitem */ typedef ProError (*ProGeomitemAction) (ProGeomitem *p_handle, ProError status, ProAppData app_data); /* Purpose: This is the generic function for visiting a geomitem. Input Arguments: p_handle - The handle to the geomitem status - The status returned from the <i>ProGeomitemFilter</i> function (if not NULL); otherwise, PRO_TK_NO_ERROR. app_data - The user data passed from <b>ProFeatureGeomitemVisit()</b> Output Arguments: none Return Values: PRO_TK_NO_ERROR - Call the visit function (if not NULL). Other values - Stop visiting. */ typedef ProError (*ProPointVisitAction) ( ProPoint p_point, ProError status, ProAppData app_data ); /* Purpose: This is the generic function for visiting a datum point. Input Arguments: p_point - The datum point handle status - The status app_data - The application data passed to the function <b>ProAsmcomppathDispPointVisit()</b> Output Arguments: none Return Values: PRO_TK_NO_ERROR - Continue visiting. Any other value - Stop visiting. */ typedef ProError (*ProPointFilterAction) ( ProPoint p_point, ProAppData app_data ); /* Purpose: This is the generic function for filtering a datum point. Input Arguments: p_point - The datum point handle app_data - The application data passed to the function <b>ProAsmcomppathDispPointVisit()</b> Output Arguments: none Return Values: PRO_TK_CONTINUE - Skip visiting this datum point and go to the next. Other - Call the visit action for this datum point. The return value is passed as input to the visit action. */ typedef ProError (*ProCurveVisitAction) ( ProCurve p_curve, ProError status, ProAppData app_data ); /* Purpose: This is the generic function for visiting a datum curve. Input Arguments: p_curve - The datum curve handle status - The status app_data - The application data passed to the function <b>ProAsmcomppathDispCurveVisit()</b> Output Arguments: none Return Values: PRO_TK_NO_ERROR - Continue visiting. Any other value - Stop visiting. */ typedef ProError (*ProCurveFilterAction) ( ProCurve p_curve, ProAppData app_data ); /* Purpose: This is the generic function for filtering a datum curve. Input Arguments: p_curve - The datum curve handle app_data - The application data passed to the function <b>ProAsmcomppathDispCurveVisit()</b> Output Arguments: none Return Values: PRO_TK_CONTINUE - Skip visiting this datum curve and go to the next. Other - Call the visit action for this datum curve. The return value is passed as input to the visit action. */ typedef ProError (*ProCsysVisitAction) ( ProCsys p_csys, ProError status, ProAppData app_data ); /* Purpose: This is the generic function for visiting a coordinate system. Input Arguments: p_csys - The coordinate system handle status - The status app_data - The application data passed to the function <b>ProSolidCsysVisit()</b> Output Arguments: none Return Values: PRO_TK_NO_ERROR - Continue visiting. Any other value - Stop visiting. */ typedef ProError (*ProCsysFilterAction) ( ProCsys p_csys, ProAppData app_data ); /* Purpose: This is the generic function for filtering a coordinate system. Input Arguments: p_csys - The coordinate system handle app_data - The application data passed to the function <b>ProSolidCsysVisit()</b> Output Arguments: none Return Values: PRO_TK_CONTINUE - Skip visiting this coordinate system and go to the next. Other - Call the visit action for this coordinate system. The return value is passed as input to the visit action. */ typedef ProError (*ProQuiltVisitAction) ( ProQuilt p_quilt, ProError status, ProAppData app_data ); /* Purpose: This is the generic function for visiting a quilt. Input Arguments: p_quilt - The quilt handle status - The status app_data - The application data passed to the function <b>ProSolidQuiltVisit()</b> Output Arguments: none Return Values: PRO_TK_NO_ERROR - Continue visiting. Any other value - Stop visiting. */ typedef ProError (*ProQuiltFilterAction) ( ProQuilt p_quilt, ProAppData app_data ); /* Purpose: This is the generic function for filtering a quilt. Input Arguments: p_quilt - The quilt handle app_data - The application data passed to the function <b>ProSolidQuiltVisit()</b> Output Arguments: none Return Values: PRO_TK_CONTINUE - Skip visiting this quilt and go to the next quilt. Other - Call the visit action for this quilt. The return value is passed as input to the visit action. */ LIB_COREUTILS_API ProError ProAsmpathProarrayFree(ProAsmpath **p_asm_pathes); /* Purpose: Frees ProArray of ProAsmpath. Input Arguments: p_asm_pathes - ProArray of ProAsmpath. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully freed the data. PRO_TK_BAD_INPUTS - p_asm_pathes is NULL. */ PRO_END_C_DECLS #endif /* PROOBJECTS_H */