FRX SDK Documentation 2025 SP0
Loading...
Searching...
No Matches
Edge.h
Go to the documentation of this file.
1//
2// (C) Copyright 2005-2024 by Graebert GmbH.
3//
4// Permission to use, copy, modify, and distribute this software in
5// object code form for any purpose and without fee is hereby granted,
6// provided that the above copyright notice appears in all copies and
7// that both that copyright notice and the limited warranty and
8// restricted rights notice below appear in all supporting
9// documentation.
10//
11// GRAEBERT PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
12// GRAEBERT SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
13// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. GRAEBERT GMBH
14// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
15// UNINTERRUPTED OR ERROR FREE.
16
17#pragma once
18
19#include "Entity.h"
20#include "Line3d.h"
21#include "Plane.h"
22#include "Vector3d.h"
23//#include "Circle3d.h"
24
25class Vertex;
26class Face;
27class Curve;
28class Surface;
29
30class ARX_API Edge : public Entity
31{
32public:
33 //Edge( Edge&& );
34 Edge( Edge const& );
36 Edge( void );
37 bool angleBetweenFacesIsConcave( void )const;
38 bool angleBetweenFacesIsConvex( void )const;
39 bool angleBetweenFacesIsStraight( void )const;
40 bool canMergeWithPrevious( bool )const;
41 bool hasPartner( Edge* )const;
42 bool isApprox( void )const;
43 bool isBridge( void )const;
44 bool isEulerEdge( void )const;
45 bool isManifold( void )const;
46 bool isOnCircle( void )const;
47 bool isOnFullCircle( void )const;
48 Circle3d circle( void )const;
49 Curve* curve( void )const;
50// Edge& operator=( Edge&& );
51 Edge& operator=( Edge const& );
52 Edge* eulerEdge( void );
54 Edge* next( void )const;
55 Edge* nextSkipBridge( void )const;
56 Edge* partner( void )const;
57 Edge* prev( void )const;
58 Edge* prevSkipBridge( void )const;
59 Face* face( void )const;
60 Line3d line( void )const;
61 Plane plane( void )const;
62 Point3d point( void )const;
63 Surface* surface( void )const;
64 Vector3d normal( void )const;
65 Vector3d unitVector( void )const;
66 Vector3d vector( void )const;
67 Vector3d vertexNormal( void )const;
68 Vertex* vertex( void )const;
69 double angleBetweenEdges( void )const;
70 double angleBetweenFaces( void )const;
71 Color color( void )const;
72// virtual ~Edge( void );
73 void __autoclassinit2( unsigned __int64 );
74 void addAfter( Edge* );
75 void addPartner( Edge* );
76 void collapse( void );
77 void getAllEdgesEndingInVertex( std::vector< Edge*, std::allocator< Edge* > >& );
78 void getAllEdgesSharingSameFaces( bool, std::vector< Edge*, std::allocator< Edge* > >& );
79 void getAllEdgesStartingFromVertex( std::vector< Edge*, std::allocator< Edge* > >& );
80 void merge( void );
84 void print( _iobuf* )const;
85 void remove( void );
86 void removePartner( void );
89 //void setApproxFlag( OnOff );
90 //void setBridgeFlag( OnOff );
91 void setColor( Color, bool );
92 void setCurve( Curve*, bool );
93 void setFace( Face* );
94 void setNext( Edge* );
95 void setPartner( Edge* );
96 void setPrev( Edge* );
97 void setVertex( Vertex* );
98 void split( Vertex* );
99
100};
Color
Definition Curve.h:25
Definition Edge.h:31
void restore(SaveRestoreCallback *)
double angleBetweenEdges(void) const
void getAllEdgesSharingSameFaces(bool, std::vector< Edge *, std::allocator< Edge * > > &)
Plane plane(void) const
Color color(void) const
bool isEulerEdge(void) const
bool isManifold(void) const
bool isBridge(void) const
void addPartner(Edge *)
void setPartner(Edge *)
void __autoclassinit2(unsigned __int64)
void setVertex(Vertex *)
bool isOnCircle(void) const
Circle3d circle(void) const
bool isOnFullCircle(void) const
void save(SaveRestoreCallback *) const
Edge(void)
Edge * partner(void) const
Vector3d vertexNormal(void) const
void setNext(Edge *)
bool angleBetweenFacesIsConvex(void) const
void setCurve(Curve *, bool)
void getAllEdgesStartingFromVertex(std::vector< Edge *, std::allocator< Edge * > > &)
void setFace(Face *)
void getAllEdgesEndingInVertex(std::vector< Edge *, std::allocator< Edge * > > &)
Face * face(void) const
Edge * prevSkipBridge(void) const
double angleBetweenFaces(void) const
void removePartner(void)
void remove(void)
Surface * surface(void) const
void mergeLoopsSharingEdge(void)
void collapse(void)
Edge * nextSkipBridge(void) const
Line3d line(void) const
bool angleBetweenFacesIsConcave(void) const
void split(Vertex *)
bool canMergeWithPrevious(bool) const
bool isApprox(void) const
void print(_iobuf *) const
Curve * curve(void) const
Edge & operator=(Edge const &)
bool hasPartner(Edge *) const
Edge * prev(void) const
Edge * next(void) const
void mergeLoopsAddBridgeEdge(Edge *)
Edge(Vertex *, Face *, Edge *, Edge *, Curve *)
void merge(void)
bool angleBetweenFacesIsStraight(void) const
Edge * eulerEdge(void)
Vertex * vertex(void) const
Edge(Edge const &)
void addAfter(Edge *)
Vector3d unitVector(void) const
void setPrev(Edge *)
Vector3d vector(void) const
void setColor(Color, bool)
void orderPartnerEdgesAroundEulerEdge(void)
Vector3d normal(void) const
Edge * getPartnerBridgeEdge(void) const
Point3d point(void) const
Definition Face.h:32
Definition Plane.h:25