Developer Documentation
Loading...
Searching...
No Matches
BaseKernel.cc
1/* ========================================================================= *
2 * *
3 * OpenMesh *
4 * Copyright (c) 2001-2025, RWTH-Aachen University *
5 * Department of Computer Graphics and Multimedia *
6 * All rights reserved. *
7 * www.openmesh.org *
8 * *
9 *---------------------------------------------------------------------------*
10 * This file is part of OpenMesh. *
11 *---------------------------------------------------------------------------*
12 * *
13 * Redistribution and use in source and binary forms, with or without *
14 * modification, are permitted provided that the following conditions *
15 * are met: *
16 * *
17 * 1. Redistributions of source code must retain the above copyright notice, *
18 * this list of conditions and the following disclaimer. *
19 * *
20 * 2. Redistributions in binary form must reproduce the above copyright *
21 * notice, this list of conditions and the following disclaimer in the *
22 * documentation and/or other materials provided with the distribution. *
23 * *
24 * 3. Neither the name of the copyright holder nor the names of its *
25 * contributors may be used to endorse or promote products derived from *
26 * this software without specific prior written permission. *
27 * *
28 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *
29 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED *
30 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
31 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER *
32 * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, *
33 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *
34 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
35 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
36 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
37 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
38 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
39 * *
40 * ========================================================================= */
41
42
43
44#include <OpenMesh/Core/Mesh/BaseKernel.hh>
45#include <iostream>
46
47namespace OpenMesh
48{
49
51{
52 property_stats(std::clog);
53}
54void BaseKernel::property_stats(std::ostream& _ostr) const
55{
56 const PropertyContainer::Properties& vps = vprops_.properties();
57 const PropertyContainer::Properties& hps = hprops_.properties();
58 const PropertyContainer::Properties& eps = eprops_.properties();
59 const PropertyContainer::Properties& fps = fprops_.properties();
60 const PropertyContainer::Properties& mps = mprops_.properties();
61
62 PropertyContainer::Properties::const_iterator it;
63
64 _ostr << vprops_.size() << " vprops:\n";
65 for (it=vps.begin(); it!=vps.end(); ++it)
66 {
67 *it == nullptr ? (void)(_ostr << "[deleted]" << "\n") : (*it)->stats(_ostr);
68 }
69 _ostr << hprops_.size() << " hprops:\n";
70 for (it=hps.begin(); it!=hps.end(); ++it)
71 {
72 *it == nullptr ? (void)(_ostr << "[deleted]" << "\n") : (*it)->stats(_ostr);
73 }
74 _ostr << eprops_.size() << " eprops:\n";
75 for (it=eps.begin(); it!=eps.end(); ++it)
76 {
77 *it == nullptr ? (void)(_ostr << "[deleted]" << "\n") : (*it)->stats(_ostr);
78 }
79 _ostr << fprops_.size() << " fprops:\n";
80 for (it=fps.begin(); it!=fps.end(); ++it)
81 {
82 *it == nullptr ? (void)(_ostr << "[deleted]" << "\n") : (*it)->stats(_ostr);
83 }
84 _ostr << mprops_.size() << " mprops:\n";
85 for (it=mps.begin(); it!=mps.end(); ++it)
86 {
87 *it == nullptr ? (void)(_ostr << "[deleted]" << "\n") : (*it)->stats(_ostr);
88 }
89}
90
91
92
93void BaseKernel::vprop_stats( std::string& _string ) const
94{
95 _string.clear();
96
97 PropertyContainer::Properties::const_iterator it;
98 const PropertyContainer::Properties& vps = vprops_.properties();
99 for (it=vps.begin(); it!=vps.end(); ++it)
100 if ( *it == nullptr )
101 _string += "[deleted] \n";
102 else {
103 _string += (*it)->name();
104 _string += "\n";
105 }
106
107}
108
109void BaseKernel::hprop_stats( std::string& _string ) const
110{
111 _string.clear();
112
113 PropertyContainer::Properties::const_iterator it;
114 const PropertyContainer::Properties& hps = hprops_.properties();
115 for (it=hps.begin(); it!=hps.end(); ++it)
116 if ( *it == nullptr )
117 _string += "[deleted] \n";
118 else {
119 _string += (*it)->name();
120 _string += "\n";
121 }
122
123}
124
125void BaseKernel::eprop_stats( std::string& _string ) const
126{
127 _string.clear();
128
129 PropertyContainer::Properties::const_iterator it;
130 const PropertyContainer::Properties& eps = eprops_.properties();
131 for (it=eps.begin(); it!=eps.end(); ++it)
132 if ( *it == nullptr )
133 _string += "[deleted] \n";
134 else {
135 _string += (*it)->name();
136 _string += "\n";
137 }
138
139}
140void BaseKernel::fprop_stats( std::string& _string ) const
141{
142 _string.clear();
143
144 PropertyContainer::Properties::const_iterator it;
145 const PropertyContainer::Properties& fps = fprops_.properties();
146 for (it=fps.begin(); it!=fps.end(); ++it)
147 if ( *it == nullptr )
148 _string += "[deleted] \n";
149 else {
150 _string += (*it)->name();
151 _string += "\n";
152 }
153
154}
155
156void BaseKernel::mprop_stats( std::string& _string ) const
157{
158 _string.clear();
159
160 PropertyContainer::Properties::const_iterator it;
161 const PropertyContainer::Properties& mps = mprops_.properties();
162 for (it=mps.begin(); it!=mps.end(); ++it)
163 if ( *it == nullptr )
164 _string += "[deleted] \n";
165 else {
166 _string += (*it)->name();
167 _string += "\n";
168 }
169
170}
171
173{
174 vprop_stats(std::clog);
175}
176void BaseKernel::vprop_stats(std::ostream& _ostr ) const
177{
178 PropertyContainer::Properties::const_iterator it;
179 const PropertyContainer::Properties& vps = vprops_.properties();
180 for (it=vps.begin(); it!=vps.end(); ++it)
181 *it == nullptr ? (void)(_ostr << "[deleted]" << "\n") : (*it)->stats(_ostr);
182
183}
185{
186 hprop_stats(std::clog);
187}
188void BaseKernel::hprop_stats(std::ostream& _ostr ) const
189{
190 PropertyContainer::Properties::const_iterator it;
191 const PropertyContainer::Properties& hps = hprops_.properties();
192 for (it=hps.begin(); it!=hps.end(); ++it)
193 *it == nullptr ? (void)(_ostr << "[deleted]" << "\n") : (*it)->stats(_ostr);
194
195}
197{
198 eprop_stats(std::clog);
199}
200void BaseKernel::eprop_stats(std::ostream& _ostr ) const
201{
202 PropertyContainer::Properties::const_iterator it;
203 const PropertyContainer::Properties& eps = eprops_.properties();
204 for (it=eps.begin(); it!=eps.end(); ++it)
205 *it == nullptr ? (void)(_ostr << "[deleted]" << "\n") : (*it)->stats(_ostr);
206
207}
209{
210 fprop_stats(std::clog);
211}
212void BaseKernel::fprop_stats(std::ostream& _ostr ) const
213{
214 PropertyContainer::Properties::const_iterator it;
215 const PropertyContainer::Properties& fps = fprops_.properties();
216 for (it=fps.begin(); it!=fps.end(); ++it)
217 *it == nullptr ? (void)(_ostr << "[deleted]" << "\n") : (*it)->stats(_ostr);
218
219}
221{
222 mprop_stats(std::clog);
223}
224void BaseKernel::mprop_stats(std::ostream& _ostr ) const
225{
226 PropertyContainer::Properties::const_iterator it;
227 const PropertyContainer::Properties& mps = mprops_.properties();
228 for (it=mps.begin(); it!=mps.end(); ++it)
229 *it == nullptr ? (void)(_ostr << "[deleted]" << "\n") : (*it)->stats(_ostr);
230
231}
232
233
234}
void vprop_stats() const
PropertyContainer fprops_
void eprop_stats() const
void fprop_stats() const
PropertyContainer eprops_
void property_stats() const
Definition BaseKernel.cc:50
void hprop_stats() const
PropertyContainer mprops_
PropertyContainer hprops_
void mprop_stats() const
PropertyContainer vprops_