#ifndef PROASMCOMPPATH_H #define PROASMCOMPPATH_H #include <ProObjects.h> PRO_BEGIN_C_DECLS extern ProError ProAsmcomppathInit (ProSolid p_solid_handle, ProIdTable memb_id_tab, int table_size, ProAsmcomppath *p_handle); /* Purpose: Initializes the <i>ProAsmcompath</i> data structure. Input Arguments: p_solid_handle - The top-level assembly memb_id_tab - The member identifier table table_size - The table size Output Arguments: p_handle - The handle to initialize Return Values: PRO_TK_NO_ERROR - The function successfully initialized the data structure. PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid. */ extern ProError ProAsmcomppathTrfGet (ProAsmcomppath *p_path, ProBoolean bottom_up, ProMatrix transformation); /* Purpose: Retrieves the transformation matrix, given the component path. Input Arguments: p_path - The component path. bottom_up - If you request the transformation from the member to the assembly, this is PRO_B_TRUE. Otherwise, this is PRO_B_FALSE. Output Arguments: transformation - The transformation matrix. Return Values: PRO_TK_NO_ERROR - The function successfully retrieved the information. PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid. PRO_TK_GENERAL_ERROR - The specified component path was wrong, or contained missing members. */ extern ProError ProAsmcomppathTrfSet (ProAsmcomppath *p_path, ProBoolean bottom_up, ProMatrix transformation); /* Purpose: Assigns the transformation matrix, given the component path. The assignment is run-time only, and takes affect only when <b>ProAssemblyDynPosSet()</b> is PRO_B_TRUE. Input Arguments: p_path - The component path. bottom_up - If you request the transformation from the member to the assembly, this is PRO_B_TRUE. Otherwise, this is PRO_B_FALSE. transformation - The transformation matrix to assign. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully set the information. PRO_TK_BAD_INPUTS - One or more of the arguments are invalid. PRO_TK_GENERAL_ERROR - The specified component path was wrong, or contained missing members. See Also: ProAssemblyDynPosSet() */ extern ProError ProAsmcomppathMdlGet (ProAsmcomppath *p_path, ProMdl *p_model); /* Purpose: Retrieves the model specified by the component path. Input Arguments: p_path - The component path Output Arguments: p_model - The model found at the end of the component path Return Values: PRO_TK_NO_ERROR - The function successfully retrieved the model. PRO_TK_BAD_INPUTS - The input argument is invalid. PRO_TK_GENERAL_ERROR - The specified component path was wrong, or contained missing members. */ extern ProError ProVectorTrfEval (ProVector in_vector, ProMatrix trf, ProVector out_vector); /* Purpose: Transforms the <I>in_vector</I> to the <I>out_vector</I> by the specified transformation matrix (rotation only). Input Arguments: in_vector - The vector to transform. trf - The transformation matrix. Output Arguments: out_vector - The result. This can be the same as <I>in_vector</I>. Return Values: PRO_TK_NO_ERROR - The function successfully transformed the <I>in_vector</I>. PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid (NULL). */ extern ProError ProPntTrfEval (ProVector in_point, ProMatrix trf, ProVector out_point); /* Purpose: Transforms the <I>in_point</I> to the <I>out_point</I> by the specified transformation matrix (both shift and rotation). Input Arguments: in_point - The vector to transform. trf - The transformation matrix. Output Arguments: out_point - The result. This can be the same as <I>in_point</I>. Return Values: PRO_TK_NO_ERROR - The function successfully transformed the <I>in_point</I>. PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid (NULL). */ extern ProError ProMatrixInit ( ProVector x_vector, ProVector y_vector, ProVector z_vector, ProPoint3d origin, ProMatrix matrix ); /* Purpose: Constructs the transformation matrix from the specified three vectors and the origin. Input Arguments: x_vector - The X-axis vector, defined as (X, Y, Z) y_vector - The Y-axis vector, defined as (X, Y, Z) z_vector - The Z-axis vector, defined as (X, Y, Z) origin - The origin point, defined as (X, Y, Z) Output Arguments: matrix - The transformation matrix Return Values: PRO_TK_NO_ERROR - The function successfully constructed the matrix. PRO_TK_BAD_INPUTS - One or more of the input arguments are invalid. */ extern ProError ProAsmcomppathDispPointVisit (ProAsmcomppath *p_path, ProSolid handle, ProPointFilterAction filter_action, ProPointVisitAction visit_action, ProAppData app_data); /* Purpose: Visits all the displayed datum points in the solid handle. Input Arguments: p_path - The solid handle's assembly component path. handle - The solid handle. Passed in for performance reasons. filter_action - The filter function. If NULL, visits all items using the action function. visit_action - The visiting function. If it returns anything other than PRO_TK_NO_ERROR, visiting stops. app_data - The application data passed to the filter and visiting functions. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully visited all the items. PRO_TK_E_NOT_FOUND - Either no displayed datum points exist, or they were all filtered out by the filter function. Other - Any other value is the value returned by the action function (visiting stopped). */ extern ProError ProAsmcomppathDispCurveVisit (ProAsmcomppath *p_path, ProSolid handle, ProCurveFilterAction filter_action, ProCurveVisitAction visit_action, ProAppData app_data); /* Purpose: Visits all the displayed datum curves in the solid handle. Input Arguments: p_path - The solid handle's assembly component path. handle - The solid handle. Passed in for performance reasons. filter_action - The filter function. If NULL, visits all items using the action function. visit_action - The visiting function. If it returns anything other than PRO_TK_NO_ERROR, visiting stops. app_data - The application data passed to the filter and visiting functions. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully visited all the items. PRO_TK_E_NOT_FOUND - Either no displayed datum curves exist, or they were all filtered out by the filter function. Other - Any other value is the value returned by the action function (visiting stopped). */ extern ProError ProAsmcomppathDispCsysVisit (ProAsmcomppath *p_path, ProSolid handle, ProCsysFilterAction filter_action, ProCsysVisitAction visit_action, ProAppData app_data); /* Purpose: Visits all the displayed coordinate systems in the solid handle. Input Arguments: p_path - The solid handle's assembly component path. handle - The solid handle. Passed in for performance reasons. filter_action - The filter function. If NULL, visits all items using the action function. visit_action - The visiting function. If it returns anything other than PRO_TK_NO_ERROR, visiting stops. app_data - The application data passed to the filter and visiting functions. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully visited all the items. PRO_TK_E_NOT_FOUND - Either no displayed coordinate systems exist, or they were all filtered out by the filter function. Other - Any other value is the value returned by the action function (visiting stopped). */ extern ProError ProAsmcomppathDispQuiltVisit (ProAsmcomppath *p_path, ProSolid handle, ProQuiltFilterAction filter_action, ProQuiltVisitAction visit_action, ProAppData app_data); /* Purpose: Visits all the displayed datum quilts in the solid handle. Input Arguments: p_path - The solid handle's assembly component path. handle - The solid handle. Passed in for performance reasons. filter_action - The filter function. If NULL, visits all items using the action function. visit_action - The visiting function. If it returns anything other than PRO_TK_NO_ERROR, visiting stops. app_data - The application data passed to the filter and visiting functions. Output Arguments: none Return Values: PRO_TK_NO_ERROR - The function successfully visited all the items. PRO_TK_E_NOT_FOUND - Either no displayed datum quilt exist, or they were all filtered out by the filter function. Other - Any other value is the value returned by the action function (visiting stopped). */ typedef ProError (*ProAsmcompActivatePreAction) (ProAsmcomppath* active_path, ProSolid active_model); /* Purpose: This is the notification function that is called when the user chooses to activate a model from the model tree using "Activate", befor any actions are taken. This function is to be supplied by the user by calling <b>ProNotificationSet()</b> with the notify type PRO_ASMCOMP_ACTIVATION_PRE. Input Arguments: active_path - The path to the new active model. active_model - The newly activated model. Output Arguments: none Return Values: PRO_TK_NO_ERROR - Continue activation. Other - Error happend. Abort the activation. */ typedef ProError (*ProAsmcompActivatePostAction) (ProAsmcomppath* active_path, ProSolid active_model, ProError in_err); /* Purpose: This is the notification function that is called when the user chooses to activate a model from the model tree using "Activate", after actual activation was done. This function is to be supplied by the user by calling <b>ProNotificationSet()</b> with the notify type PRO_ASMCOMP_ACTIVATION_POST. Input Arguments: active_path - The path to the new active model. active_model - The newly activated model. in_err - PRO_TK_NO_ERROR if the user accepted activation of the component; PRO_TK_ABORT if the user cancelled activation. Output Arguments: none Return Values: PRO_TK_NO_ERROR - Activation was successfully finished. Other - Activation finished, but with problems. */ PRO_END_C_DECLS #endif