-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathHArc.h
More file actions
52 lines (43 loc) · 1.77 KB
/
HArc.h
File metadata and controls
52 lines (43 loc) · 1.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// HArc.h
// Copyright (c) 2009, Dan Heeks
// This program is released under the BSD license. See the file COPYING for details.
#pragma once
#include "EndedObject.h"
class HArc: public EndedObject{
public:
gp_Ax1 m_axis;
gp_Pnt C;
double m_radius;
~HArc(void);
HArc(const gp_Pnt &a, const gp_Pnt &b, const gp_Circ &c, const HeeksColor* col);
HArc(const HArc &arc);
const HArc& operator=(const HArc &b);
gp_Circ GetCircle() const;
void SetCircle(gp_Circ c);
bool IsIncluded(gp_Pnt pnt);
// HeeksObj's virtual functions
int GetType()const{return ArcType;}
long GetMarkingMask()const{return MARKING_FILTER_ARC;}
int GetIDGroupType()const{return LineType;}
void GetBox(CBox &box);
const wchar_t* GetTypeString(void)const{return L"Arc";}
HeeksObj *MakeACopy(void)const;
void ModifyByMatrix(const double *mat);
bool FindNearPoint(const double* ray_start, const double* ray_direction, double *point);
bool FindPossTangentPoint(const double* ray_start, const double* ray_direction, double *point);
bool Stretch(const double *p, const double* shift, void* data);
void GetSegments(void(*callbackfunc)(const double *p), double pixels_per_mm, bool want_start_point = true)const;
bool GetCentrePoint(double* pos);
int Intersects(const HeeksObj *object, std::list< double > *rl)const;
bool DescendForUndo(){return false;}
bool IsDifferent(HeeksObj* other);
HeeksObj* MakeACopyWithID();
void ReloadPointers();
bool Intersects(const gp_Pnt &pnt)const;
gp_Vec GetSegmentVector(double fraction)const;
gp_Pnt GetPointAtFraction(double fraction)const;
static bool TangentialArc(const gp_Pnt &p0, const gp_Vec &v0, const gp_Pnt &p1, gp_Pnt ¢re, gp_Dir &axis);
bool UsesID(){return true;}
void Reverse();
double IncludedAngle()const;
};