コード例 #1
0
void newCube( void)
{  // creates a new 3x3x3 Rubik cube 
    short po, n;
    int u = U + U/2;
    
    facec = MAXF;
    objc = MAXOBJ;
    
    // generate 8 cube corners
    c[2][2][2] = newCorner( +0, +0,  +00, R_Y, R_O, R_B); // A
    c[2][0][2] = newCorner( +0, +0,  +270, R_Y, R_B, R_R); // B
    c[0][0][2] = newCorner( +0, +0,  180, R_Y, R_R, R_G); // C
    c[0][2][2] = newCorner( +0, +0,  +90, R_Y, R_G, R_O); // D
    c[0][2][0] = newCorner( +0, 180, +00, R_W, R_O, R_G); // G
    c[0][0][0] = newCorner( +0, 180, -90, R_W, R_G, R_R); // H
    c[2][0][0] = newCorner( +0, 180, 180, R_W, R_R, R_B); // E
    c[2][2][0] = newCorner( +0, 180, +90, R_W, R_B, R_O); // F
   
    // generate 12 cube edges
    c[1][2][2] = newEdge(   0,   0,   0, R_Y, R_O); // DA
    c[2][1][2] = newEdge(   0,   0, -90, R_Y, R_B); // AB
    c[1][0][2] = newEdge(   0,   0, 180, R_Y, R_R); // BC
    c[0][1][2] = newEdge(   0,   0,  90, R_Y, R_G); // CD

    c[1][2][0] = newEdge(   0, 180,   0, R_W, R_O); // FG
    c[0][1][0] = newEdge(   0, 180, -90, R_W, R_G); // GH
    c[1][0][0] = newEdge(   0, 180, 180, R_W, R_R); // HE
    c[2][1][0] = newEdge(   0, 180, +90, R_W, R_B); // EF

    c[2][2][1] = newEdge(   0,  90,   0, R_B, R_O); 
    c[2][0][1] = newEdge(   0,  90, 180, R_B, R_R);
    c[0][2][1] = newEdge(   0, -90,   0, R_G, R_O); // DG
    c[0][0][1] = newEdge(   0, -90, 180, R_G, R_R);
    
    // add 6 more sides
    c[1][1][2] = newSide(   0,   0,   0, R_Y);
    c[2][1][1] = newSide(   0,  90,   0, R_B);
    c[1][1][0] = newSide(   0, 180,   0, R_W);
    c[0][1][1] = newSide(   0, -90,   0, R_G);
    c[1][2][1] = newSide( -90,   0,   0, R_O);
    c[1][0][1] = newSide( +90,   0,   0, R_R);
    
    olist[0].f = 0; // object 0 is empty (will be used as a temp)   
    olist[0].n = 0;  
    
} // newObject     
コード例 #2
0
ファイル: cmBrush.cpp プロジェクト: OnlyTheGhosts/OWEngine
void cmBrush_c::perPlaneCallback( const float plEq[4] )
{
	plane_c pl( plEq );
	cmBrushSide_c newSide( pl );
	sides.push_back( newSide );
}