CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
FMMdlIterators.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#ifndef __FMMDL_ITERATORS_H__
25#define __FMMDL_ITERATORS_H__
26
27#include "Modeler/FMMdlBody.h"
28#include "Modeler/FMMdlVertex.h"
29#include "Modeler/FMMdlEdge.h"
30#include "Modeler/FMMdlFace.h"
31
32namespace FacetModeler
33{
34
39 {
40 public:
46 VertexIterator(const Body* pBody);
47
53 bool done();
54
58 void next();
59
66
67 private:
68 Body* m_pOwner; // Owner Body pointer.
69 Vertex* m_pCurrent; // Current vertex pointer.
70 Vertex* m_pNext; // Next vertex pointer.
71 Vertex* m_pFirst; // First vertex pointer.
72 };
73
78 {
79 public:
85 explicit EdgeBodyIterator(const Body* pBody);
86
92 bool done();
93
99 void next(bool* bNextLoop = NULL);
100
107
108 private:
109 Body* m_pOwner; // Owner Body pointer.
110 Face* m_pCurrentFace; // Current face pointer.
111 Face* m_pFirstFace; // First face pointer.
112 OdUInt32 m_iCurrentLoop; // Current loop index.
113 Edge* m_pFirst; // First edge pointer.
114 Edge* m_pCurrent; // Current edge pointer.
115 Edge* m_pNext; // Next edge pointer.
116 };
117
122 {
123 public:
129 explicit EdgeFaceIterator(const Face* pFace);
130
136 bool done();
137
143 void next(bool* bNextLoop = NULL);
144
151
152 private:
153 Face* m_pFace; // Owner face pointer.
154 OdUInt32 m_iCurrentLoop; // Current loop index.
155 Edge* m_pFirst; // First edge pointer.
156 Edge* m_pCurrent; // Current edge pointer.
157 Edge* m_pNext; // Next edge pointer.
158 };
159
164 {
165 public:
171 explicit FaceIterator(const Body* pBody);
172
178 bool done();
179
183 void next();
184
191
192 private:
193 Body* m_pOwner; // Owner body pointer.
194 Face* m_pFirst; // First face pointer.
195 Face* m_pCurrent; // Current face pointer.
196 Face* m_pNext; // Next face pointer.
197 };
198
199}
200
201#endif //__FMMDL_ITERATORS_H__
#define FMGEOMETRY_API
unsigned int OdUInt32
EdgeBodyIterator(const Body *pBody)
void next(bool *bNextLoop=NULL)
EdgeFaceIterator(const Face *pFace)
void next(bool *bNextLoop=NULL)
FaceIterator(const Body *pBody)
VertexIterator(const Body *pBody)