faces->push_back(t);
}
}
- printf("spawn tri AABB: min y: %f max y: %f\n", min_y, max_y);
+/* printf("spawn tri AABB: min y: %f max y: %f\n", min_y, max_y);*/
}
bool Hair::init(const Mesh *m, int max_num_spawns, float thresh)
glPopAttrib();
}
+
+void Hair::set_transform(Mat4 &xform)
+{
+ this->xform = xform;
+}
private:
float hair_length;
std::vector<HairStrand> hair;
+ Mat4 xform;
public:
Hair();
bool init(const Mesh *m, int num_spawns, float thresh = 0.4);
void draw() const;
+
+ void set_transform(Mat4 &xform);
};
#endif //PARTICLES_H_
static Mesh *mesh_head;
static Hair hair;
-int win_width, win_height;
-float cam_theta, cam_phi = 25, cam_dist = 8;
+static int win_width, win_height;
+static float cam_theta, cam_phi = 25, cam_dist = 8;
int main(int argc, char **argv)
{
for(size_t i=0; i<meshes.size(); i++) {
meshes[i]->calc_bbox();
-
+/*
Vec3 v0 = meshes[i]->bbox.v0;
Vec3 v1 = meshes[i]->bbox.v1;
printf("mesh: %s\n", meshes[i]->name.c_str());
printf("AABB mesh %d: v0: (%f, %f, %f) v1: (%f, %f, %f)\n",
(int)i, v0.x, v0.y, v0.z, v1.x, v1.y, v1.z);
-
+*/
meshes[i]->update_vbo(MESH_ALL);
+/*
printf("num vertices: %d num triangles: %d\n",
(int)meshes[i]->vertices.size(),
(int)meshes[i]->indices.size() / 3);
-
+*/
if(meshes[i]->name == "head") {
mesh_head = meshes[i];
}