Project

General

Profile

« Previous | Next » 

Revision 98bfe573

Added by Leszek Koltunski 8 days ago

fixes for MeshBase

View differences:

src/main/java/org/distorted/library/mesh/MeshBase.kt
394 394
        var mesh: MeshBase
395 395
        var comp: TexComponent
396 396
        val numMeshes = meshes.size
397
        var origVertices = this.numVertices
397
        var origVertices = numVertices
398
        var numVert: Int
398 399
        val origTexComponents: Int
399 400
        var numTexComponents: Int
400 401
        var origEffComponents = 0
......
403 404
        if (origVertices>0)
404 405
        {
405 406
            origTexComponents = mTexComponent!!.size
406
            this.numVertices += (if (this.numVertices%2==1) 2 else 1)
407
            mTexComponent!![origTexComponents-1].mEndIndex = this.numVertices-1
407
            numVertices += (if (numVertices%2==1) 2 else 1)
408
            mTexComponent!![origTexComponents-1].mEndIndex = numVertices-1
408 409
            origEffComponents = mEffComponent!!.size
409
            mEffComponent!![origEffComponents-1] = this.numVertices-1
410
            mEffComponent!![origEffComponents-1] = numVertices-1
410 411
        }
411 412

  
412 413
        for (i in 0 until numMeshes)
......
414 415
            mesh = meshes[i]
415 416
            numTexComponents = mesh.mTexComponent!!.size
416 417
            numEffComponents = mesh.mEffComponent!!.size
417
            numVertices = mesh.numVertices
418
            numVert = mesh.numVertices
418 419

  
419
            val extraVerticesBefore = if (this.numVertices==0) 0 else 1
420
            val extraVerticesAfter = if ((i==numMeshes-1)) 0 else (if (numVertices%2==1) 2 else 1)
420
            val extraVerticesBefore = if (numVertices==0) 0 else 1
421
            val extraVerticesAfter  = if ((i==numMeshes-1)) 0 else (if (numVert%2==1) 2 else 1)
421 422

  
422 423
            for (j in 0 until numTexComponents)
423 424
            {
424 425
                comp = TexComponent(mesh.mTexComponent!![j])
425
                comp.mEndIndex += (extraVerticesBefore+this.numVertices)
426
                comp.mEndIndex += (extraVerticesBefore+numVertices)
426 427
                if (j==numTexComponents-1) comp.mEndIndex += extraVerticesAfter
427 428
                mTexComponent!!.add(comp)
428 429
            }
......
430 431
            for (j in 0 until numEffComponents)
431 432
            {
432 433
                var index = mesh.mEffComponent!![j]
433
                index += (extraVerticesBefore+this.numVertices)
434
                index += (extraVerticesBefore+numVertices)
434 435
                if (j==numEffComponents-1) index += extraVerticesAfter
435 436
                mEffComponent!!.add(index)
436 437

  
......
442 443
                }
443 444
            }
444 445

  
445
            this.numVertices += (extraVerticesBefore+numVertices+extraVerticesAfter)
446
            numVertices += (extraVerticesBefore+numVert+extraVerticesAfter)
446 447
        }
447 448

  
448
        val newAttribs1 = FloatArray(VERT1_ATTRIBS*this.numVertices)
449
        val newAttribs2 = FloatArray(VERT2_ATTRIBS*this.numVertices)
450
        numVertices = origVertices
449
        val newAttribs1 = FloatArray(VERT1_ATTRIBS*numVertices)
450
        val newAttribs2 = FloatArray(VERT2_ATTRIBS*numVertices)
451
        numVert = origVertices
451 452

  
452 453
        if (origVertices>0)
