opj_tgt_node_t *node = NULL;\r
opj_tgt_node_t *parentnode = NULL;\r
opj_tgt_node_t *parentnode0 = NULL;\r
+ opj_tgt_node_t *parentnode1 = NULL;\r
opj_tgt_tree_t *tree = NULL;\r
int i, j, k, p, p0;\r
int numlvls;\r
node = tree->nodes;\r
parentnode = &tree->nodes[tree->numleafsh * tree->numleafsv * tree->numleafsz];\r
parentnode0 = parentnode;\r
- \r
- p = tree->numleafsh * tree->numleafsv * tree->numleafsz;\r
- p0 = p;\r
- n = 0;\r
- //fprintf(stdout,"\nH %d V %d Z %d numlvls %d nodes %d\n",tree->numleafsh,tree->numleafsv,tree->numleafsz,numlvls,tree->numnodes);\r
+ parentnode1 = parentnode;\r
+ /*fprintf(stdout,"\nH %d V %d Z %d numlvls %d nodes %d\n",tree->numleafsh,tree->numleafsv,tree->numleafsz,numlvls,tree->numnodes);*/\r
for (i = 0; i < numlvls - 1; ++i) {\r
- for (j = 0; j < nplv[i]; ++j) {\r
- k = nplh[i]*nplz[i];\r
- while (--k >= 0) {\r
- node->parent = parentnode; //fprintf(stdout,"node[%d].parent = node[%d]\n",n,p);\r
- ++node; ++n; \r
- if (--k >= 0 && n < p) {\r
- node->parent = parentnode; //fprintf(stdout,"node[%d].parent = node[%d]\n",n,p);\r
- ++node; ++n; \r
- }\r
- if (nplz[i] != 1){ //2D operation vs 3D operation\r
- if (--k >= 0 && n < p) {\r
- node->parent = parentnode; //fprintf(stdout,"node[%d].parent = node[%d]\n",n,p);\r
- ++node; ++n;\r
- }\r
- if (--k >= 0 && n < p) {\r
- node->parent = parentnode; //fprintf(stdout,"node[%d].parent = node[%d]\n",n,p);\r
- ++node; ++n;\r
+ for (z = 0; z < nplz[i]; ++z) {\r
+ for (j = 0; j < nplv[i]; ++j) {\r
+ k = nplh[i];\r
+ while(--k >= 0) {\r
+ node->parent = parentnode; /*fprintf(stdout,"node[%d].parent = node[%d]\n",n,p);*/\r
+ ++node;\r
+ if(--k >= 0) {\r
+ node->parent = parentnode; /*fprintf(stdout,"node[%d].parent = node[%d]\n",n,p);*/\r
+ ++node;\r
}\r
+ ++parentnode;\r
+ }\r
+ if((j & 1) || j == nplv[i] - 1) {\r
+ parentnode0 = parentnode;\r
+ } else {\r
+ parentnode = parentnode0;\r
}\r
- ++parentnode; ++p;\r
}\r
- if ((j & 1) || j == nplv[i] - 1) {\r
- parentnode0 = parentnode; p0 = p; //fprintf(stdout,"parent = node[%d] \n",p);\r
+ if ((z & 1) || z == nplz[i] - 1) {\r
+ parentnode1 = parentnode;\r
} else {\r
- parentnode = parentnode0; p = p0; //fprintf(stdout,"parent = node[%d] \n",p);\r
- parentnode0 += nplh[i]*nplz[i]; p0 += nplh[i]*nplz[i];\r
+ parentnode0 = parentnode1;\r
+ parentnode = parentnode1;\r
}\r
}\r
}\r