#ifndef PROSETDATUMTAG_H_
#define PROSETDATUMTAG_H_
#include <ProToolkit.h>
#include <ProSelection.h>
#include <ProNote.h>
PRO_BEGIN_C_DECLS
typedef struct pro_model_item ProSetDatumTag;
typedef enum pro_dtm_feat_addl_text_pos
{
PRO_DTM_FEAT_ADDL_TEXT_RIGHT,
PRO_DTM_FEAT_ADDL_TEXT_BOTTOM,
PRO_DTM_FEAT_ADDL_TEXT_LEFT,
PRO_DTM_FEAT_ADDL_TEXT_TOP,
PRO_DTM_FEAT_ADDL_TEXT_DEFAULT
}ProDtmFeatAddlTextPos;
extern ProError ProGeomitemSetdatumtagGet (ProGeomitem* item,
ProSetDatumTag* set_datum_tag);
/*
Purpose: Obtains the set datum tag referring to this geometry item, if it
exists.
Licensing Requirement:
UNRECOGNIZED
Input Arguments:
item - The geometry item.
Output Arguments:
set_datum_tag - The set datum tag annotation.
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
PRO_TK_E_NOT_FOUND - There is no set datum tag annotation for the given
geometry.
*/
extern ProError ProSetdatumtagPlaneGet (ProSetDatumTag* tag,
ProAnnotationPlane* plane);
/*
Purpose: Obtains the annotation plane for a set datum tag.
Licensing Requirement:
UNRECOGNIZED
Input Arguments:
tag - The set datum tag annotation.
Output Arguments:
plane - The annotation plane.
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
*/
extern ProError ProSetdatumtagAttachmentGet (ProSetDatumTag* tag,
ProSelection* attachment);
/*
Purpose: Obtains the item to which the set datum tag is attached
(dimension, gtol, or geometry).
Licensing Requirement:
UNRECOGNIZED
Input Arguments:
tag - The set datum tag.
Output Arguments:
attachment - The attachment. (Caller should free memory of *attachment
by using ProSelectionFree().)
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
PRO_TK_E_NOT_FOUND - The set datum tag attachment is to the datum
itself.
See Also:
ProSetdatumtagPlacementGet()
*/
extern ProError ProSetdatumtagPlacementGet (ProSetDatumTag* tag,
ProModelitem* attach_item);
/*
Purpose: Obtains the item (type,id,owner only) to which the set datum tag
is attached (dimension, gtol, or geometry). This function is
useful in cases where it is not possible to construct the
selection. For example , Solid owned DFS attached to solid owned
dimension created in drawing.
Licensing Requirement:
UNRECOGNIZED
Input Arguments:
tag - The set datum tag.
Output Arguments:
attach_item - The attachment item.
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
See Also:
ProSetdatumtagAttachmentGet()
*/
extern ProError ProSetdatumtagReferenceGet (ProSetDatumTag* tag,
ProGeomitem* reference);
/*
Purpose: Obtains the geometry item used as the set datum.
<P><B>Note:</B>This API works for old style SDTA not for DFS</P>
Licensing Requirement:
UNRECOGNIZED
Input Arguments:
tag - The set datum tag.
Output Arguments:
reference - The geometry of the set datum.
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
PRO_TK_NOT_VALID - The input argument is a new style DFS.
*/
extern ProError ProSetdatumtagReferencesAdd( ProSetDatumTag *dfs,
ProAnnotationReference *refs );
/*
Purpose: Add DFS semantic references
Input Arguments:
dfs - valid DFS.
refs - ProArray of DFS references.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function completed successfully.
PRO_TK_BAD_INPUTS - The input argument is invalid.
*/
extern ProError ProSetdatumtagReferencesGet( ProSetDatumTag *dfs,
ProAnnotationReference **refs );
/*
Purpose: Get DFS semantic references
Input Arguments:
dfs - valid DFS.
Output Arguments:
refs - ProArray of DFS references. Free it using ProArrayFree()
Return Values:
PRO_TK_NO_ERROR - The function completed successfully.
PRO_TK_BAD_INPUTS - The input argument is invalid.
*/
extern ProError ProSetdatumtagReferenceDelete( ProSetDatumTag *dfs,
int index );
/*
Purpose: Delete DFS semantic reference
Input Arguments:
dfs - valid DFS.
index - Indices start from 0. Get existing references from
ProSetdatumtagReferencesGet()
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function completed successfully.
PRO_TK_BAD_INPUTS - The input argument is invalid.
*/
extern ProError ProSetdatumtagTextstyleGet (ProSetDatumTag* tag,
ProTextStyle* text_style);
/*
Purpose:
<P><B>Note:</B> This function is deprecated. Use
ProAnnotationTextstyleGet() instead.</P> Obtains the text style
for the set datum tag.
Licensing Requirement:
UNRECOGNIZED
Input Arguments:
tag - The set datum tag.
Output Arguments:
text_style - The text style. Free this using ProTextstyleFree().
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
*/
extern ProError ProSetdatumtagTextstyleSet (ProSetDatumTag* tag,
ProTextStyle text_style);
/*
Purpose:
<P><B>Note:</B> This function is deprecated. Use
ProAnnotationTextstyleSet() instead.</P> Assigns the text style
for the set datum tag.
<P><B>Note:</B>Angle and Mirror properties cannot be set. They can
be set only for Notes and Dimensions.</P>
Licensing Requirement:
UNRECOGNIZED
Input Arguments:
tag - The set datum tag.
text_style - The text style.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
*/
extern ProError ProSetdatumtagPlaneSet (ProSetDatumTag* tag,
ProAnnotationPlane* plane);
/*
Purpose: Assigns the annotation plane for a set datum tag.
Licensing Requirement:
UNRECOGNIZED
Input Arguments:
tag - The set datum tag annotation.
plane - The annotation plane.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
*/
extern ProError ProSetdatumtagAttachmentSet (ProSetDatumTag* tag,
ProSelection attachment);
/*
Purpose: Assigns the item to which the set datum tag is attached.
Licensing Requirement:
UNRECOGNIZED
Input Arguments:
tag - The set datum tag.
attachment - The attachment. Use NULL to attach the tag to its datum
plane, or to the default position on its axis.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
*/
typedef ProError (*ProSetdatumtagFilterAction) (ProSetDatumTag* set_datum_tag,
ProAppData app_data);
/*
Purpose: Filter action for visiting set datum tags.
Input Arguments:
set_datum_tag - The set datum tag.
app_data - Application data passed to the function.
Output Arguments:
none
Return Values:
PRO_TK_CONTINUE - Skip the visit action for this annotation.
Any other value - Calll the vist action for this annotation. This
status will be passed to the visit action.
*/
typedef ProError (*ProSetdatumtagVisitAction) (ProSetDatumTag* set_datum_tag,
ProError error,
ProAppData app_data);
/*
Purpose: Visit action for visiting set datum tags.
Input Arguments:
set_datum_tag - The set datum tag.
error - Error return passed from the filter action.
app_data - Application data passed to the function.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - Continue visiting.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
*/
extern ProError ProSolidSetdatumtagVisit (ProSolid solid,
ProSetdatumtagVisitAction action,
ProSetdatumtagFilterAction filter,
ProAppData app_data);
/*
Purpose: Visits the set datum tag annotations in a solid model.
Licensing Requirement:
UNRECOGNIZED
Input Arguments:
solid - The part or assembly.
action - The visit action
filter - The filter action. Can be NULL.
app_data - Application data passed to the action functions. Can be
NULL.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
PRO_TK_E_NOT_FOUND - No set datum tag annotations were found in the
model.
Any other value - The value returned by the visit action to stop
visiting.
*/
extern ProError ProDrawingSetdatumtagVisit (ProDrawing drawing,
ProSetdatumtagVisitAction action,
ProSetdatumtagFilterAction filter,
ProAppData app_data);
/*
Purpose: Visits the set datum tag annotations in a drawing.
Licensing Requirement:
UNRECOGNIZED
Input Arguments:
drawing - The drawing.
action - The visit action
filter - The filter action. Can be NULL.
app_data - Application data passed to the action functions. Can be
NULL.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
PRO_TK_E_NOT_FOUND - No set datum tag annotations were found in the
drawing.
Any other value - The value returned by the visit action to stop
visiting.
*/
extern ProError ProSetdatumtagCreate (ProGeomitem* reference,
ProAnnotationPlane* annotation_plane,
ProSelection attachment,
ProSetDatumTag* tag);
/*
Purpose: Create a new set datum tag annotation. ProAnnotationShow() should
be called after creating the annotation in order for the
annotation to be displayed.
Licensing Requirement:
UNRECOGNIZED
Input Arguments:
reference - The set datum tag annotation reference.
annotation_plane - The annotation plane. If the attachment is to a
dimension or gtol, can be NULL.
attachment - The attachment location, for set datum tags on geometry.
Can be NULL.
Output Arguments:
tag - The new set datum tag.
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
PRO_TK_INVALID_TYPE - Invalid reference type for a set datum.
PRO_TK_E_AMBIGUOUS - The annotation plane cannot be used in conjunction
with the properties of the reference item or
attachment.
PRO_TK_E_FOUND - The geometry reference is already a set datum.
*/
extern ProError ProMdlSetdatumtagCreate (ProMdl p_mdl, ProSelection attachment,
ProAnnotationPlane* annotation_plane,
wchar_t *label,
ProSetDatumTag *r_dfs);
/*
Purpose: Create a new datum feature symbol annotation. ProAnnotationShow()
should be called after creating the annotation in order for the
annotation to be displayed.
Licensing Requirement:
UNRECOGNIZED
Input Arguments:
p_mdl - solid or drawing.
attachment - attachment reference.
annotation_plane - The annotation plane. If the attachment is to a
dimension or gtol, can be NULL. For drawing,
annotation plane should be NULL.
label - label of datum feature symbol
Output Arguments:
r_dfs - new datum feature symbol
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
PRO_TK_E_AMBIGUOUS - The annotation plane cannot be used in conjunction
with the properties of the attachment.
*/
extern ProError ProMdlSetdatumtagDelete (ProSetDatumTag* symbol);
/*
Purpose: Delete a new datum feature symbol annotation.
Licensing Requirement:
UNRECOGNIZED
Input Arguments:
symbol - new datum feature symbol
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
PRO_TK_CANT_MODIFY - Cannot delete set datum tag.
*/
extern ProError ProSetdatumtagLabelSet (ProSetDatumTag* dfs, wchar_t* lbl);
/*
Purpose: Sets label to datum feature symbol annotation
Licensing Requirement:
UNRECOGNIZED
Input Arguments:
dfs - datum feature symbol annotation.
lbl - label of datum feature symbol
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
*/
extern ProError ProSetdatumtagLabelGet (ProSetDatumTag* dfs, wchar_t** lbl);
/*
Purpose: Get label of datum feature symbol annotation
Licensing Requirement:
UNRECOGNIZED
Input Arguments:
dfs - datum feature symbol annotation.
Output Arguments:
lbl - label of datum feature symbol. Free it using ProWstringFree()
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
*/
extern ProError ProSetdatumtagAdditionalTextSet (ProSetDatumTag* dfs, wchar_t* lbl,
ProDtmFeatAddlTextPos addlTextPos);
/*
Purpose: Sets Additional text and Position to datum feature symbol
annotation
Licensing Requirement:
UNRECOGNIZED
Input Arguments:
dfs - datum feature symbol annotation.
lbl - label of datum feature symbol.
addlTextPos - position where the Additional text Appears. Default
position is Right
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
*/
extern ProError ProSetdatumtagAdditionalTextGet (ProSetDatumTag* dfs, wchar_t** lbl,
ProDtmFeatAddlTextPos* addlTextPos);
/*
Purpose: Gets Additional text and Position to datum feature symbol
annotation
Licensing Requirement:
UNRECOGNIZED
Input Arguments:
dfs - datum feature symbol annotation.
Output Arguments:
lbl - label of datum feature symbol. Free it using ProWstringFree()
addlTextPos - position where the Additional text Appears.
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
*/
extern ProError ProSetdatumtagElbowSet (ProSetDatumTag* dfs, ProBoolean elbow);
/*
Purpose: Sets or unset Elbow to datum feature symbol annotation
Licensing Requirement:
UNRECOGNIZED
Input Arguments:
dfs - datum feature symbol annotation.
elbow - leader - Pass PRO_B_TRUE to set Elbow display otherwise
PRO_B_FALSE
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
PRO_TK_CANT_MODIFY - datum feature symbol annotation can't be modified.
*/
extern ProError ProSetdatumtagElbowGet (ProSetDatumTag* dfs, ProBoolean* elbow);
/*
Purpose: Outputs whether a specified datum feature symbol annotation Elbow
is set.
Licensing Requirement:
UNRECOGNIZED
Input Arguments:
dfs - datum feature symbol annotation.
Output Arguments:
elbow - PRO_B_TRUE if dfs has Elbow display otherwise PRO_B_FALSE
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
PRO_TK_CANT_ACCESS - datum feature symbol annotation can't be accessed.
*/
extern ProError ProSetdatumtagASMEDisplayGet (ProSetDatumTag* dfs, ProBoolean *asme);
/*
Purpose: Outputs whether a specified datum feature symbol annotation ASME
is set.
Licensing Requirement:
UNRECOGNIZED
Input Arguments:
dfs - datum feature symbol annotation.
Output Arguments:
asme - PRO_B_TRUE if symbol has ASME display otherwise PRO_B_FALSE
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
PRO_TK_CANT_ACCESS - datum feature symbol annotation can't be accessed.
*/
extern ProError ProSetdatumtagASMEDisplaySet (ProSetDatumTag* dfs, ProBoolean asme);
/*
Purpose: Set or unset ASME display of datum feature symbol annotation.
Licensing Requirement:
UNRECOGNIZED
Input Arguments:
dfs - datum feature symbol annotation.
asme - Pass PRO_B_TRUE to set ASME display otherwise PRO_B_FALSE
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
PRO_TK_CANT_MODIFY - datum feature symbol annotation can't be modified.
*/
extern ProError ProSetdatumtagTextLocationGet (ProSetDatumTag* dfs,ProDrawing drw, Pro3dPnt pnt);
/*
Purpose: Gets text point of datum feature symbol.
Licensing Requirement:
UNRECOGNIZED
Input Arguments:
dfs - The set datum tag.
drw - Pass drawing for dfs owned by solid and shown in drawing. Pass
NULL otherwise.
Output Arguments:
pnt - point
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
PRO_TK_E_AMBIGUOUS - The DFS is owned by solid and shown in drawing.
See Also:
ProSetdatumtagTextPointGet()
*/
extern ProError ProDrawingSetDatumTagIsShown(ProSetDatumTag* set_datum_tag,
ProDrawing drawing,
ProView view,
ProBoolean* is_shown);
/*
Purpose: Determines if an Set Datum Tag is shown in a particular view of a
drawing.
Licensing Requirement:
UNRECOGNIZED
Input Arguments:
set_datum_tag - The set datum tag.
drawing - The drawing that shows the annotation.
view - The drawing view.
Output Arguments:
is_shown - PRO_B_TRUE if the set datum tag is shown, PRO_B_FALSE if it
is not shown in the target view.
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more arguments was invalid.
PRO_TK_BAD_CONTEXT - DFS cannot be shown in specified drawing view.
*/
extern ProError ProSetdatumtagAdditionalTextLocationGet(ProSetDatumTag* dfs,
ProDrawing drawing,
ProView view,
Pro3dPnt addl_pnt);
/*
Purpose: Gets Additional text point of datum feature symbol.
Licensing Requirement:
UNRECOGNIZED
Input Arguments:
dfs - The set datum tag.
drawing - Pass drawing for dfs owned by solid and shown in drawing.
Pass NULL otherwise.
view - Pass view if drw is not NULL. Pass NULL otherwise.
Output Arguments:
addl_pnt - point
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
PRO_TK_E_NOT_FOUND - The set datum tag annotation is not found or it
has no Additional Text.
*/
extern ProError ProDrawingSetdatumtagErase(ProDrawing drawing, ProView view, ProSetDatumTag* tag);
/*
Purpose: Sets an set datum tag to be erased from drawing view. This changes
the drawing database to not show the annotation until it is
explicitly shown again.
Input Arguments:
drawing - The drawing where dfs needs to be shown.
view - drawing view. Should NOT be NULL
tag - dfs
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more arguments was invalid.
PRO_TK_BAD_CONTEXT - DFS cannot be shown in specified drawing view.
PRO_TK_NO_CHANGE - The annotation is not shown in the target drawing
view.
PRO_TK_E_AMBIGUOUS - DFS is place on a surface in solid but the view of
the DFS is not passed.
See Also:
ProAnnotationShow()
ProAnnotationIsShown()
ProCombstateAnnotationErase()
ProDrawingAnnotationErase()
*/
extern ProError ProSetdatumtagTextPointGet (ProSetDatumTag* dfs, ProDrawing drw, ProView view, Pro3dPnt pnt);
/*
Purpose: Gets text point of datum feature symbol.
Licensing Requirement:
UNRECOGNIZED
Input Arguments:
dfs - The set datum tag.
drw - Pass drawing for dfs owned by solid and shown in drawing. Pass
NULL otherwise.
view - View in which DFS is shown if drawing is not NULL.
Output Arguments:
pnt - point
Return Values:
PRO_TK_NO_ERROR - The function succeeded.
PRO_TK_BAD_INPUTS - One or more input arguments was invalid.
*/
PRO_END_C_DECLS
#endif