CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
GeUtils.h
Go to the documentation of this file.
1
2// Copyright (C) 2002-2022, Open Design Alliance (the "Alliance").
3// All rights reserved.
4//
5// This software and its documentation and related materials are owned by
6// the Alliance. The software may only be incorporated into application
7// programs owned by members of the Alliance, subject to a signed
8// Membership Agreement and Supplemental Software License Agreement with the
9// Alliance. The structure and organization of this software are the valuable
10// trade secrets of the Alliance and its suppliers. The software is also
11// protected by copyright law and international treaty provisions. Application
12// programs incorporating this software must include the following statement
13// with their copyright notices:
14//
15// This application incorporates Open Design Alliance software pursuant to a license
16// agreement with Open Design Alliance.
17// Open Design Alliance Copyright (C) 2002-2022 by Open Design Alliance.
18// All rights reserved.
19//
20// By use of this software, its documentation or related materials, you
21// acknowledge and accept the above terms.
23
24
25
26
27#ifndef OD_GEGBLGEUTILS_H
28#define OD_GEGBLGEUTILS_H
30#include "TD_PackPush.h"
31
32inline void moveIntoValidInter(const double& startAngleInV, const double& endAngleInV, double& v, const double period = Oda2PI)
33{
34 if (v < startAngleInV)
35 {
36 v = startAngleInV - fmod(startAngleInV - v, period);
37 if (v < startAngleInV)
38 v += period;
39 }
40 if (v > endAngleInV)
41 {
42 v = endAngleInV + fmod(v - endAngleInV, period);
43 if (v > endAngleInV)
44 v -= period;
45 }
46 if (v < startAngleInV)
47 {
48 double d1 = startAngleInV - v;
49 double d2 = fabs(endAngleInV - v - period);
50 if (d2 < d1)
51 v += period;
52 }
53}
54
55inline void makeInterValid(double& startAngle, double& endAngle, const double period = Oda2PI)
56{
57 if (startAngle > endAngle)
58 {
59 std::swap(startAngle, endAngle);
60 }
61 if (OdGreater(endAngle - startAngle, period))
62 {
63 startAngle = -period / 2;
64 endAngle = period / 2;
65 }
66}
67
68#include "TD_PackPop.h"
69
70#endif // OD_GEGBLGEUTILS_H
71
void makeInterValid(double &startAngle, double &endAngle, const double period=Oda2PI)
Definition: GeUtils.h:55
void moveIntoValidInter(const double &startAngleInV, const double &endAngleInV, double &v, const double period=Oda2PI)
Definition: GeUtils.h:32
#define Oda2PI
Definition: OdaCommon.h:57
bool OdGreater(double x, double y, double tol=1.e-10)
Definition: OdaDefs.h:557
const GLfloat * v
Definition: gles2_ext.h:315