## Angular Dimensions An angular dimension is defined for two geometric objects that have vector guiding lines. The angular dimension value is specified in radians, its values range from $0$ to $2\pi$ and it is defined by an angle between the direction vectors of the first and second objects measured counterclockwise. An angular dimension measured this way is shown in Fig.1 as two intersecting lines with given directions. The right part of Fig.2 shows a pair of lines that have the same angle between vectors, but with the dimension measures a reverse angle sector. The value of such dimension is determined by formula $D = 2\pi - \alpha$, where $\alpha$ is the measured angle between the vectors, and $D$ is the dimension value. This dimension is also called a conjugate dimension. Another way to receive it is just to swap angular dimension arguments. ```{figure} ../../pictures/S.2.7.1.png :width: 15cm :align: center Fig. 1 ``` ```{figure} ../../pictures/S.2.7.2.png :width: 15cm :align: center Fig. 2 ``` There are four ways to define an angular dimension for one pair of directions, including the two ways described above. Fig.3 shows a dimension, its value is determined by adjacent angle formula: $D = \pi - \alpha$. Fig.4 (right part) shows an alternate adjacent angle version that is defined by the formula $D = \pi + \alpha$. ```{figure} ../../pictures/S.2.7.3.png :width: 15cm :align: center Fig. 3 ``` ```{figure} ../../pictures/S.2.7.4.png :width: 15cm :align: center Fig. 4 ``` One more pattern associated with four ways to set the angular dimension is that the dimension with the value $D = 2\pi - \alpha$ can be produced from the dimension with the value $D = \alpha$ after a simple swap of the first and second dimensional constraint objects. Similarly, the 4th variant ($D = \pi + \alpha$) can be received from the 3rd one ($D = \pi - \alpha$) by swapping the arguments. Angular dimension for a pair of directed objects, such as segments, lines, or ellipses, is defined by the ```cpp constraint_item GCE_AddAngle(GCE_system gSys, geom_item l1 , geom_item l2 , const GCE_adim_pars & dPars). ``` The function creates a new angular dimension defined for the **l1** and **l**2 geometric objects in the **gSys** constraint system. The dimension value and the way to define it are determined by the **dPars** structure. The function returns the descriptor of a new angular dimension. The **dPars** structure determines the value of an angular dimension defined using the **dPars.dPars** structure (**GCE_dim_par**), where the dimension value is stored in **dPars.dPars.var** variable or if **dPars.dPars.var = GCE_NULL_V** then the dimension value is defined by **dPars.dPars.dimValue** independent numeric parameter, that makes it a driving dimension. Driving and variational dimensions are further described in Item [Driving and Variational Dimensions](./Driving_and_Variational_Dimensions.md). If **dPars.adjacent = false**, then the dimension value would be defined by the formula $D = f \cdot \alpha$. The ***f*** factor in this formula is defined by the **dPars.factor** parameter, and it permits to set the angular dimension in other units. For example, if **dPars.factor** = $180/\pi$, then the application can set the angular dimension in degrees. To set the angular dimension with value $D = f \cdot (2\pi - \alpha$), it is required to swap **l1** and **l2**. To define the angular dimensions with adjacent angle variant shown in Fig. 28.7.3 and Fig. 28.7.4, it is required to set the flag **dPars.adjacent = true**. In this case, the dimension value will be defined by formula $D = f \cdot (\pi - \alpha)$ or $D = f \cdot (\pi + \alpha)$. The second formula is recieved by swapping the arguments **l1** and **l2**. The ***f*** factor is also defined by the **dPars.factor** parameter.