Reading UV Layer Data

API functions

Using a handle to a UV layer, the following API functions are used to read data from the layer:

Example

ILBTargetHandle unwrapTarget;
ILBTargetEntityHandle unwrapEntity;

// Create job and target, add mesh to target and run job,
// see example above...

ILBUVLayerHandle uvLayer;
ILBGetUVLayerFromTarget(unwrapTarget, unwrapEntity, &uvLayer);

int32 uvLayerSize, uvLayerIndexSize;
ILBGetUVLayerSize(uvLayer, &uvLayerSize);
ILBGetUVLayerIndexSize(uvLayer, &uvLayerIndexSize);

ILBVec2* uvArray = new ILBVec2[uvLayerSize];
int32* uvIndexArray = new int32[uvLayerIndexSize];

ILBReadUVLayerValues(uvLayer, 0, uvLayerSize, uvArray);
ILBReadUVLayerIndexValues(uvLayer, 0, uvLayerIndexSize, &uvIndex);

for (int32 faceVertex=0; faceVertex<uvLayerIndexSize; ++faceVertex) {
	const ILBVec2& uv = uvArray[uvIndexArray[faceVertex]];
	// Assign uv to the corresponding face vertex,
	// for example...
	myMesh->assignUvToFaceVertex(faceVertex, uv);
}

delete [] uvArray;
delete [] uvIndexArray;

int32 width, height;
ILBGetUVLayerResolutionFromTarget(unwrapTarget, unwrapEntity, &width, &height));
cout << “Recommended resolution for baking mesh is “ << width << “ “ << height << endl;