#ifndef CNS_SHEAR_SEQUENCE_H #define CNS_SHEAR_SEQUENCE_H #include "cns.h" #ifdef __cplusplus extern "C" { #endif typedef struct CNS_ShearSequence * CNS_ShearSequencePtr; /** * Compute the shear sequence on the given nesting. * * If there is an interpart gap beteween parts (see CNS_SetInterpartGap), then there must be a shear * gap (see CNS_SetShearGap) that is greater or equal otherwise a sequence can not be found. In * this case, if there is some non zero border gaps (see CNS_SetSheetGaps) the border gaps must be * greater or equal then the interpart gap. */ CNS_EXPORT CNS_ShearSequencePtr CNS_API CNS_ComputeShearSequence(CNS_NestingPtr nesting); /** * Delete the shear sequence. */ CNS_EXPORT void CNS_API CNS_DeleteShearSequence(CNS_ShearSequencePtr sequence); /** * For debugging, display the shear sequence in SVG */ CNS_EXPORT void CNS_API CNS_DrawShearSequence(CNS_NestingPtr nesting, CNS_ShearSequencePtr sequence, const char * filename); /** * return the number of cut elements in the given shear sequence */ CNS_EXPORT unsigned CNS_API CNS_GetNumberOfElementsInShearSequence(CNS_ShearSequencePtr sequence); /** * return the given element in the given shear sequence */ CNS_EXPORT void CNS_API CNS_GetElementInShearSequence(CNS_ShearSequencePtr sequence, unsigned element, double * xo, double * yo, double * xe, double * ye); /** * return the number of offcuts in the shear sequence */ CNS_EXPORT unsigned CNS_API CNS_GetNumberOfOffcutsInShearSequence(CNS_ShearSequencePtr sequence); /** * return the given offcut in the shear sequence */ CNS_EXPORT void CNS_API CNS_GetOffcutInShearSequence(CNS_ShearSequencePtr sequence, unsigned offcut, double * minx, double * miny, double * maxx, double * maxy); #ifdef __cplusplus } #endif #endif