MCPcopy Create free account
hub / github.com/cinder/Cinder / setupGeometry

Method setupGeometry

samples/FallingGears/src/SceneObjects.cpp:153–225  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

151}
152
153void Island::setupGeometry()
154{
155 CI_ASSERT( mOuterVerts.size() == 6 && mInnerVerts.size() == 5 );
156
157 // create the body of the island
158 {
159 Path2d path;
160 path.moveTo( mOuterVerts[0] );
161 for( int i = 1; i < mOuterVerts.size(); ++i )
162 path.lineTo( mOuterVerts[i] );
163
164 mBatchBody = gl::Batch::create( Triangulator( path ).calcMesh(), gl::getStockShader( gl::ShaderDef().color() ) );
165 }
166
167 mBumpers.clear();
168
169 const float padding = 4;
170 const float crookedPaddingPercent = 0.036f;
171
172 // left base
173 {
174 Path2d bumper;
175 bumper.moveTo( mOuterVerts[0] );
176 bumper.lineTo( mOuterVerts[1].x, mOuterVerts[1].y + padding );
177 bumper.lineTo( mInnerVerts[1].x, mInnerVerts[1].y + padding );
178 bumper.lineTo( mInnerVerts[0] );
179 bumper.close();
180
181 addBumper( bumper );
182 }
183
184 // left top
185 {
186 vec2 offsetOuter = ( mOuterVerts[2] - mOuterVerts[1] ) * crookedPaddingPercent;
187 vec2 offsetInner = ( vec2( mOuterVerts[2].x, mInnerVerts[2].y ) - mInnerVerts[1] ) * crookedPaddingPercent;
188
189 Path2d bumper;
190 bumper.moveTo( mOuterVerts[1] + offsetOuter );
191 bumper.lineTo( mOuterVerts[2] );
192 bumper.lineTo( mOuterVerts[2].x, mInnerVerts[2].y );
193 bumper.lineTo( mInnerVerts[1] + offsetInner );
194 bumper.close();
195
196 addBumper( bumper );
197 }
198
199 // right top
200 {
201 vec2 offsetOuter = ( mOuterVerts[3] - mOuterVerts[4] ) * crookedPaddingPercent;
202 vec2 offsetInner = ( vec2( mOuterVerts[3].x, mInnerVerts[2].y ) - mInnerVerts[3] ) * crookedPaddingPercent;
203
204 Path2d bumper;
205 bumper.moveTo( mOuterVerts[3] );
206 bumper.lineTo( mOuterVerts[4] + offsetOuter );
207 bumper.lineTo( mInnerVerts[3] + offsetInner );
208 bumper.lineTo( mOuterVerts[3].x, mInnerVerts[2].y );
209 bumper.close();
210

Callers 1

makeIslandMethod · 0.45

Calls 9

calcMeshMethod · 0.80
colorMethod · 0.80
createFunction · 0.50
ShaderDefClass · 0.50
sizeMethod · 0.45
moveToMethod · 0.45
lineToMethod · 0.45
clearMethod · 0.45
closeMethod · 0.45

Tested by

no test coverage detected