MCPcopy Create free account
hub / github.com/davideberly/GeometricTools / GetSegment

Method GetSegment

GTE/Graphics/IndexBuffer.cpp:156–196  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

154}
155
156bool IndexBuffer::GetSegment(uint32_t i, uint32_t& v0, uint32_t& v1) const
157{
158 if (ValidPrimitiveType(IP_HAS_SEGMENTS))
159 {
160 if (mData && i < mNumPrimitives)
161 {
162 if (mElementSize == sizeof(uint32_t))
163 {
164 if (mPrimitiveType == IP_POLYSEGMENT_DISJOINT)
165 {
166 uint32_t const* index = 2 * static_cast<size_t>(i) + Get<uint32_t>();
167 v0 = *index++;
168 v1 = *index;
169 }
170 else
171 {
172 uint32_t const* index = static_cast<size_t>(i) + Get<uint32_t>();
173 v0 = *index++;
174 v1 = *index;
175 }
176 }
177 else
178 {
179 if (mPrimitiveType == IP_POLYSEGMENT_DISJOINT)
180 {
181 uint16_t const* index = 2 * static_cast<size_t>(i) + Get<uint16_t>();
182 v0 = static_cast<uint32_t>(*index++);
183 v1 = static_cast<uint32_t>(*index);
184 }
185 else
186 {
187 uint16_t const* index = static_cast<size_t>(i) + Get<uint16_t>();
188 v0 = static_cast<uint32_t>(*index++);
189 v1 = static_cast<uint32_t>(*index);
190 }
191 }
192 return true;
193 }
194 }
195 return false;
196}
197
198bool IndexBuffer::SetTriangle(uint32_t i, uint32_t v0, uint32_t v1, uint32_t v2)
199{

Callers 1

PickSegmentsMethod · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected