00001
00002 #include "NiBVHName.h"
00003
00004 using namespace jbxl;
00005 using namespace jbxwl;
00006
00007
00011 tList* jbxwl::setBVHJointName(void)
00012 {
00013 tList* lt = add_bvh_name(NULL, -1, "BVH Name List");
00014 tList* pp = lt;
00015
00016
00017 for (int j=0; j<NI_NORML_JOINT_NUM; j++) {
00018 pp = add_bvh_name(pp, j, (char*)NiJointName(j).c_str());
00019 }
00020
00021
00022 pp = add_bvh_name(pp, NI_PELVIS, "mPelvis");
00023 pp = add_bvh_name(pp, NI_TORSO, "mTorso");
00024 pp = add_bvh_name(pp, NI_CHEST, "mChest");
00025 pp = add_bvh_name(pp, NI_NECK, "mNeck");
00026 pp = add_bvh_name(pp, NI_HEAD, "mHead");
00027 pp = add_bvh_name(pp, NI_SKULL, "mSkull");
00028 pp = add_bvh_name(pp, NI_L_EYE, "mEyeLeft");
00029 pp = add_bvh_name(pp, NI_R_EYE, "mEyeRight");
00030 pp = add_bvh_name(pp, NI_L_COLLAR, "mCollarLeft");
00031 pp = add_bvh_name(pp, NI_L_SHLDR, "mShoulderLeft");
00032 pp = add_bvh_name(pp, NI_L_ELBOW, "mElbowLeft");
00033 pp = add_bvh_name(pp, NI_L_WRIST, "mWristLeft");
00034 pp = add_bvh_name(pp, NI_R_COLLAR, "mCollarRight");
00035 pp = add_bvh_name(pp, NI_R_SHLDR, "mShoulderRight");
00036 pp = add_bvh_name(pp, NI_R_ELBOW, "mElbowRight");
00037 pp = add_bvh_name(pp, NI_R_WRIST, "mWristRight");
00038 pp = add_bvh_name(pp, NI_L_HIP, "mHipLeft");
00039 pp = add_bvh_name(pp, NI_L_KNEE, "mKneeLeft");
00040 pp = add_bvh_name(pp, NI_L_ANKLE, "mAnkleLeft");
00041 pp = add_bvh_name(pp, NI_L_FOOT, "mFootLeft");
00042 pp = add_bvh_name(pp, NI_L_TOE, "mToeLeft");
00043 pp = add_bvh_name(pp, NI_R_HIP, "mHipRight");
00044 pp = add_bvh_name(pp, NI_R_KNEE, "mKneeRight");
00045 pp = add_bvh_name(pp, NI_R_ANKLE, "mAnkleRight");
00046 pp = add_bvh_name(pp, NI_R_FOOT, "mFootRight");
00047 pp = add_bvh_name(pp, NI_R_TOE, "mToeRight");
00048
00049
00050 pp = add_bvh_name(pp, NI_PELVIS, "avatar_mPelvis");
00051 pp = add_bvh_name(pp, NI_TORSO, "avatar_mTorso");
00052 pp = add_bvh_name(pp, NI_CHEST, "avatar_mChest");
00053 pp = add_bvh_name(pp, NI_NECK, "avatar_mNeck");
00054 pp = add_bvh_name(pp, NI_HEAD, "avatar_mHead");
00055 pp = add_bvh_name(pp, NI_SKULL, "avatar_mSkull");
00056 pp = add_bvh_name(pp, NI_L_EYE, "avatar_mEyeLeft");
00057 pp = add_bvh_name(pp, NI_R_EYE, "avatar_mEyeRight");
00058 pp = add_bvh_name(pp, NI_L_COLLAR, "avatar_mCollarLeft");
00059 pp = add_bvh_name(pp, NI_L_SHLDR, "avatar_mShoulderLeft");
00060 pp = add_bvh_name(pp, NI_L_ELBOW, "avatar_mElbowLeft");
00061 pp = add_bvh_name(pp, NI_L_WRIST, "avatar_mWristLeft");
00062 pp = add_bvh_name(pp, NI_R_COLLAR, "avatar_mCollarRight");
00063 pp = add_bvh_name(pp, NI_R_SHLDR, "avatar_mShoulderRight");
00064 pp = add_bvh_name(pp, NI_R_ELBOW, "avatar_mElbowRight");
00065 pp = add_bvh_name(pp, NI_R_WRIST, "avatar_mWristRight");
00066 pp = add_bvh_name(pp, NI_L_HIP, "avatar_mHipLeft");
00067 pp = add_bvh_name(pp, NI_L_KNEE, "avatar_mKneeLeft");
00068 pp = add_bvh_name(pp, NI_L_ANKLE, "avatar_mAnkleLeft");
00069 pp = add_bvh_name(pp, NI_L_FOOT, "avatar_mFootLeft");
00070 pp = add_bvh_name(pp, NI_L_TOE, "avatar_mToeLeft");
00071 pp = add_bvh_name(pp, NI_R_HIP, "avatar_mHipRight");
00072 pp = add_bvh_name(pp, NI_R_KNEE, "avatar_mKneeRight");
00073 pp = add_bvh_name(pp, NI_R_ANKLE, "avatar_mAnkleRight");
00074 pp = add_bvh_name(pp, NI_R_FOOT, "avatar_mFootRight");
00075 pp = add_bvh_name(pp, NI_R_TOE, "avatar_mToeRight");
00076
00077
00078 pp = add_bvh_name(pp, NI_PELVIS, "hip");
00079 pp = add_bvh_name(pp, NI_TORSO, "abdomen");
00080 pp = add_bvh_name(pp, NI_CHEST, "chest");
00081 pp = add_bvh_name(pp, NI_NECK, "neck");
00082 pp = add_bvh_name(pp, NI_HEAD, "head");
00083 pp = add_bvh_name(pp, NI_L_COLLAR, "lCollar");
00084 pp = add_bvh_name(pp, NI_L_SHLDR, "lShldr");
00085 pp = add_bvh_name(pp, NI_L_ELBOW, "lForeArm");
00086 pp = add_bvh_name(pp, NI_L_WRIST, "lHand");
00087 pp = add_bvh_name(pp, NI_R_COLLAR, "rCollar");
00088 pp = add_bvh_name(pp, NI_R_SHLDR, "rShldr");
00089 pp = add_bvh_name(pp, NI_R_ELBOW, "rForeArm");
00090 pp = add_bvh_name(pp, NI_R_WRIST, "rHand");
00091 pp = add_bvh_name(pp, NI_L_HIP, "lThigh");
00092 pp = add_bvh_name(pp, NI_L_KNEE, "lShin");
00093 pp = add_bvh_name(pp, NI_L_FOOT, "lFoot");
00094 pp = add_bvh_name(pp, NI_R_HIP, "rThigh");
00095 pp = add_bvh_name(pp, NI_R_KNEE, "rShin");
00096 pp = add_bvh_name(pp, NI_R_FOOT, "rFoot");
00097
00098 return lt;
00099 }
00100
00101
00102
00103 tList* jbxwl::addBVHJointName(char* fname, tList* nl)
00104 {
00105 tList* pp = dup_tList(nl);
00106 tList* lt = pp;
00107
00108 tList* tl = read_index_tList_file(fname, ' ');
00109 if (tl==NULL) return pp;
00110
00111
00112
00113 for (int j=0; j<NI_NORML_JOINT_NUM; j++) {
00114 char* joint_name = get_str_param_tList(tl, (char*)NiJointName(j).c_str(), NULL);
00115 if (joint_name!=NULL) {
00116 pp = add_bvh_name(pp, j, joint_name);
00117 free(joint_name);
00118 }
00119 }
00120
00121 del_tList(&tl);
00122
00123 return lt;
00124 }
00125
00126
00127
00128 int jbxwl::BVHJoint2NiJointNum(tList* lt, Buffer joint_name)
00129 {
00130 tList* pp = lt;
00131
00132 if (pp==NULL) return -1;
00133
00134 while(pp!=NULL) {
00135 if (!strcasecmp((char*)joint_name.buf, (char*)pp->ldat.key.buf)) {
00136 return pp->ldat.id;
00137 }
00138 pp = pp->next;
00139 }
00140
00141 return -1;
00142 }
00143
00144
00145
00146
00148
00149
00150 tTree* jbxwl::makeBVH_SLHierarchy(void)
00151 {
00152 tTree* root = NULL;
00153 tTree* chst = NULL;
00154 tTree* head = NULL;
00155 tTree* tree = NULL;
00156
00157 root = add_tTree_node_bystr(NULL, BVH_NODE_ROOT, 6, "hip", "PXPYPZRYRXRZ", NULL, 0);
00158
00159 tree = add_tTree_node_bystr(root, BVH_NODE_JOINT, 3, "abdomen", "RYRXRZ", NULL, 0);
00160 chst = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "chest", "RYRXRZ", NULL, 0);
00161
00162 tree = add_tTree_node_bystr(chst, BVH_NODE_JOINT, 3, "neck", "RYRXRZ", NULL, 0);
00163 head = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "head", "RYRXRZ", NULL, 0);
00164
00165 tree = add_tTree_node_bystr(head, BVH_NODE_JOINT, 3, "mSkull", "RYRXRZ", NULL, 0);
00166 tree = add_tTree_node_bystr(tree, BVH_NODE_END, 0, "Site", NULL, NULL, 0);
00167
00168 tree = add_tTree_node_bystr(head, BVH_NODE_JOINT, 3, "mEyeLeft", "RYRXRZ", NULL, 0);
00169 tree = add_tTree_node_bystr(tree, BVH_NODE_END, 0, "Site", NULL, NULL, 0);
00170
00171 tree = add_tTree_node_bystr(head, BVH_NODE_JOINT, 3, "mEyeRight", "RYRXRZ", NULL, 0);
00172 tree = add_tTree_node_bystr(tree, BVH_NODE_END, 0, "Site", NULL, NULL, 0);
00173
00174 tree = add_tTree_node_bystr(chst, BVH_NODE_JOINT, 3, "lCollar", "RYRXRZ", NULL, 0);
00175 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "lShldr", "RYRXRZ", NULL, 0);
00176 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "lForeArm", "RYRXRZ", NULL, 0);
00177 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "lHand", "RYRXRZ", NULL, 0);
00178 tree = add_tTree_node_bystr(tree, BVH_NODE_END, 0, "Site", NULL, NULL, 0);
00179
00180 tree = add_tTree_node_bystr(chst, BVH_NODE_JOINT, 3, "rCollar", "RYRXRZ", NULL, 0);
00181 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "rShldr", "RYRXRZ", NULL, 0);
00182 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "rForeArm", "RYRXRZ", NULL, 0);
00183 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "rHand", "RYRXRZ", NULL, 0);
00184 tree = add_tTree_node_bystr(tree, BVH_NODE_END, 0, "Site", NULL, NULL, 0);
00185
00186 tree = add_tTree_node_bystr(root, BVH_NODE_JOINT, 3, "lThigh", "RYRXRZ", NULL, 0);
00187 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "lShin", "RYRXRZ", NULL, 0);
00188 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "mAnkleLeft", "RYRXRZ", NULL, 0);
00189 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "lFoot", "RYRXRZ", NULL, 0);
00190 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "mToeLeft", "RYRXRZ", NULL, 0);
00191 tree = add_tTree_node_bystr(tree, BVH_NODE_END, 0, "Site", NULL, NULL, 0);
00192
00193 tree = add_tTree_node_bystr(root, BVH_NODE_JOINT, 3, "rThigh", "RYRXRZ", NULL, 0);
00194 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "rShin", "RYRXRZ", NULL, 0);
00195 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "mAnkleRight","RYRXRZ", NULL, 0);
00196 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "rFoot", "RYRXRZ", NULL, 0);
00197 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "mToeRight", "RYRXRZ", NULL, 0);
00198 tree = add_tTree_node_bystr(tree, BVH_NODE_END, 0, "Site", NULL, NULL, 0);
00199
00200 return root;
00201 }
00202
00203
00204
00205 tTree* jbxwl::makeBVH_QAvHierarchy(void)
00206 {
00207 tTree* root = NULL;
00208 tTree* chst = NULL;
00209 tTree* tree = NULL;
00210
00211 root = add_tTree_node_bystr(NULL, BVH_NODE_ROOT, 6, "hip", "PXPYPZRYRXRZ", NULL, 0);
00212
00213 tree = add_tTree_node_bystr(root, BVH_NODE_JOINT, 3, "abdomen", "RYRXRZ", NULL, 0);
00214 chst = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "chest", "RYRXRZ", NULL, 0);
00215
00216 tree = add_tTree_node_bystr(chst, BVH_NODE_JOINT, 3, "neck", "RYRXRZ", NULL, 0);
00217 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "head", "RYRXRZ", NULL, 0);
00218 tree = add_tTree_node_bystr(tree, BVH_NODE_END, 0, "Site", NULL, NULL, 0);
00219
00220 tree = add_tTree_node_bystr(chst, BVH_NODE_JOINT, 3, "lCollar", "RYRXRZ", NULL, 0);
00221 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "lShldr", "RYRXRZ", NULL, 0);
00222 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "lForeArm", "RYRXRZ", NULL, 0);
00223 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "lHand", "RYRXRZ", NULL, 0);
00224 tree = add_tTree_node_bystr(tree, BVH_NODE_END, 0, "Site", NULL, NULL, 0);
00225
00226 tree = add_tTree_node_bystr(chst, BVH_NODE_JOINT, 3, "rCollar", "RYRXRZ", NULL, 0);
00227 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "rShldr", "RYRXRZ", NULL, 0);
00228 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "rForeArm", "RYRXRZ", NULL, 0);
00229 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "rHand", "RYRXRZ", NULL, 0);
00230 tree = add_tTree_node_bystr(tree, BVH_NODE_END, 0, "Site", NULL, NULL, 0);
00231
00232 tree = add_tTree_node_bystr(root, BVH_NODE_JOINT, 3, "lThigh", "RYRXRZ", NULL, 0);
00233 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "lShin", "RYRXRZ", NULL, 0);
00234 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "lFoot", "RYRXRZ", NULL, 0);
00235 tree = add_tTree_node_bystr(tree, BVH_NODE_END, 0, "Site", NULL, NULL, 0);
00236
00237 tree = add_tTree_node_bystr(root, BVH_NODE_JOINT, 3, "rThigh", "RYRXRZ", NULL, 0);
00238 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "rShin", "RYRXRZ", NULL, 0);
00239 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "rFoot", "RYRXRZ", NULL, 0);
00240 tree = add_tTree_node_bystr(tree, BVH_NODE_END, 0, "Site", NULL, NULL, 0);
00241
00242 return root;
00243 }
00244
00245
00246
00247 tTree* jbxwl::makeBVH_NiHierarchy(void)
00248 {
00249 tTree* root = NULL;
00250 tTree* chst = NULL;
00251 tTree* head = NULL;
00252 tTree* tree = NULL;
00253
00254 root = add_tTree_node_bystr(NULL, BVH_NODE_ROOT, 6, "PELVIS", "PXPYPZRYRXRZ", NULL, 0);
00255
00256 tree = add_tTree_node_bystr(root, BVH_NODE_JOINT, 3, "WAIST", "RYRXRZ", NULL, 0);
00257 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "TORSO", "RYRXRZ", NULL, 0);
00258 chst = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "CHEST", "RYRXRZ", NULL, 0);
00259
00260 tree = add_tTree_node_bystr(chst, BVH_NODE_JOINT, 3, "NECK", "RYRXRZ", NULL, 0);
00261 head = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "HEAD", "RYRXRZ", NULL, 0);
00262
00263 tree = add_tTree_node_bystr(head, BVH_NODE_JOINT, 3, "SKULL", "RYRXRZ", NULL, 0);
00264 tree = add_tTree_node_bystr(tree, BVH_NODE_END, 0, "Site", NULL, NULL, 0);
00265
00266 tree = add_tTree_node_bystr(head, BVH_NODE_JOINT, 3, "L_EYE", "RYRXRZ", NULL, 0);
00267 tree = add_tTree_node_bystr(tree, BVH_NODE_END, 0, "Site", NULL, NULL, 0);
00268 tree = add_tTree_node_bystr(head, BVH_NODE_JOINT, 3, "R_EYE", "RYRXRZ", NULL, 0);
00269 tree = add_tTree_node_bystr(tree, BVH_NODE_END, 0, "Site", NULL, NULL, 0);
00270
00271 tree = add_tTree_node_bystr(chst, BVH_NODE_JOINT, 3, "L_BUST", "RYRXRZ", NULL, 0);
00272 tree = add_tTree_node_bystr(tree, BVH_NODE_END, 0, "Site", NULL, NULL, 0);
00273 tree = add_tTree_node_bystr(chst, BVH_NODE_JOINT, 3, "R_BUST", "RYRXRZ", NULL, 0);
00274 tree = add_tTree_node_bystr(tree, BVH_NODE_END, 0, "Site", NULL, NULL, 0);
00275
00276 tree = add_tTree_node_bystr(chst, BVH_NODE_JOINT, 3, "L_COLLAR", "RYRXRZ", NULL, 0);
00277 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "L_SHLDR", "RYRXRZ", NULL, 0);
00278 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "L_ELBOW", "RYRXRZ", NULL, 0);
00279 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "L_WRIST", "RYRXRZ", NULL, 0);
00280 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "L_HAND", "RYRXRZ", NULL, 0);
00281 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "L_FNGRTIP","RYRXRZ", NULL, 0);
00282 tree = add_tTree_node_bystr(tree, BVH_NODE_END, 0, "Site", NULL, NULL, 0);
00283
00284 tree = add_tTree_node_bystr(chst, BVH_NODE_JOINT, 3, "R_COLLAR", "RYRXRZ", NULL, 0);
00285 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "R_SHLDR", "RYRXRZ", NULL, 0);
00286 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "R_ELBOW", "RYRXRZ", NULL, 0);
00287 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "R_WRIST", "RYRXRZ", NULL, 0);
00288 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "R_HAND", "RYRXRZ", NULL, 0);
00289 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "R_FNGRTIP","RYRXRZ", NULL, 0);
00290 tree = add_tTree_node_bystr(tree, BVH_NODE_END, 0, "Site", NULL, NULL, 0);
00291
00292 tree = add_tTree_node_bystr(root, BVH_NODE_JOINT, 3, "L_HIP", "RYRXRZ", NULL, 0);
00293 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "L_KNEE", "RYRXRZ", NULL, 0);
00294 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "L_ANKLE", "RYRXRZ", NULL, 0);
00295 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "L_FOOT", "RYRXRZ", NULL, 0);
00296 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "L_TOE", "RYRXRZ", NULL, 0);
00297 tree = add_tTree_node_bystr(tree, BVH_NODE_END, 0, "Site", NULL, NULL, 0);
00298
00299 tree = add_tTree_node_bystr(root, BVH_NODE_JOINT, 3, "R_HIP", "RYRXRZ", NULL, 0);
00300 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "R_KNEE", "RYRXRZ", NULL, 0);
00301 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "R_ANKLE", "RYRXRZ", NULL, 0);
00302 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "R_FOOT", "RYRXRZ", NULL, 0);
00303 tree = add_tTree_node_bystr(tree, BVH_NODE_JOINT, 3, "R_TOE", "RYRXRZ", NULL, 0);
00304 tree = add_tTree_node_bystr(tree, BVH_NODE_END, 0, "Site", NULL, NULL, 0);
00305
00306 return root;
00307 }
00308
00309
00310
00311 double _QAV_Offset[] =
00312 {
00313 0.000000, 0.000000, 0.000000,
00314 0.000000, 3.422050, 0.000000,
00315 0.000000, 8.486693, -0.684411,
00316 0.000000, 10.266162, -0.273764,
00317 0.000000, 3.148285, 0.000000,
00318 0.000000, 3.148289, 0.000000,
00319 3.422053, 6.707223, -0.821293,
00320 3.285171, 0.000000, 0.000000,
00321 10.129278, 0.000000, 0.000000,
00322 8.486692, 0.000000, 0.000000,
00323 4.106464, 0.000000, 0.000000,
00324 -3.558935, 6.707223, -0.821293,
00325 -3.148289, 0.000000, 0.000000,
00326 -10.266159, 0.000000, 0.000000,
00327 -8.349810, 0.000000, 0.000000,
00328 -4.106464, 0.000000, 0.000000,
00329 5.338403, -1.642589, 1.368821,
00330 -2.053232, -20.121670, 0.000000,
00331 0.000000, -19.300380, -1.231939,
00332 0.000000, -2.463878, 4.653993,
00333 -5.338403, -1.642589, 1.368821,
00334 2.053232, -20.121670, 0.000000,
00335 0.000000, -19.300380, -1.231939,
00336 0.000000, -2.463878, 4.653993
00337 };
00338
00339
00340
00341 vector jbxwl::getQAvBVHOffset(int joint)
00342 {
00343 vector vect;
00344 memset(&vect, 0, sizeof(vect));
00345
00346 if (joint<0) return vect;
00347
00348 vect.x = _QAV_Offset[joint*3];
00349 vect.y = _QAV_Offset[joint*3+1];
00350 vect.z = _QAV_Offset[joint*3+2];
00351
00352 return vect;
00353 }
00354
00355
00356