Panda3D

odeTriMeshGeom.I
Go to the documentation of this file.
1 /**
2 * PANDA 3D SOFTWARE
3 * Copyright (c) Carnegie Mellon University. All rights reserved.
4 *
5 * All use of this software is subject to the terms of the revised BSD
6 * license. You should have received a copy of this license along
7 * with this source code in a file named "LICENSE."
8 *
9 * @file odeTriMeshGeom.I
10 * @author joswilso
11 * @date 2006-12-27
12 */
13
14 INLINE void OdeTriMeshGeom::
15 set_data(OdeTriMeshData &data) {
16 odetrimeshdata_cat.warning()
17 << "OdeTriMeshGeom::set_data() is deprecated, use OdeTriMeshGeom::set_tri_mesh_data() instead!\n";
18 set_tri_mesh_data(data);
19 }
20
21 INLINE PT(OdeTriMeshData) OdeTriMeshGeom::
22 get_data() const {
23 odetrimeshdata_cat.warning()
24 << "OdeTriMeshGeom::get_data() is deprecated, use OdeTriMeshGeom::get_tri_mesh_data() instead!\n";
25 return get_tri_mesh_data();
26 }
27
28 INLINE void OdeTriMeshGeom::
29 set_tri_mesh_data(OdeTriMeshData &data) {
30 nassertv(_id != 0);
31 dGeomTriMeshSetData(_id, data.get_id());
32 OdeTriMeshData::link_data(_id, &data);
33 }
34
35 INLINE PT(OdeTriMeshData) OdeTriMeshGeom::
36 get_tri_mesh_data() const {
37 nassertr(_id != 0, nullptr);
38 return OdeTriMeshData::get_data(_id);
39 }
40
41 INLINE void OdeTriMeshGeom::
42 enable_TC(int geom_class, int enable){
43 nassertv(_id != 0);
44 dGeomTriMeshEnableTC(_id, geom_class, enable);
45 }
46
47 INLINE int OdeTriMeshGeom::
48 is_TC_enabled(int geom_class) const {
49 nassertr(_id != 0, 0);
50 return dGeomTriMeshIsTCEnabled(_id, geom_class);
51 }
52
53 INLINE void OdeTriMeshGeom::
54 clear_TC_cache(const OdeGeom &geom){
55 nassertv(_id != 0);
56 dGeomTriMeshClearTCCache(_id);
57 }
58
59 INLINE void OdeTriMeshGeom::
60 get_triangle(int face_index, LPoint3f &v0, LPoint3f &v1, LPoint3f &v2) const {
61 nassertv(_id != 0);
62 dVector3 dv0, dv1, dv2;
63 dGeomTriMeshGetTriangle(_id, face_index, &dv0, &dv1, &dv2);
64
65 v0.set(dv0[0], dv0[1], dv0[2]);
66 v1.set(dv1[0], dv1[1], dv1[2]);
67 v2.set(dv2[0], dv2[1], dv2[2]);
68 }
69
70 INLINE LPoint3f OdeTriMeshGeom::
71 get_point(int face_index, dReal u, dReal v) const {
72 nassertr(_id != 0, LPoint3f(0));
73 dVector3 out;
74 dGeomTriMeshGetPoint(_id, face_index, u, v, out);
75 return LPoint3f(out[0], out[1], out[2]);
76 }
77
78 INLINE int OdeTriMeshGeom::
79 get_num_triangles() const {
80 nassertr(_id != 0, 0);
81 return dGeomTriMeshGetTriangleCount(_id);
82 }
83
84 INLINE dTriMeshDataID OdeTriMeshGeom::
85 get_data_id() const {
86 odetrimeshdata_cat.warning()
87 << "OdeTriMeshGeom::get_data_id() is deprecated, use OdeTriMeshGeom::get_tri_mesh_data_id() instead!\n";
88 return get_tri_mesh_data_id();
89 }
90
91 INLINE dTriMeshDataID OdeTriMeshGeom::
92 get_tri_mesh_data_id() const {
93 nassertr(_id != 0, 0);
94 return dGeomTriMeshGetTriMeshDataID(_id);
95 }
OdeGeom
Definition: odeGeom.h:45
OdeTriMeshData
Definition: odeTriMeshData.h:35