#ifndef PRO_LAYERSTATE_H
#define PRO_LAYERSTATE_H
#include <ProMdl.h>
#include <ProObjects.h>
#include <ProLayer.h>
PRO_BEGIN_C_DECLS
extern ProError ProLayerstatesGet(ProSolid p_solid,
ProLayerstate **p_state_array);
/*
Purpose: Get Layer state list.
Input Arguments:
p_solid - Solid.
Output Arguments:
p_state_array - ProArray of layer states. Call the function
<b>ProArrayFree()</b> to free the array.
Return Values:
PRO_TK_NO_ERROR - Returned not empty array of states.
PRO_TK_BAD_INPUTS - Invalid input arguments.
PRO_TK_E_NOT_FOUND - No layer states in the model.
*/
extern ProError ProLayerstateCreate (ProSolid p_solid,
ProName state_name,
ProLayer *layers,
ProLayerDisplay *disp_arr,
ProLayerItem *hidden_items,
ProAnnotation *annotations,
int *status_flags,
ProLayerstate *p_state);
/*
Purpose: Create Layer state from references. <b>Note:</b> ProLayerItem of
type PRO_LAYER_LAYER cannot be added to Layer States using
ProLayerstateCreate.
Input Arguments:
p_solid - Solid.
state_name - New layer state name. The name may consist of
alphanumeric, underscore and hyphen characters only.
layers - ProArray of layers referenced by the new state.
disp_arr - ProArray of layer display statuses. Must be equal in size to
the layers array.
hidden_items - ProArray of hidden items.
annotations - ProArray of annotations on a layer.
status_flags - ProArray of integers. Statuses of the annotations in the
layer state. The statuses are true/false values. true =
excluded from layer. Array size must be equal to
annotations' size.
Output Arguments:
p_state - Returned newly created layer state.
Return Values:
PRO_TK_NO_ERROR - Layer state created successfully.
PRO_TK_BAD_INPUTS - Incorrect Input parameters.
PRO_TK_INVALID_ITEM - Size of arrays don't match. See description
above.
PRO_TK_GENERAL_ERROR - Layer state creation aborted.
PRO_TK_INVALID_NAME - Layer state name is invalid. The name may be too
long or contains invalid characters.
PRO_TK_E_FOUND - Provided layer state name already exists in the model.
*/
extern ProError ProLayerstateLayersGet(ProLayerstate *state,
ProName state_name,
ProLayer **p_layers,
ProLayerDisplay **p_disp_arr,
ProLayerItem **p_hidden_items,
ProAnnotation **p_annotations,
int **p_status_flags);
/*
Purpose: Get layer state reference data.
Input Arguments:
state - layer state. Output Arguments:
state_name - layer state name. Can be NULL.
p_layers - ProArray of layers referenced by the layer state. To free
the array call <b>ProArrayFree()</b>.
p_disp_arr - ProArray of diplay statuses of the layers. To free the
array call <b>ProArrayFree()</b>.
p_hidden_items - ProArray of referenced hidden items. To free the array
call <b>ProArrayFree()</b>.
p_annotations - ProArray of referenced annotations. To free the array
call <b>ProArrayFree()</b>.
p_status_flags - ProArray of annotations' status flags. To free the
array call <b>ProArrayFree()</b>.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - Successfull function execution.
PRO_TK_BAD_INPUTS - layer state is invalid.
*/
extern ProError ProLayerstateNameGet(ProLayerstate *state, ProName state_name);
/*
Purpose: return the name of the layer state.
Input Arguments:
state - layer state.
Output Arguments:
state_name - layer state name.
Return Values:
PRO_TK_NO_ERROR Name returned successfully. PRO_TK_BAD_INPUTS Incorrect
layer state.
*/
extern ProError ProLayerstateDelete (ProLayerstate *p_state);
/*
Purpose: Delete specified layer state.
Input Arguments:
p_state - layer state.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - Layer state deleted.
PRO_TK_BAD_INPUTS - Invalid layer state data.
PRO_TK_E_NOT_FOUND - Layer state not found.
*/
extern ProError ProLayerstateActivate (ProLayerstate *p_state);
/*
Purpose: Activate specified layer state. Model of the layer state must be
top model in window. Otherwise activate fails.
Input Arguments:
p_state - layer state.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - Layer state activated.
PRO_TK_BAD_INPUTS - Invalid layer state data.
PRO_TK_E_NOT_FOUND - Layer state not found.
PRO_TK_GENERAL_ERROR - Can't activate layer state.
*/
extern ProError ProLayerstateActiveGet (ProSolid p_solid, ProLayerstate *p_state);
/*
Purpose: Get active layer state on a model.
Input Arguments:
p_solid - Solid.
Output Arguments:
p_state - Active layer state.
Return Values:
PRO_TK_NO_ERROR - Active layer state returned.
PRO_TK_BAD_INPUTS - Wrong input parameters.
PRO_TK_E_NOT_FOUND - No active layer state on the model.
*/
extern ProError ProLayerstateActivestateUpdate (ProSolid p_solid);
/*
Purpose: Update active layer state.
Input Arguments:
p_solid - Solid.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR Active layer state update. PRO_TK_BAD_INPUTS Wrong
input parameters. PRO_TK_E_NOT_FOUND No active layer state on the
model.
*/
extern ProError ProLayerstateLayerAdd (ProLayerstate *layer_state,
ProLayer *layer,
ProLayerDisplay display_state);
/*
Purpose: Add layer reference to a layer state.
Input Arguments:
layer_state - Layer state.
layer - Layer to be added.
display_state - Display state of the layer to be added.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - Layer added.
PRO_TK_BAD_INPUTS - Invalid input parameters.
PRO_TK_BAD_CONTEXT - Passed models of either layer state or the layer
are not of ProSolid type.
PRO_TK_E_NOT_FOUND - Layer state is not found.
PRO_TK_NOT_EXIST - Layer does not exist.
*/
extern ProError ProLayerstateLayerRemove (ProLayerstate *layer_state,
ProLayer *layer);
/*
Purpose: Remove layer reference from a layer state.
Input Arguments:
layer_state - Layer state.
layer - Layer to be removed.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - Layer removed.
PRO_TK_BAD_INPUTS - Invalid input parameters.
PRO_TK_BAD_CONTEXT - Passed models of either layer state or the layer
are not of ProSolid type.
PRO_TK_E_NOT_FOUND - Layer state or Layer is not found.
PRO_TK_NOT_EXIST - Layer does not exist.
*/
extern ProError ProLayerstateModelitemHide(ProLayerstate *layer_state,
ProLayerItem *item);
/*
Purpose: Added an item to be hidden on the layer state.
Input Arguments:
layer_state - Layer State.
item - Item to be hidden.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - Item added to the layer state.
PRO_TK_BAD_INPUTS - Invalid input arguments. Invalid item.
PRO_TK_NOT_EXIST - Layer state not found.
PRO_TK_NO_CHANGE - Item is already hidden on the layer state.
*/
extern ProError ProLayerstateModelitemUnhide(ProLayerstate *layer_state,
ProLayerItem *item);
/*
Purpose: Remove the item from the layer state hidden items list.
Input Arguments:
layer_state - Layer State.
item - Item to be unhidden.
Output Arguments:
none
Return Values:
PRO_TK_NO_ERROR - Item removed from the layer state.
PRO_TK_BAD_INPUTS - Invalid input arguments.
PRO_TK_NOT_EXIST - Layer state not found.
PRO_TK_NO_CHANGE - Item is unhidden already.
*/
extern ProError ProLayerstateModelitemIsHidden(ProLayerstate *layer_state,
ProLayerItem *item,
ProBoolean *p_value);
/*
Purpose: Check if the item is hidden on the layer state.
Input Arguments:
layer_state - Layer state.
item - Item to be checked.
Output Arguments:
p_value - True / False value.
Return Values:
PRO_TK_NO_ERROR - Value returned successfully.
PRO_TK_BAD_INPUTS - Invalid input data.
PRO_TK_NOT_EXIST - Layer state not found.
*/
PRO_END_C_DECLS
#endif