NX Open C++ 参考指南 2406 v1.1
载入中...
搜索中...
未找到
Features_BaseFeatureCollection.hxx
1//--------------------------------------------------------------------------
2// Copyright 2024 Siemens
3//--------------------------------------------------------------------------
4// C++接口至JA API的头文件
5//--------------------------------------------------------------------------
6//
7// 源文件:
8// Features_BaseFeatureCollection.ja
9//
10// 生成器:
11// apiwrap
12//
13// 警告:
14// 此文件为自动生成 - 请勿手动编辑
15//
16#pragma once
17#include <NXOpen/NXDeprecation.hxx>
18#include <iterator>
19#include <vector>
20#include <NXOpen/NXString.hxx>
21#include <NXOpen/Callback.hxx>
22#include <NXOpen/TaggedObjectCollection.hxx>
23#include <NXOpen/TaggedObject.hxx>
24#include <NXOpen/libnxopencpp_features_exports.hxx>
25#ifdef _MSC_VER
26#pragma warning(push)
27#pragma warning(disable:4996)
28#endif
29#ifdef __GNUC__
30#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
31#endif
32namespace NXOpen
33{
34 namespace Features
35 {
37 }
38 class BasePart;
39 namespace Features
40 {
41 class Feature;
42 }
43 class Arc;
44 namespace Features
45 {
46 class AssociativeArc;
47 }
48 namespace Features
49 {
51 }
52 namespace Features
53 {
54 class AssociativeLine;
55 }
56 namespace Features
57 {
59 }
60 namespace Features
61 {
63 }
64 namespace Features
65 {
66 class MoveObject;
67 }
68 namespace Features
69 {
71 }
72 namespace Features
73 {
75 }
76 namespace Features
77 {
79 }
80 namespace Features
81 {
83 }
84 namespace Features
85 {
86 class WaveLinkBuilder;
87 }
88 class Line;
89 namespace Features
90 {
91 class BaseFeatureCollectionImpl;
96 class NXOPENCPP_FEATURESEXPORT BaseFeatureCollection : public NXOpen::TaggedObjectCollection
97 {
98 private: BaseFeatureCollectionImpl * m_basefeaturecollection_impl;
99 private: NXOpen::BasePart* m_owner;
101 public: explicit BaseFeatureCollection(NXOpen::BasePart *owner);
103 public:
105 tag_t Tag() const;
106 public: ~BaseFeatureCollection();
108 //lint -sem(NXOpen::Features::BaseFeatureCollection::iterator::copy,initializer)
109 class iterator : public std::iterator<std::forward_iterator_tag, NXOpen::Features::Feature *>
110 {
111 public:
113 iterator() : m_context(nullptr), m_current(NULL_TAG)
114 {
115 // coverity[uninit_member]
116 } //lint !e1401 m_state is not initialized
117
118 explicit iterator(NXOpen::Features::BaseFeatureCollection *context) : m_context(context), m_current(NULL_TAG)
119 {
120 // coverity[uninit_member]
121 }//lint !e1401 m_state is not initialized
123
124 iterator(const iterator &other): m_context(nullptr), m_current(NULL_TAG)
125 {
126 copy(other);
127 }
128
129 iterator &operator =(const iterator &other)
130 {
131 if (&other != this)
132 copy(other);
133 return *this;
134 }
135
136 bool operator ==(const iterator &other) const
137 {
138 return m_current == other.m_current && m_context == other.m_context;
139 }
140
141 bool operator !=(const iterator &other) const
142 {
143 return !operator == (other);
144 }
145
146 NXOPENCPP_FEATURESEXPORT value_type operator * () const;
148 iterator & operator ++()
149 {
150 next();
151 return *this;
152 }
153
154 iterator operator ++(int)
155 {
156 iterator tmp(*this);
157 ++*this;
158 return tmp;
159 }
160 private:
161 void copy(const iterator &other)
162 {
163 m_context = other.m_context;
164 m_current = other.m_current;
165 for (int i = 0; i < sizeof(m_state)/sizeof(m_state[0]); i++)
166 m_state[i] = other.m_state[i];
167 }
168 NXOPENCPP_FEATURESEXPORT void next();
170 tag_t m_current;
171 unsigned int m_state[8];
172 };
173
177 {
178 return iterator(this);
179 }
180
184 (
185 NXOpen::Features::Feature * trimCorner
186 );
191 (
192 NXOpen::Features::Feature * divideCurve
193 );
198 (
199 NXOpen::Features::AssociativeLine * associativeLine
200 );
205 (
206 NXOpen::Line * nonAssociativeLine
207 );
212 (
213 NXOpen::Features::AssociativeArc * associativeArc
214 );
219 (
220 NXOpen::Arc * nonAssociativeArc
221 );
226 (
228 );
233 (
234 NXOpen::Features::Feature * wavelink
235 );
240 (
241 NXOpen::Features::Feature * waveInterfaceLinker
242 );
247 (
248 NXOpen::Features::MoveObject * moveObject
249 );
250 }; //lint !e1712 default constructor not defined for class
251 }
252}
253#ifdef _MSC_VER
254#pragma warning(pop)
255#endif
256#ifdef __GNUC__
257#ifndef NX_NO_GCC_DEPRECATION_WARNINGS
258#pragma GCC diagnostic warning "-Wdeprecated-declarations"
259#endif
260#endif
261#undef EXPORTLIBRARY