Lines Matching refs:pieces

79 PieceClass Pieces_GetPieceClass(Pieces pieces) {return (pieces->piece_class);}  in Pieces_GetPieceClass()  argument
80 int Pieces_GetArraySize(Pieces pieces) { return (pieces->array_size); } in Pieces_GetArraySize() argument
81 int Pieces_GetNumber(Pieces pieces) { return (pieces->number); } in Pieces_GetNumber() argument
82 XArc * Pieces_GetPositions(Pieces pieces) { return (pieces->positions); } in Pieces_GetPositions() argument
83 double * Pieces_GetZ(Pieces pieces) { return (pieces->z); } in Pieces_GetZ() argument
84 double * Pieces_GetVx(Pieces pieces) { return (pieces->vx); } in Pieces_GetVx() argument
85 double * Pieces_GetVy(Pieces pieces) { return (pieces->vy); } in Pieces_GetVy() argument
86 double * Pieces_GetVz(Pieces pieces) { return (pieces->vz); } in Pieces_GetVz() argument
88 int Pieces_GetSize(Pieces pieces) { return (pieces->piece_class->size); } in Pieces_GetSize() argument
90 ObjList Pieces_GetGCList(Pieces pieces) in Pieces_GetGCList() argument
92 return ((ObjList)ObjListData_GetObj(pieces->gc_list)); in Pieces_GetGCList()
500 int Pieces_Initialize(Pieces pieces, in Pieces_Initialize() argument
512 pieces->piece_class = piece_class; in Pieces_Initialize()
513 pieces->gc_list = ObjList_GetStartEdge(pieces->piece_class->gc_list_list); in Pieces_Initialize()
515 if (n * number > pieces->array_size) return (1); in Pieces_Initialize()
523 pieces->positions[a] = positions[i]; in Pieces_Initialize()
524 pieces->positions[a].width = pieces->piece_class->size; in Pieces_Initialize()
525 pieces->positions[a].height = pieces->piece_class->size; in Pieces_Initialize()
526 pieces->z[a] = z[i]; in Pieces_Initialize()
527 t = pieces->piece_class->transmission * 0.01; in Pieces_Initialize()
528 pieces->vx[a] = Calculator_GetCos(calculator, rad) *power*p+ vx[i] * t; in Pieces_Initialize()
529 pieces->vy[a] = Calculator_GetSin(calculator, rad) *power*p+ vy[i] * t; in Pieces_Initialize()
530 pieces->vz[a] = Calculator_GetSin(calculator, z_rad) * power + vz[i] * t; in Pieces_Initialize()
531 if ( ((pieces->positions[a].x < x_min) && (pieces->vx[a] < 0.0)) || in Pieces_Initialize()
532 ((pieces->positions[a].x > x_max) && (pieces->vx[a] > 0.0)) || in Pieces_Initialize()
533 ((pieces->positions[a].y > y_max) && (pieces->vy[a] > 0.0)) ) { in Pieces_Initialize()
540 pieces->number = a; in Pieces_Initialize()
555 Pieces pieces; in Pieces_Create() local
557 pieces = (Pieces)malloc(sizeof(_Pieces)); in Pieces_Create()
558 if (!pieces) Error("Pieces_Create", "Cannot allocate memory"); in Pieces_Create()
560 pieces->array_size = number * n; in Pieces_Create()
565 if (pieces->array_size < 30) pieces->array_size = 30; in Pieces_Create()
567 if (pieces->array_size) { in Pieces_Create()
569 pieces->positions = (XArc *)malloc(sizeof(XArc) * pieces->array_size); in Pieces_Create()
570 if (pieces->positions == NULL) in Pieces_Create()
574 pieces->z = (double *)malloc(sizeof(double) * pieces->array_size * 4); in Pieces_Create()
575 if (pieces->z == NULL) Error("Pieces_Create", "Cannot allocate memory"); in Pieces_Create()
576 pieces->vx = pieces->z + pieces->array_size * 1; in Pieces_Create()
577 pieces->vy = pieces->z + pieces->array_size * 2; in Pieces_Create()
578 pieces->vz = pieces->z + pieces->array_size * 3; in Pieces_Create()
580 pieces->z = (double *)malloc(sizeof(double) * pieces->array_size); in Pieces_Create()
581 if (pieces->z == NULL) Error("Pieces_Create", "Cannot allocate memory"); in Pieces_Create()
582 pieces->vx = (double *)malloc(sizeof(double) * pieces->array_size); in Pieces_Create()
583 if (pieces->vx == NULL) Error("Pieces_Create", "Cannot allocate memory"); in Pieces_Create()
584 pieces->vy = (double *)malloc(sizeof(double) * pieces->array_size); in Pieces_Create()
585 if (pieces->vy == NULL) Error("Pieces_Create", "Cannot allocate memory"); in Pieces_Create()
586 pieces->vz = (double *)malloc(sizeof(double) * pieces->array_size); in Pieces_Create()
587 if (pieces->vz == NULL) Error("Pieces_Create", "Cannot allocate memory"); in Pieces_Create()
590 pieces->positions = NULL; in Pieces_Create()
591 pieces->z = NULL; in Pieces_Create()
592 pieces->vx = NULL; in Pieces_Create()
593 pieces->vy = NULL; in Pieces_Create()
594 pieces->vz = NULL; in Pieces_Create()
597 Pieces_Initialize(pieces, piece_class, power, number, n, in Pieces_Create()
601 return (pieces); in Pieces_Create()
608 Pieces Pieces_Destroy(Pieces pieces) in Pieces_Destroy() argument
610 if (!pieces) return (NULL); in Pieces_Destroy()
612 if (pieces->positions) free(pieces->positions); in Pieces_Destroy()
615 if (pieces->z ) free(pieces->z ); in Pieces_Destroy()
617 if (pieces->z ) free(pieces->z ); in Pieces_Destroy()
618 if (pieces->vx) free(pieces->vx); in Pieces_Destroy()
619 if (pieces->vy) free(pieces->vy); in Pieces_Destroy()
620 if (pieces->vz) free(pieces->vz); in Pieces_Destroy()
623 free(pieces); in Pieces_Destroy()
632 int Pieces_Move(Pieces pieces, in Pieces_Move() argument
642 if (ObjList_IsEnd(pieces->piece_class->gc_list_list, pieces->gc_list)) in Pieces_Move()
645 step = pieces->piece_class->step; in Pieces_Move()
646 air = 1.0 - pieces->piece_class->air * step; in Pieces_Move()
647 g = pieces->piece_class->gravity * step; in Pieces_Move()
651 for (i = 0; i < pieces->number; i++) { in Pieces_Move()
653 pieces->positions[i] = pieces->positions[i + a]; in Pieces_Move()
654 pieces->z[ i] = pieces->z[ i + a]; in Pieces_Move()
655 pieces->vx[i] = pieces->vx[i + a]; in Pieces_Move()
656 pieces->vy[i] = pieces->vy[i + a]; in Pieces_Move()
657 pieces->vz[i] = pieces->vz[i + a]; in Pieces_Move()
660 pieces->vy[i] += g; in Pieces_Move()
663 pieces->vx[i] *= air; in Pieces_Move()
664 pieces->vy[i] *= air; in Pieces_Move()
665 pieces->vz[i] *= air; in Pieces_Move()
668 pieces->z[i] += pieces->vz[i] * step; in Pieces_Move()
669 z = 1.0 - pieces->z[i] * (1.0 / 1000.0); in Pieces_Move()
673 pieces->positions[i].x += pieces->vx[i] * tmp2; in Pieces_Move()
674 pieces->positions[i].y += pieces->vy[i] * tmp2; in Pieces_Move()
676 if (((pieces->positions[i].x < x_min) && (pieces->vx[i] < 0.0)) || in Pieces_Move()
677 ((pieces->positions[i].x > x_max) && (pieces->vx[i] > 0.0)) || in Pieces_Move()
678 (pieces->positions[i].y > y_max)) { in Pieces_Move()
681 pieces->number--; in Pieces_Move()
685 if (pieces->number == 0) return (1); in Pieces_Move()
687 pieces->gc_list = ObjListData_GetNext(pieces->gc_list); in Pieces_Move()