historical/toontown-classic.git/panda/include/odeTriMeshGeom.I
2024-01-16 11:20:27 -06:00

95 lines
2.6 KiB
Text

/**
* PANDA 3D SOFTWARE
* Copyright (c) Carnegie Mellon University. All rights reserved.
*
* All use of this software is subject to the terms of the revised BSD
* license. You should have received a copy of this license along
* with this source code in a file named "LICENSE."
*
* @file odeTriMeshGeom.I
* @author joswilso
* @date 2006-12-27
*/
INLINE void OdeTriMeshGeom::
set_data(OdeTriMeshData &data) {
odetrimeshdata_cat.warning()
<< "OdeTriMeshGeom::set_data() is deprecated, use OdeTriMeshGeom::set_tri_mesh_data() instead!\n";
set_tri_mesh_data(data);
}
INLINE PT(OdeTriMeshData) OdeTriMeshGeom::
get_data() const {
odetrimeshdata_cat.warning()
<< "OdeTriMeshGeom::get_data() is deprecated, use OdeTriMeshGeom::get_tri_mesh_data() instead!\n";
return get_tri_mesh_data();
}
INLINE void OdeTriMeshGeom::
set_tri_mesh_data(OdeTriMeshData &data) {
nassertv(_id != 0);
dGeomTriMeshSetData(_id, data.get_id());
OdeTriMeshData::link_data(_id, &data);
}
INLINE PT(OdeTriMeshData) OdeTriMeshGeom::
get_tri_mesh_data() const {
nassertr(_id != 0, nullptr);
return OdeTriMeshData::get_data(_id);
}
INLINE void OdeTriMeshGeom::
enable_TC(int geom_class, int enable){
nassertv(_id != 0);
dGeomTriMeshEnableTC(_id, geom_class, enable);
}
INLINE int OdeTriMeshGeom::
is_TC_enabled(int geom_class) const {
nassertr(_id != 0, 0);
return dGeomTriMeshIsTCEnabled(_id, geom_class);
}
INLINE void OdeTriMeshGeom::
clear_TC_cache(const OdeGeom &geom){
nassertv(_id != 0);
dGeomTriMeshClearTCCache(_id);
}
INLINE void OdeTriMeshGeom::
get_triangle(int face_index, LPoint3f &v0, LPoint3f &v1, LPoint3f &v2) const {
nassertv(_id != 0);
dVector3 dv0, dv1, dv2;
dGeomTriMeshGetTriangle(_id, face_index, &dv0, &dv1, &dv2);
v0.set(dv0[0], dv0[1], dv0[2]);
v1.set(dv1[0], dv1[1], dv1[2]);
v2.set(dv2[0], dv2[1], dv2[2]);
}
INLINE LPoint3f OdeTriMeshGeom::
get_point(int face_index, dReal u, dReal v) const {
nassertr(_id != 0, LPoint3f(0));
dVector3 out;
dGeomTriMeshGetPoint(_id, face_index, u, v, out);
return LPoint3f(out[0], out[1], out[2]);
}
INLINE int OdeTriMeshGeom::
get_num_triangles() const {
nassertr(_id != 0, 0);
return dGeomTriMeshGetTriangleCount(_id);
}
INLINE dTriMeshDataID OdeTriMeshGeom::
get_data_id() const {
odetrimeshdata_cat.warning()
<< "OdeTriMeshGeom::get_data_id() is deprecated, use OdeTriMeshGeom::get_tri_mesh_data_id() instead!\n";
return get_tri_mesh_data_id();
}
INLINE dTriMeshDataID OdeTriMeshGeom::
get_tri_mesh_data_id() const {
nassertr(_id != 0, 0);
return dGeomTriMeshGetTriMeshDataID(_id);
}