FRX SDK Documentation 2025 SP0
Loading...
Searching...
No Matches
Face.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 "Interval3d.h"
21#include "IntInterval3d.h"
22
23class Edge;
24class Surface;
25class Body;
26class Circle3d;
30
31class ARX_API Face : public Entity
32{
33public:
35 Face( Circle3d const&, int, int, Body* );
37 Face( Face const& );
38 Face( Point3d* const, int, int, bool, Body*, Edge** );
39 Face( Point3d const* const, PolygonVertexData** const, int, Vector3d const&, int, bool, Body* );
41 Face( Vertex** const, Curve** const, Edge** const, int, int, bool, Body*, Edge** );
42 Face( void );
43 bool isPlanar( double )const;
44 bool isPointInside( Point3d const& )const;
45 bool isSelfIntersecting( void )const;
46 Edge* edge( int )const;
47 Edge* edgeLoop( void )const;
48 Face& operator=( Face const& );
49 Face* next( void )const;
50 Face* prev( void )const;
52 IntInterval3d const& projInterval( void )const;
53 Interval3d const& interval( void )const;
54 Plane const& plane( void )const;
55 Surface* surface( void )const;
56 double area( void )const;
57 Color color( void )const;
58 int edgeCount( void )const;
59 virtual ~Face( void );
60 void* attrib( void )const;
61 void __autoclassinit2( unsigned __int64 );
62 void addEdge( Edge*, Edge* );
63 void decomposeIntoContiguousFaces( Body*, std::vector< Face*, std::allocator< Face* > >& );
64 void deleteAllEdges( void );
65 void deleteInterval( void )const;
66 void deletePlane( void )const;
67 void deleteProjInterval( void )const;
68 void extractAllLoops( std::vector< std::vector< Edge*, std::allocator< Edge* > >, std::allocator< std::vector< Edge*, std::allocator< Edge* > > > >& )const;
69 void insertHoles( std::vector< Face*, std::allocator< Face* > > const&, Body*, std::vector< Face*, std::allocator< Face* > >& );
70 void lift( Transf3d const&, bool, Body* );
71 void massProperties( Body const&, bool, bool, double&, double&, Point3d& )const;
72 void modified( void );
73 void negate( void );
74 void paint( Body const&, Color, bool, bool );
75 void print( _iobuf* )const;
76 void removeEdge( Edge* );
79 void setAttrib( void* );
80 void setColor( Color, bool, bool );
81 void setEdgeLoop( Edge* );
82 void setNext( Face* );
83 void setPrev( Face* );
84 void setProjInterval( IntInterval3d const& )const;
86 //void triangulate( OutputTriangleCallback*, TriangulationType )const;
87
88private:
89 double evaluatePlane( void )const;
90 void evaluateInterval( void )const;
91};
Color
Definition Body.h:44
Definition Curve.h:25
Definition Edge.h:31
Definition Face.h:32
Edge * edge(int) const
void paint(Body const &, Color, bool, bool)
bool isSelfIntersecting(void) const
void setPrev(Face *)
Face(void)
Surface * surface(void) const
Face(Surface *, Body *)
void __autoclassinit2(unsigned __int64)
void deleteInterval(void) const
void setSurface(Surface *)
void removeEdge(Edge *)
void save(SaveRestoreCallback *) const
Face(Body *)
Face * prev(void) const
void modified(void)
void setEdgeLoop(Edge *)
Face * next(void) const
void setProjInterval(IntInterval3d const &) const
Interval3d const & interval(void) const
void lift(Transf3d const &, bool, Body *)
double area(void) const
bool isPointInside(Point3d const &) const
Plane const & plane(void) const
void print(_iobuf *) const
Face(Edge *, Surface *, Body *)
Face * split(Edge *, Edge *, Body *)
void extractAllLoops(std::vector< std::vector< Edge *, std::allocator< Edge * > >, std::allocator< std::vector< Edge *, std::allocator< Edge * > > > > &) const
Face(Point3d *const, int, int, bool, Body *, Edge **)
void insertHoles(std::vector< Face *, std::allocator< Face * > > const &, Body *, std::vector< Face *, std::allocator< Face * > > &)
virtual ~Face(void)
void restore(SaveRestoreCallback *, int)
void setAttrib(void *)
void * attrib(void) const
int edgeCount(void) const
IntInterval3d const & projInterval(void) const
Face(Vertex **const, Curve **const, Edge **const, int, int, bool, Body *, Edge **)
void deletePlane(void) const
void addEdge(Edge *, Edge *)
void setNext(Face *)
void decomposeIntoContiguousFaces(Body *, std::vector< Face *, std::allocator< Face * > > &)
Face & operator=(Face const &)
Face(Point3d const *const, PolygonVertexData **const, int, Vector3d const &, int, bool, Body *)
void negate(void)
Color color(void) const
bool isPlanar(double) const
void massProperties(Body const &, bool, bool, double &, double &, Point3d &) const
Face(Circle3d const &, int, int, Body *)
Edge * edgeLoop(void) const
void deleteAllEdges(void)
Face(Face const &)
void setColor(Color, bool, bool)
void deleteProjInterval(void) const
Definition Plane.h:25