35 _vertices =
new NxVec3[numVertices];
37 _desc.numVertices = numVertices;
38 _desc.points = _vertices;
48 nassertv(_desc.numVertices > idx);
60 if (_desc.triangles) {
64 _triangles =
new NxU32[3 * numTriangles];
66 _desc.numTriangles = numTriangles;
67 _desc.triangles = _triangles;
75 unsigned int i1,
unsigned int i2,
unsigned int i3) {
77 nassertv(_desc.numTriangles > idx);
81 _triangles[idx + 1] = i2;
82 _triangles[idx + 2] = i3;
88 const NxSimpleTriangleMesh &PhysxCcdSkeletonDesc::
115 CPT(
Geom) geom = gnode->get_geom(j);
126 for (
int k=0; k<geom->get_num_primitives(); k++) {
129 prim = prim->decompose();
131 for (
int l=0; l<prim->get_num_primitives(); l++) {
133 int s = prim->get_primitive_start(l);
134 int e = prim->get_primitive_end(l);
136 for (
int l=s; l<e; l++) {
137 dataIndices.push_back(prim->get_vertex(l));
147 NxU32 numVertices = dataVertices.size();
148 NxU32 numTriangles = dataIndices.size() / 3;
150 _vertices =
new NxVec3[numVertices];
151 _triangles =
new NxU32[3 * numTriangles];
155 for (vit=dataVertices.begin(); vit!=dataVertices.end(); vit++) {
158 _vertices[i].x = v.get_x();
159 _vertices[i].y = v.get_y();
160 _vertices[i].z = v.get_z();
166 for(iit=dataIndices.begin(); iit!=dataIndices.end(); iit++) {
173 _desc.numVertices = numVertices;
174 _desc.points = _vertices;
175 _desc.numTriangles = numTriangles;
176 _desc.triangles = _triangles;
void set_num_triangles(unsigned int n)
Sets the number of triangles to be stored in this triangle mesh.
NodePathCollection find_all_matches(const std::string &path) const
Returns the complete set of all NodePaths that begin with this NodePath and can be extended by path.
void set_from_node_path(const NodePath &np)
A convenience method to set the mesh data from a NodePath in a single call.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
static NxVec3 point3_to_nxVec3(const LPoint3f &p)
Converts from LPoint3f to NxVec3.
This is an abstract base class for a family of classes that represent the fundamental geometry primit...
const LVecBase3f & get_data3f()
Returns the data associated with the read row, expressed as a 3-component value, and advances the rea...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This is our own Panda specialization on the default STL vector.
get_path
Returns the nth NodePath in the collection.
This defines the actual numeric vertex data stored in a Geom, in the structure defined by a particula...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
A container for geometry primitives.
void set_triangle(unsigned int idx, unsigned int i1, unsigned int i2, unsigned int i3)
Sets a single triangle, by providing the three indices i1, i2, i3.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PandaNode * node() const
Returns the referenced node of the path.
get_num_geoms
Returns the number of geoms in the node.
void set_num_vertices(unsigned int n)
Sets the number of vertices to be stored within this triangle mesh.
This object provides a high-level interface for quickly reading a sequence of numeric values from a v...
bool is_at_end() const
Returns true if the reader is currently at the end of the list of vertices, false otherwise.
void set_vertex(unsigned int idx, const LPoint3f &vert)
Sets a single vertex.
get_num_paths
Returns the number of NodePaths in the collection.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
NodePath is the fundamental system for disambiguating instances, and also provides a higher-level int...
A node that holds Geom objects, renderable pieces of geometry.
This is a set of zero or more NodePaths.