453 454
        {
......
459 460
            mVertAttribs2?.copyInto(newAttribs2, 0               , 0 , v2)
460 461
            mVertAttribs2?.copyInto(newAttribs2, v2-VERT2_ATTRIBS, v2, v2+VERT2_ATTRIBS)
461 462
*/
462

  
463
            System.arraycopy(mVertAttribs1, 0, newAttribs1, 0, v1)
464
            System.arraycopy(mVertAttribs1, v1-VERT1_ATTRIBS, newAttribs1, v1, VERT1_ATTRIBS)
465
            System.arraycopy(mVertAttribs2, 0, newAttribs2, 0, v2)
466
            System.arraycopy(mVertAttribs2, v2-VERT2_ATTRIBS, newAttribs2, v2, VERT2_ATTRIBS)
467

  
463
            System.arraycopy(mVertAttribs1,                0, newAttribs1,  0, VERT1_ATTRIBS*numVert);
464
            System.arraycopy(mVertAttribs1, v1-VERT1_ATTRIBS, newAttribs1, v1, VERT1_ATTRIBS        );
465
            System.arraycopy(mVertAttribs2,                0, newAttribs2,  0, VERT2_ATTRIBS*numVert);
466
            System.arraycopy(mVertAttribs2, v2-VERT2_ATTRIBS, newAttribs2, v2, VERT2_ATTRIBS        );
468 467
            origVertices++
469 468

  
470
            if (numVertices%2==1)
469
            if (numVert%2==1)
471 470
            {
472 471
                val w1 = VERT1_ATTRIBS*origVertices
473 472
                val w2 = VERT2_ATTRIBS*origVertices
......
475 474
                mVertAttribs1?.copyInto(newAttribs1,w1-VERT1_ATTRIBS,w1,w1+VERT1_ATTRIBS)
476 475
                mVertAttribs2?.copyInto(newAttribs2,w2-VERT2_ATTRIBS,w2,w2+VERT2_ATTRIBS)
477 476
*/
478

  
479 477
                System.arraycopy(mVertAttribs1, w1-VERT1_ATTRIBS, newAttribs1, w1, VERT1_ATTRIBS)
480 478
                System.arraycopy(mVertAttribs2, w2-VERT2_ATTRIBS, newAttribs2, w2, VERT2_ATTRIBS)
481

  
482 479
                origVertices++
483 480
            }
484 481
        }
......
486 483
        for (i in 0 until numMeshes)
