NX Open C++ 参考指南 2406 v1.1
载入中...
搜索中...
未找到
Annotations_LabelCollection.hxx
1//--------------------------------------------------------------------------
2// Copyright 2024 Siemens
3//--------------------------------------------------------------------------
4// C++接口访问JA API的头文件
5//--------------------------------------------------------------------------
6//
7// 源文件:
8// Annotations_LabelCollection.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/Annotations_LabelData.hxx>
23#include <NXOpen/Annotations_LeaderBundle.hxx>
24#include <NXOpen/Annotations_PmiData.hxx>
25#include <NXOpen/TaggedObjectCollection.hxx>
26#include <NXOpen/TaggedObject.hxx>
27#include <NXOpen/ugmath.hxx>
28#include <NXOpen/libnxopencpp_annotations_exports.hxx>
29#ifdef _MSC_VER
30#pragma warning(push)
31#pragma warning(disable:4996)
32#endif
33#ifdef __GNUC__
34#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
35#endif
36namespace NXOpen
37{
38 namespace Annotations
39 {
40 class LabelCollection;
41 }
42 class Part;
43 namespace Annotations
44 {
45 class Label;
46 }
47 namespace Annotations
48 {
49 class LabelData;
50 }
51 namespace Annotations
52 {
53 class LeaderBundle;
54 }
55 namespace Annotations
56 {
57 class PmiData;
58 }
59 namespace Annotations
60 {
61 class PmiLabel;
62 }
63 class Xform;
64 namespace Annotations
65 {
66 class LabelCollectionImpl;
71 class NXOPENCPP_ANNOTATIONSEXPORT LabelCollection : public NXOpen::TaggedObjectCollection
72 {
73 private: LabelCollectionImpl * m_labelcollection_impl;
74 private: NXOpen::Part* m_owner;
76 public: explicit LabelCollection(NXOpen::Part *owner);
78 public:
80 tag_t Tag() const;
81 public: ~LabelCollection();
83 //lint -sem(NXOpen::Annotations::LabelCollection::iterator::copy,initializer)
84 class iterator : public std::iterator<std::forward_iterator_tag, NXOpen::Annotations::Label *>
85 {
86 public:
88 iterator() : m_context(nullptr), m_current(NULL_TAG)
89 {
90 // coverity[uninit_member]
91 } //lint !e1401 m_state is not initialized
92
93 explicit iterator(NXOpen::Annotations::LabelCollection *context) : m_context(context), m_current(NULL_TAG)
94 {
95 // coverity[uninit_member]
96 }//lint !e1401 m_state is not initialized
98
99 iterator(const iterator &other): m_context(nullptr), m_current(NULL_TAG)
100 {
101 copy(other);
102 }
103
104 iterator &operator =(const iterator &other)
105 {
106 if (&other != this)
107 copy(other);
108 return *this;
109 }
110
111 bool operator ==(const iterator &other) const
112 {
113 return m_current == other.m_current && m_context == other.m_context;
114 }
115
116 bool operator !=(const iterator &other) const
117 {
118 return !operator == (other);
119 }
120
121 NXOPENCPP_ANNOTATIONSEXPORT value_type operator * () const;
123 iterator & operator ++()
124 {
125 next();
126 return *this;
127 }
128
129 iterator operator ++(int)
130 {
131 iterator tmp(*this);
132 ++*this;
133 return tmp;
134 }
135 private:
136 void copy(const iterator &other)
137 {
138 m_context = other.m_context;
139 m_current = other.m_current;
140 for (int i = 0; i < sizeof(m_state)/sizeof(m_state[0]); i++)
141 m_state[i] = other.m_state[i];
142 }
143 NXOPENCPP_ANNOTATIONSEXPORT void next();
145 tag_t m_current;
146 unsigned int m_state[8];
147 };
148
152 {
153 return iterator(this);
154 }
155
159 (
160 );
165 (
168 NXOpen::Xform * annotationPlane ,
169 const NXOpen::Point3d & origin ,
171 );
172 }; //lint !e1712 default constructor not defined for class
173 }
174}
175#ifdef _MSC_VER
176#pragma warning(pop)
177#endif
178#ifdef __GNUC__
179#ifndef NX_NO_GCC_DEPRECATION_WARNINGS
180#pragma GCC diagnostic warning "-Wdeprecated-declarations"
181#endif
182#endif
183#undef EXPORTLIBRARY