You've asked a bit of a strange question, and your code isn't clear but I'm pretty sure I understand what you're trying to do, so here's a quick overview.

Think of it like this: Since you're "exploding" a quad into triangle shards, you need to create individual Shard objects. Each Shard has its own 3 vertices and 3 mapping texture coordinates, and then when you're exploding, each shard moves off in its own direction.

When texture mapping a quad, you're using the tex coord {0, 0} for the vertex in one corner, and {1, 1} for the opposite corner's vertex.

Consider your quad dimensions as W x H where W and H are both 1: Your texture coords are the same as your vertex coords. Easy.

When you "smash" the original quad and slice it up into a bunch of triangles, the vertices of the triangles you create are all are between 0 and 1. Since texture coordinates are also from 0 to 1, mapping a texture onto those triangles is easy: the 0-1 vertex values are also the 0-1 texture coordinates.

When you create each shard, set its vertices and texture coordinates, and then your main loop just moves each shard.