487 484
        {
488 485
            mesh = meshes[i]
489
            numVertices = mesh.numVertices
486
            numVert = mesh.numVertices
490 487

  
491 488
            if (origVertices>0)
492 489
            {
......
496 493
                mesh.mVertAttribs1?.copyInto(newAttribs1,0, v1, v1+VERT1_ATTRIBS)
497 494
                mesh.mVertAttribs2?.copyInto(newAttribs2,0, v2, v2+VERT2_ATTRIBS)
498 495
*/
499

  
500
                System.arraycopy(mesh.mVertAttribs1, 0, newAttribs1, VERT1_ATTRIBS*origVertices, VERT1_ATTRIBS)
501
                System.arraycopy(mesh.mVertAttribs2, 0, newAttribs2, VERT2_ATTRIBS*origVertices, VERT2_ATTRIBS)
502

  
496
                System.arraycopy(mesh.mVertAttribs1, 0, newAttribs1, v1, VERT1_ATTRIBS)
497
                System.arraycopy(mesh.mVertAttribs2, 0, newAttribs2, v2, VERT2_ATTRIBS)
503 498
                origVertices++
504 499
            }
505 500
            val v1 = VERT1_ATTRIBS*origVertices
......
508 503
            mesh.mVertAttribs1?.copyInto(newAttribs1,0, v1, v1+VERT1_ATTRIBS*numVertices)
509 504
            mesh.mVertAttribs2?.copyInto(newAttribs2,0, v2, v2+VERT2_ATTRIBS*numVertices)
510 505
*/
511
android.util.Log.e("D", "from: 0 to: "+(VERT1_ATTRIBS*origVertices)+" num: "+(VERT1_ATTRIBS*numVertices) );
512
android.util.Log.e("D", "from len: "+mesh.mVertAttribs1?.size +" to len: "+newAttribs1.size);
513

  
514
            System.arraycopy(mesh.mVertAttribs1, 0, newAttribs1, VERT1_ATTRIBS*origVertices, VERT1_ATTRIBS*numVertices)
515

  
516
android.util.Log.e("D", "DONE ");
517

  
518
            System.arraycopy(mesh.mVertAttribs2, 0, newAttribs2, VERT2_ATTRIBS*origVertices, VERT2_ATTRIBS*numVertices)
519

  
520
            origVertices += numVertices
506
            System.arraycopy(mesh.mVertAttribs1, 0, newAttribs1, v1, VERT1_ATTRIBS*numVert)
507
            System.arraycopy(mesh.mVertAttribs2, 0, newAttribs2, v2, VERT2_ATTRIBS*numVert)
508
            origVertices += numVert
521 509

  
522
            if (i<numMeshes-1&&numVertices>0)
510
            if( i<numMeshes-1 && numVert>0 )
523 511
            {
524 512
                val w1 = VERT1_ATTRIBS*origVertices
525 513
                val w2 = VERT2_ATTRIBS*origVertices
......
527 515
                mesh.mVertAttribs1?.copyInto(newAttribs1, VERT1_ATTRIBS*(numVertices-1), w1, w1+VERT1_ATTRIBS)
528 516
                mesh.mVertAttribs2?.copyInto(newAttribs2, VERT2_ATTRIBS*(numVertices-1), w2, w2+VERT2_ATTRIBS)
529 517
*/
530
                System.arraycopy(mesh.mVertAttribs1, VERT1_ATTRIBS*(numVertices-1), newAttribs1, VERT1_ATTRIBS*origVertices, VERT1_ATTRIBS)
531
                System.arraycopy(mesh.mVertAttribs2, VERT2_ATTRIBS*(numVertices-1), newAttribs2, VERT2_ATTRIBS*origVertices, VERT2_ATTRIBS)
518
                System.arraycopy(mesh.mVertAttribs1, VERT1_ATTRIBS*(numVert-1), newAttribs1, w1, VERT1_ATTRIBS)
519
                System.arraycopy(mesh.mVertAttribs2, VERT2_ATTRIBS*(numVert-1), newAttribs2, w2, VERT2_ATTRIBS)
532 520
                origVertices++
533 521

  
534
                if (numVertices%2==1)
522
                if (numVert%2==1)
535 523
                {
536 524
                    val z1 = VERT1_ATTRIBS*origVertices
537 525
                    val z2 = VERT2_ATTRIBS*origVertices
......
539 527
                    mesh.mVertAttribs1?.copyInto(newAttribs1, VERT1_ATTRIBS*(numVertices-1), z1, z1+VERT1_ATTRIBS)
540 528
                    mesh.mVertAttribs2?.copyInto(newAttribs2, VERT2_ATTRIBS*(numVertices-1), z2, z2+VERT2_ATTRIBS)
541 529
*/
542
                    System.arraycopy(mesh.mVertAttribs1, VERT1_ATTRIBS*(numVertices-1), newAttribs1, VERT1_ATTRIBS*origVertices, VERT1_ATTRIBS)
543
                    System.arraycopy(mesh.mVertAttribs2, VERT2_ATTRIBS*(numVertices-1), newAttribs2, VERT2_ATTRIBS*origVertices, VERT2_ATTRIBS)
530
                    System.arraycopy(mesh.mVertAttribs1, VERT1_ATTRIBS*(numVert-1), newAttribs1, z1, VERT1_ATTRIBS)
531
                    System.arraycopy(mesh.mVertAttribs2, VERT2_ATTRIBS*(numVert-1), newAttribs2, z2, VERT2_ATTRIBS)
544 532
                    origVertices++
545 533
                }
546 534
            }
547 535
        }
548 536

  
549
        if (origVertices!=this.numVertices)
537
        if( origVertices!=numVertices )
550 538
        {
551
            DistortedLibrary.logMessage("MeshBase: join: origVertices: "+origVertices+" numVertices: "+this.numVertices)
539
            DistortedLibrary.logMessage("MeshBase: join: origVertices: "+origVertices+" numVertices: "+numVertices)
552 540
        }
553 541

  
554 542
        var endIndex: Int

Also available in: Unified diff