Revision 3bc73279
Added by Leszek Koltunski 4 days ago
src/main/java/org/distorted/library/mesh/MeshBase.kt | ||
---|---|---|
48 | 48 |
abstract class MeshBase |
49 | 49 |
{ |
50 | 50 |
var showNormals: Boolean // when rendering this mesh, draw normal vectors? |
51 |
private var mVBO1: InternalBuffer? = null
|
|
52 |
private var mVBO2: InternalBuffer? = null
|
|
51 |
private lateinit var mVBO1: InternalBuffer
|
|
52 |
private lateinit var mVBO2: InternalBuffer
|
|
53 | 53 |
private var mTFO: InternalBuffer // main vertex buffer and transform feedback buffer |
54 | 54 |
private var numVertices: Int = 0 |
55 | 55 |
private var mVertAttribs1: FloatArray? = null // packed: PosX,PosY,PosZ, NorX,NorY,NorZ |
... | ... | |
88 | 88 |
private const val OFFSET_TEX = TEX_ATTRIB*BYTES_PER_FLOAT |
89 | 89 |
private const val OFFSET_COM = COM_ATTRIB*BYTES_PER_FLOAT |
90 | 90 |
|
91 |
private const val TRAN_SIZE = TRAN_ATTRIBS*BYTES_PER_FLOAT |
|
91 |
private const val TRAN_SIZE = TRAN_ATTRIBS*BYTES_PER_FLOAT
|
|
92 | 92 |
private const val VERT1_SIZE = VERT1_ATTRIBS*BYTES_PER_FLOAT |
93 | 93 |
private const val VERT2_SIZE = VERT2_ATTRIBS*BYTES_PER_FLOAT |
94 | 94 |
|
95 |
private val mCenterBlockIndex = IntArray(EffectQueue.MAIN_VARIANTS)
|
|
95 |
private val mCenterBlockIndex= IntArray(EffectQueue.MAIN_VARIANTS) |
|
96 | 96 |
private val mAssocBlockIndex = IntArray(EffectQueue.MAIN_VARIANTS) |
97 | 97 |
|
98 | 98 |
private const val TEX_COMP_SIZE = 5 // 5 four-byte entities inside the component |
... | ... | |
161 | 161 |
} |
162 | 162 |
} |
163 | 163 |
|
164 |
private var mTexComponent: ArrayList<TexComponent>? = null
|
|
165 |
private var mEffComponent: ArrayList<Int>? = null
|
|
164 |
private lateinit var mTexComponent: ArrayList<TexComponent>
|
|
165 |
private lateinit var mEffComponent: ArrayList<Int>
|
|
166 | 166 |
|
167 | 167 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
168 | 168 |
internal constructor() |
... | ... | |
223 | 223 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
224 | 224 |
private fun shallowCopy(original: MeshBase) |
225 | 225 |
{ |
226 |
val texComSize = original.mTexComponent!!.size
|
|
226 |
val texComSize = original.mTexComponent.size |
|
227 | 227 |
mTexComponent = ArrayList() |
228 | 228 |
|
229 | 229 |
for (i in 0 until texComSize) |
230 | 230 |
{ |
231 |
val comp = TexComponent(original.mTexComponent!![i])
|
|
232 |
mTexComponent!!.add(comp)
|
|
231 |
val comp = TexComponent(original.mTexComponent[i]) |
|
232 |
mTexComponent.add(comp) |
|
233 | 233 |
} |
234 | 234 |
|
235 | 235 |
mEffComponent = ArrayList() |
236 |
mEffComponent!!.addAll(original.mEffComponent!!)
|
|
236 |
mEffComponent.addAll(original.mEffComponent)
|
|
237 | 237 |
|
238 | 238 |
mVBO2 = InternalBuffer(GLES30.GL_ARRAY_BUFFER, GLES30.GL_STATIC_DRAW) |
239 | 239 |
mVertAttribs2 = original.mVertAttribs2?.copyOf() |
... | ... | |
242 | 242 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
243 | 243 |
fun mergeTexComponentsNow() |
244 | 244 |
{ |
245 |
val num = mTexComponent!!.size
|
|
245 |
val num = mTexComponent.size |
|
246 | 246 |
|
247 | 247 |
if (num>1) |
248 | 248 |
{ |
249 |
mTexComponent!!.clear()
|
|
250 |
mTexComponent!!.add(TexComponent(numVertices-1))
|
|
251 |
mVBO2!!.invalidate()
|
|
249 |
mTexComponent.clear() |
|
250 |
mTexComponent.add(TexComponent(numVertices-1)) |
|
251 |
mVBO2.invalidate() |
|
252 | 252 |
} |
253 | 253 |
} |
254 | 254 |
|
255 | 255 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
256 | 256 |
fun addEmptyTexComponentNow() |
257 | 257 |
{ |
258 |
mTexComponent!!.add(TexComponent(numVertices-1))
|
|
258 |
mTexComponent.add(TexComponent(numVertices-1)) |
|
259 | 259 |
} |
260 | 260 |
|
261 | 261 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
262 | 262 |
fun mergeEffComponentsNow() |
263 | 263 |
{ |
264 |
val num = mEffComponent!!.size
|
|
264 |
val num = mEffComponent.size |
|
265 | 265 |
|
266 | 266 |
if (num>1) |
267 | 267 |
{ |
268 |
mEffComponent!!.clear()
|
|
269 |
mEffComponent!!.add(numVertices-1)
|
|
268 |
mEffComponent.clear() |
|
269 |
mEffComponent.add(numVertices-1) |
|
270 | 270 |
|
271 | 271 |
for (index in 0 until numVertices) |
272 | 272 |
{ |
273 | 273 |
mVertAttribs2!![VERT2_ATTRIBS*index+COM_ATTRIB] = 0f |
274 | 274 |
} |
275 | 275 |
|
276 |
mVBO2!!.invalidate()
|
|
276 |
mVBO2.invalidate() |
|
277 | 277 |
} |
278 | 278 |
} |
279 | 279 |
|
... | ... | |
285 | 285 |
val uniforms = FloatArray(7) |
286 | 286 |
var start: Int |
287 | 287 |
var end = -1 |
288 |
val numComp = mEffComponent!!.size
|
|
288 |
val numComp = mEffComponent.size |
|
289 | 289 |
|
290 | 290 |
matrixP[15] = 1f |
291 | 291 |
matrixP[10] = matrixP[15] |
292 |
matrixP[5] = matrixP[10] |
|
293 |
matrixP[0] = matrixP[5] |
|
292 |
matrixP[ 5] = matrixP[10]
|
|
293 |
matrixP[ 0] = matrixP[5]
|
|
294 | 294 |
matrixV[15] = 1f |
295 | 295 |
matrixV[10] = matrixV[15] |
296 |
matrixV[5] = matrixV[10] |
|
297 |
matrixV[0] = matrixV[5] |
|
296 |
matrixV[ 5] = matrixV[10]
|
|
297 |
matrixV[ 0] = matrixV[5]
|
|
298 | 298 |
|
299 | 299 |
effect.compute(uniforms, 0, 0, 0) |
300 | 300 |
effect.apply(matrixP, matrixV, uniforms, 0) |
... | ... | |
302 | 302 |
for (comp in 0 until numComp) |
303 | 303 |
{ |
304 | 304 |
start = end+1 |
305 |
end = mEffComponent!![comp]
|
|
305 |
end = mEffComponent[comp] |
|
306 | 306 |
|
307 | 307 |
if (mUBA.matchesAssociation(comp, andAssoc, equAssoc)) |
308 | 308 |
{ |
... | ... | |
310 | 310 |
} |
311 | 311 |
} |
312 | 312 |
|
313 |
mVBO1!!.invalidate()
|
|
313 |
mVBO1.invalidate() |
|
314 | 314 |
} |
315 | 315 |
|
316 | 316 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
375 | 375 |
|
376 | 376 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
377 | 377 |
// when a derived class is done computing its mesh, it has to call this method. |
378 |
fun setAttribs(vert1Attribs: FloatArray, vert2Attribs: FloatArray?)
|
|
378 |
fun setAttribs(vert1Attribs: FloatArray, vert2Attribs: FloatArray) |
|
379 | 379 |
{ |
380 | 380 |
numVertices = vert1Attribs.size/VERT1_ATTRIBS |
381 | 381 |
mVertAttribs1 = vert1Attribs |
382 | 382 |
mVertAttribs2 = vert2Attribs |
383 | 383 |
|
384 |
mTexComponent!!.add(TexComponent(numVertices-1))
|
|
385 |
mEffComponent!!.add(numVertices-1)
|
|
384 |
mTexComponent.add(TexComponent(numVertices-1)) |
|
385 |
mEffComponent.add(numVertices-1) |
|
386 | 386 |
|
387 |
mVBO1!!.invalidate()
|
|
388 |
mVBO2!!.invalidate()
|
|
387 |
mVBO1.invalidate() |
|
388 |
mVBO2.invalidate() |
|
389 | 389 |
} |
390 | 390 |
|
391 | 391 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
403 | 403 |
|
404 | 404 |
if (origVertices>0) |
405 | 405 |
{ |
406 |
origTexComponents = mTexComponent!!.size
|
|
406 |
origTexComponents = mTexComponent.size |
|
407 | 407 |
numVertices += (if (numVertices%2==1) 2 else 1) |
408 |
mTexComponent!![origTexComponents-1].mEndIndex = numVertices-1
|
|
409 |
origEffComponents = mEffComponent!!.size
|
|
410 |
mEffComponent!![origEffComponents-1] = numVertices-1
|
|
408 |
mTexComponent[origTexComponents-1].mEndIndex = numVertices-1 |
|
409 |
origEffComponents = mEffComponent.size |
|
410 |
mEffComponent[origEffComponents-1] = numVertices-1 |
|
411 | 411 |
} |
412 | 412 |
|
413 | 413 |
for (i in 0 until numMeshes) |
414 | 414 |
{ |
415 | 415 |
mesh = meshes[i] |
416 |
numTexComponents = mesh.mTexComponent!!.size
|
|
417 |
numEffComponents = mesh.mEffComponent!!.size
|
|
416 |
numTexComponents = mesh.mTexComponent.size |
|
417 |
numEffComponents = mesh.mEffComponent.size |
|
418 | 418 |
numVert = mesh.numVertices |
419 | 419 |
|
420 | 420 |
val extraVerticesBefore = if (numVertices==0) 0 else 1 |
... | ... | |
422 | 422 |
|
423 | 423 |
for (j in 0 until numTexComponents) |
424 | 424 |
{ |
425 |
comp = TexComponent(mesh.mTexComponent!![j])
|
|
425 |
comp = TexComponent(mesh.mTexComponent[j]) |
|
426 | 426 |
comp.mEndIndex += (extraVerticesBefore+numVertices) |
427 | 427 |
if (j==numTexComponents-1) comp.mEndIndex += extraVerticesAfter |
428 |
mTexComponent!!.add(comp)
|
|
428 |
mTexComponent.add(comp) |
|
429 | 429 |
} |
430 | 430 |
|
431 | 431 |
for (j in 0 until numEffComponents) |
432 | 432 |
{ |
433 |
var index = mesh.mEffComponent!![j]
|
|
433 |
var index = mesh.mEffComponent[j] |
|
434 | 434 |
index += (extraVerticesBefore+numVertices) |
435 | 435 |
if (j==numEffComponents-1) index += extraVerticesAfter |
436 |
mEffComponent!!.add(index)
|
|
436 |
mEffComponent.add(index) |
|
437 | 437 |
|
438 | 438 |
if (origEffComponents<maxEffComponents) |
439 | 439 |
{ |
... | ... | |
541 | 541 |
|
542 | 542 |
var endIndex: Int |
543 | 543 |
var index = 0 |
544 |
val numEffComp = mEffComponent!!.size
|
|
544 |
val numEffComp = mEffComponent.size |
|
545 | 545 |
|
546 | 546 |
for (component in 0 until numEffComp) |
547 | 547 |
{ |
548 |
endIndex = mEffComponent!![component]
|
|
548 |
endIndex = mEffComponent[component] |
|
549 | 549 |
|
550 | 550 |
while (index<=endIndex) |
551 | 551 |
{ |
... | ... | |
556 | 556 |
|
557 | 557 |
mVertAttribs1 = newAttribs1 |
558 | 558 |
mVertAttribs2 = newAttribs2 |
559 |
mVBO1!!.invalidate()
|
|
560 |
mVBO2!!.invalidate()
|
|
559 |
mVBO1.invalidate() |
|
560 |
mVBO2.invalidate() |
|
561 | 561 |
} |
562 | 562 |
|
563 | 563 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
582 | 582 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
583 | 583 |
fun textureMap(maps: Array<Static4D?>, startComponent: Int) |
584 | 584 |
{ |
585 |
val num_comp = mTexComponent!!.size
|
|
585 |
val num_comp = mTexComponent.size |
|
586 | 586 |
if (startComponent>num_comp) return |
587 | 587 |
|
588 | 588 |
val num_maps = maps.size |
589 | 589 |
val min = min((num_comp-startComponent).toDouble(), num_maps.toDouble()).toInt() |
590 |
var vertex = if (startComponent>0) mTexComponent!![startComponent-1].mEndIndex+1 else 0
|
|
590 |
var vertex = if (startComponent>0) mTexComponent[startComponent-1].mEndIndex+1 else 0 |
|
591 | 591 |
var newMap: Static4D? |
592 | 592 |
var oldMap: Static4D |
593 | 593 |
var comp: TexComponent |
... | ... | |
601 | 601 |
for (i in 0 until min) |
602 | 602 |
{ |
603 | 603 |
newMap = maps[i] |
604 |
comp = mTexComponent!![i+startComponent]
|
|
604 |
comp = mTexComponent[i+startComponent] |
|
605 | 605 |
|
606 | 606 |
if (newMap!=null) |
607 | 607 |
{ |
... | ... | |
619 | 619 |
var index = vertex*VERT2_ATTRIBS+TEX_ATTRIB |
620 | 620 |
while (vertex<=comp.mEndIndex) |
621 | 621 |
{ |
622 |
mVertAttribs2!![index] = ratW*mVertAttribs2!![index]+movX |
|
622 |
mVertAttribs2!![index ] = ratW*mVertAttribs2!![index]+movX
|
|
623 | 623 |
mVertAttribs2!![index+1] = ratH*mVertAttribs2!![index+1]+movY |
624 | 624 |
vertex++ |
625 | 625 |
index += VERT2_ATTRIBS |
... | ... | |
631 | 631 |
vertex = comp.mEndIndex+1 |
632 | 632 |
} |
633 | 633 |
|
634 |
mVBO2!!.invalidate()
|
|
634 |
mVBO2.invalidate() |
|
635 | 635 |
} |
636 | 636 |
|
637 | 637 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
647 | 647 |
|
648 | 648 |
val feedback = buffer.order(ByteOrder.nativeOrder()).asFloatBuffer() |
649 | 649 |
feedback[mVertAttribs1, 0, VERT1_ATTRIBS*numVertices] |
650 |
mVBO1!!.updateFloat(mVertAttribs1)
|
|
650 |
mVBO1.updateFloat(mVertAttribs1) |
|
651 | 651 |
|
652 | 652 |
GLES30.glUnmapBuffer(GLES30.GL_TRANSFORM_FEEDBACK_BUFFER) |
653 | 653 |
} |
... | ... | |
678 | 678 |
*/ |
679 | 679 |
fun printTexComponent(comp: Int) |
680 | 680 |
{ |
681 |
if (comp>=0&&comp<numTexComponents)
|
|
681 |
if( comp in 0..<numTexComponents )
|
|
682 | 682 |
{ |
683 |
val beg = if (comp>0) mTexComponent!![comp-1].mEndIndex+1 else 0
|
|
684 |
val end = mTexComponent!![comp].mEndIndex
|
|
683 |
val beg = if (comp>0) mTexComponent[comp-1].mEndIndex+1 else 0 |
|
684 |
val end = mTexComponent[comp].mEndIndex |
|
685 | 685 |
val sb = StringBuilder() |
686 | 686 |
|
687 | 687 |
for (vert in beg..end) |
... | ... | |
799 | 799 |
|
800 | 800 |
for (i in 0 until num) |
801 | 801 |
{ |
802 |
val end = mTexComponent!![i].mEndIndex
|
|
802 |
val end = mTexComponent[i].mEndIndex |
|
803 | 803 |
sb.append("\n") |
804 | 804 |
|
805 | 805 |
while (vert<=end) |
... | ... | |
846 | 846 |
{ |
847 | 847 |
if (mJobNode[0]!=null) mJobNode[0]!!.execute() // this will set itself to null |
848 | 848 |
|
849 |
val index1 = mVBO1!!.createImmediatelyFloat(numVertices*VERT1_SIZE, mVertAttribs1)
|
|
850 |
val index2 = mVBO2!!.createImmediatelyFloat(numVertices*VERT2_SIZE, mVertAttribs2)
|
|
849 |
val index1 = mVBO1.createImmediatelyFloat(numVertices*VERT1_SIZE, mVertAttribs1) |
|
850 |
val index2 = mVBO2.createImmediatelyFloat(numVertices*VERT2_SIZE, mVertAttribs2) |
|
851 | 851 |
val attr = program.mAttribute |
852 | 852 |
|
853 | 853 |
when (program.mAttributeLayout) |
... | ... | |
1002 | 1002 |
tex = TexComponent(index) |
1003 | 1003 |
tex.setMap(Static4D(x, y, z, w)) |
1004 | 1004 |
|
1005 |
mTexComponent!!.add(tex)
|
|
1005 |
mTexComponent.add(tex) |
|
1006 | 1006 |
texComp++ |
1007 | 1007 |
} |
1008 | 1008 |
|
1009 | 1009 |
for (effComp in 0 until numEff) |
1010 | 1010 |
{ |
1011 | 1011 |
index = tmp[TEX_COMP_SIZE*texComp+effComp].toInt() |
1012 |
mEffComponent!!.add(index)
|
|
1012 |
mEffComponent.add(index) |
|
1013 | 1013 |
} |
1014 | 1014 |
|
1015 | 1015 |
////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
1024 | 1024 |
var vert = 0 |
1025 | 1025 |
while (vert<numVertices) |
1026 | 1026 |
{ |
1027 |
mVertAttribs1!![VERT1_ATTRIBS*vert+POS_ATTRIB] = floatBuf[index+POS_ATTRIB]
|
|
1027 |
mVertAttribs1!![VERT1_ATTRIBS*vert+POS_ATTRIB ] = floatBuf[index+POS_ATTRIB ]
|
|
1028 | 1028 |
mVertAttribs1!![VERT1_ATTRIBS*vert+POS_ATTRIB+1] = floatBuf[index+POS_ATTRIB+1] |
1029 | 1029 |
mVertAttribs1!![VERT1_ATTRIBS*vert+POS_ATTRIB+2] = floatBuf[index+POS_ATTRIB+2] |
1030 |
mVertAttribs1!![VERT1_ATTRIBS*vert+NOR_ATTRIB] = floatBuf[index+NOR_ATTRIB]
|
|
1030 |
mVertAttribs1!![VERT1_ATTRIBS*vert+NOR_ATTRIB ] = floatBuf[index+NOR_ATTRIB ]
|
|
1031 | 1031 |
mVertAttribs1!![VERT1_ATTRIBS*vert+NOR_ATTRIB+1] = floatBuf[index+NOR_ATTRIB+1] |
1032 | 1032 |
mVertAttribs1!![VERT1_ATTRIBS*vert+NOR_ATTRIB+2] = floatBuf[index+NOR_ATTRIB+2] |
1033 | 1033 |
index += vert1InFile |
... | ... | |
1070 | 1070 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
1071 | 1071 |
fun getLastVertexEff(effComponent: Int): Int |
1072 | 1072 |
{ |
1073 |
if (effComponent>=0&&effComponent<mTexComponent!!.size)
|
|
1073 |
if (effComponent>=0&&effComponent<mTexComponent.size) |
|
1074 | 1074 |
{ |
1075 |
return mEffComponent!![effComponent]
|
|
1075 |
return mEffComponent[effComponent] |
|
1076 | 1076 |
} |
1077 | 1077 |
|
1078 | 1078 |
return 0 |
... | ... | |
1081 | 1081 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
1082 | 1082 |
fun getLastVertexTex(texComponent: Int): Int |
1083 | 1083 |
{ |
1084 |
if (texComponent>=0&&texComponent<mTexComponent!!.size)
|
|
1084 |
if (texComponent>=0&&texComponent<mTexComponent.size) |
|
1085 | 1085 |
{ |
1086 |
return mTexComponent!![texComponent].mEndIndex
|
|
1086 |
return mTexComponent[texComponent].mEndIndex |
|
1087 | 1087 |
} |
1088 | 1088 |
|
1089 | 1089 |
return 0 |
... | ... | |
1099 | 1099 |
{ |
1100 | 1100 |
var tex: TexComponent |
1101 | 1101 |
|
1102 |
val numTex = mTexComponent!!.size
|
|
1103 |
val numEff = mEffComponent!!.size
|
|
1102 |
val numTex = mTexComponent.size |
|
1103 |
val numEff = mEffComponent.size |
|
1104 | 1104 |
|
1105 | 1105 |
try |
1106 | 1106 |
{ |
... | ... | |
1111 | 1111 |
|
1112 | 1112 |
for (i in 0 until numTex) |
1113 | 1113 |
{ |
1114 |
tex = mTexComponent!![i]
|
|
1114 |
tex = mTexComponent[i] |
|
1115 | 1115 |
|
1116 | 1116 |
stream.writeFloat(tex.mEndIndex.toFloat()) |
1117 | 1117 |
stream.writeFloat(tex.mTextureMap.get0()) |
... | ... | |
1122 | 1122 |
|
1123 | 1123 |
for (i in 0 until numEff) |
1124 | 1124 |
{ |
1125 |
stream.writeFloat(mEffComponent!![i].toFloat())
|
|
1125 |
stream.writeFloat(mEffComponent[i].toFloat()) |
|
1126 | 1126 |
} |
1127 | 1127 |
|
1128 | 1128 |
val centers = if (useCenters) mUBC!!.backingArray else FloatArray(4*numEff) |
... | ... | |
1154 | 1154 |
*/ |
1155 | 1155 |
fun mergeTexComponents() |
1156 | 1156 |
{ |
1157 |
if (mJobNode[0]==null) |
|
1158 |
{ |
|
1159 |
mergeTexComponentsNow() |
|
1160 |
} |
|
1161 |
else |
|
1162 |
{ |
|
1163 |
mJobNode[0] = DeferredJobs.mergeTex(this) |
|
1164 |
} |
|
1157 |
if (mJobNode[0]==null) mergeTexComponentsNow() |
|
1158 |
else mJobNode[0] = DeferredJobs.mergeTex(this) |
|
1165 | 1159 |
} |
1166 | 1160 |
|
1167 | 1161 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
1170 | 1164 |
*/ |
1171 | 1165 |
fun mergeEffComponents() |
1172 | 1166 |
{ |
1173 |
if (mJobNode[0]==null) |
|
1174 |
{ |
|
1175 |
mergeEffComponentsNow() |
|
1176 |
} |
|
1177 |
else |
|
1178 |
{ |
|
1179 |
mJobNode[0] = DeferredJobs.mergeEff(this) |
|
1180 |
} |
|
1167 |
if (mJobNode[0]==null) mergeEffComponentsNow() |
|
1168 |
else mJobNode[0] = DeferredJobs.mergeEff(this) |
|
1181 | 1169 |
} |
1170 |
|
|
1182 | 1171 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
1183 | 1172 |
/** |
1184 | 1173 |
* Return the number of vertices in this Mesh. |
... | ... | |
1194 | 1183 |
mVertAttribs1 = null |
1195 | 1184 |
mVertAttribs2 = null |
1196 | 1185 |
|
1197 |
mVBO1!!.markForDeletion()
|
|
1198 |
mVBO2!!.markForDeletion()
|
|
1186 |
mVBO1.markForDeletion() |
|
1187 |
mVBO2.markForDeletion() |
|
1199 | 1188 |
mTFO.markForDeletion() |
1200 | 1189 |
mUBA.markForDeletion() |
1201 | 1190 |
|
... | ... | |
1218 | 1207 |
*/ |
1219 | 1208 |
fun apply(effect: MatrixEffect, andAssoc: Int, equAssoc: Int) |
1220 | 1209 |
{ |
1221 |
if (mJobNode[0]==null) |
|
1222 |
{ |
|
1223 |
applyMatrix(effect, andAssoc, equAssoc) |
|
1224 |
} |
|
1225 |
else |
|
1226 |
{ |
|
1227 |
mJobNode[0] = DeferredJobs.matrix(this, effect, andAssoc, equAssoc) |
|
1228 |
} |
|
1210 |
if (mJobNode[0]==null) applyMatrix(effect, andAssoc, equAssoc) |
|
1211 |
else mJobNode[0] = DeferredJobs.matrix(this, effect, andAssoc, equAssoc) |
|
1229 | 1212 |
} |
1230 | 1213 |
|
1231 | 1214 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
1241 | 1224 |
*/ |
1242 | 1225 |
fun apply(effect: VertexEffect) |
1243 | 1226 |
{ |
1244 |
mJobNode[0] = DeferredJobs.vertex(this, effect)
|
|
1227 |
mJobNode[0] = DeferredJobs.vertex(this,effect) |
|
1245 | 1228 |
} |
1246 | 1229 |
|
1247 | 1230 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
1268 | 1251 |
*/ |
1269 | 1252 |
fun setTextureMap(maps: Array<Static4D?>, startComponent: Int) |
1270 | 1253 |
{ |
1271 |
if (mJobNode[0]==null) |
|
1272 |
{ |
|
1273 |
textureMap(maps, startComponent) |
|
1274 |
} |
|
1275 |
else |
|
1276 |
{ |
|
1277 |
mJobNode[0] = DeferredJobs.textureMap(this, maps, startComponent) |
|
1278 |
} |
|
1254 |
if (mJobNode[0]==null) textureMap(maps, startComponent) |
|
1255 |
else mJobNode[0] = DeferredJobs.textureMap(this, maps, startComponent) |
|
1279 | 1256 |
} |
1280 | 1257 |
|
1281 | 1258 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
1286 | 1263 |
*/ |
1287 | 1264 |
fun getTextureMap(component: Int): Static4D? |
1288 | 1265 |
{ |
1289 |
return if ((component>=0&&component<mTexComponent!!.size)) mTexComponent!![component].mTextureMap else null
|
|
1266 |
return if ((component>=0&&component<mTexComponent.size)) mTexComponent[component].mTextureMap else null
|
|
1290 | 1267 |
} |
1291 | 1268 |
|
1292 | 1269 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
1404 | 1381 |
* |
1405 | 1382 |
* @return The number of Texture Components of this Mesh. |
1406 | 1383 |
*/ |
1407 |
val numTexComponents: Int get() = mTexComponent!!.size
|
|
1384 |
val numTexComponents: Int get() = mTexComponent.size |
|
1408 | 1385 |
|
1409 | 1386 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
1410 | 1387 |
/** |
... | ... | |
1413 | 1390 |
* |
1414 | 1391 |
* @return The number of Effect Components of this Mesh. |
1415 | 1392 |
*/ |
1416 |
val numEffComponents: Int get() = mEffComponent!!.size
|
|
1393 |
val numEffComponents: Int get() = mEffComponent.size |
|
1417 | 1394 |
|
1418 | 1395 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
1419 | 1396 |
/** |
Also available in: Unified diff
minor