123 count+=
SubMeshes[i].Mesh->Get_Polygon_Count();
133 count+=
SubMeshes[i].Mesh->Get_Vertex_Count();
244 if (
SubMeshes[i].Mesh->Cast_Ray(objray)) {
312 if (
SubMeshes[i].Mesh->Cast_OBBox(localtest)) {
354 if (
SubMeshes[i].Mesh->Intersect_OBBox(local_test))
return true;
383 if (
SubMeshes[i].Mesh->Intersect_OBBox(local_test))
return true;
472 SubMeshes[0].Mesh->Get_Bounding_Sphere(&sphere);
476 SubMeshes[i].Mesh->Get_Bounding_Sphere(&tmp_s);
501 SubMeshes[0].Mesh->Get_Bounding_Box(&box);
505 SubMeshes[i].Mesh->Get_Bounding_Box(&tmp_b);
522 int sub_mesh_count=0;
523 while (first_poly<model->Get_Polygon_Count()) {
528 SubMeshes[sub_mesh_count-1].Mesh=sub_mesh;
621 WWDEBUG_SAY((
"ShdMeshClass::Load_W3D - Failed to allocate sub mesh\r\n"));
655 bool is_translucent =
false;
662 if ((shader) && (!shader->
Is_Opaque())) {
#define W3D_MESH_FLAG_COLLISION_TYPE_SHIFT
#define W3D_MESH_FLAG_HIDDEN
#define W3D_MESH_FLAG_CAST_SHADOW
@ W3D_CHUNK_SHDMESH_USER_TEXT
#define W3D_MESH_FLAG_COLLISION_TYPE_MASK
WWINLINE void Init(const Vector3 ¢er, const Vector3 &extent)
void Add_Box(const AABoxClass &b)
const FrustumClass & Get_Frustum(void) const
uint32 Cur_Chunk_Length()
uint32 Read(void *buf, uint32 nbytes)
CastResultStruct * Result
RenderObjClass * CollidedRenderObj
bool Add(T const &object)
Vector3 Rotate_Vector(const Vector3 &vect) const
void Get_Orthogonal_Inverse(Matrix3D &set_inverse) const
static WWINLINE void Transform_Vector(const Matrix3D &tm, const Vector3 &in, Vector3 *out)
virtual const char * Get_Name(void) const
MeshModelClass * Peek_Model(void)
void Set_Name(const char *newname)
TexProjectClass * Texture_Projector
RINFO_OVERRIDE_FLAGS & Current_Override_Flags(void)
@ RINFO_OVERRIDE_SHADOW_RENDERING
LightEnvironmentClass * light_environment
virtual int Is_Hidden(void) const
virtual int Is_Animation_Hidden(void) const
virtual int Is_Translucent(void) const
void Validate_Cached_Bounding_Volumes(void) const
virtual int Is_Not_Hidden_At_All(void)
virtual void Set_Translucent(int onoff)
AABoxClass CachedBoundingBox
void Unset_Is_Self_Shadowed()
virtual void Set_Collision_Type(int type)
void Set_Is_Self_Shadowed()
virtual void Set_Hidden(int onoff)
int Is_Self_Shadowed() const
virtual void Add_Dependencies_To_List(DynamicVectorClass< StringClass > &file_list, bool textures_only=false)
const Matrix3D & Get_Transform(void) const
virtual int Get_Collision_Type(void) const
SphereClass CachedBoundingSphere
virtual bool Is_Opaque(void) const
virtual TextureClass * Peek_Texture(int idx) const =0
virtual int Get_Texture_Count() const =0
virtual bool Intersect_AABox(AABoxIntersectionTestClass &boxtest)
int Get_Num_Vertices(void) const
void Init_From_Legacy_Mesh(MeshClass *mesh)
virtual RenderObjClass * Clone(void) const
virtual bool Cast_AABox(AABoxCollisionTestClass &boxtest)
ShdSubMeshClass * Peek_Sub_Mesh(int i) const
LightEnvironmentClass * LightEnvironment
virtual void Update_Cached_Bounding_Volumes(void) const
void Unset_Is_Applying_Shadow_Map()
void Set_Lighting_Environment(LightEnvironmentClass *light_env)
virtual bool Intersect_OBBox(OBBoxIntersectionTestClass &boxtest)
SimpleVecClass< ShdSubMeshStruct > SubMeshes
virtual int Get_Num_Polys(void) const
virtual void Add_Dependencies_To_List(DynamicVectorClass< StringClass > &file_list, bool textures_only=false)
virtual bool Cast_Ray(RayCollisionTestClass &raytest)
virtual void Render(RenderInfoClass &rinfo)
virtual void Get_Obj_Space_Bounding_Sphere(SphereClass &sphere) const
virtual void Set_Name(const char *name)
virtual bool Cast_OBBox(OBBoxCollisionTestClass &boxtest)
int Get_Sub_Mesh_Count(void) const
virtual ~ShdMeshClass(void)
WW3DErrorType Load_W3D(ChunkLoadClass &cload)
virtual void Special_Render(SpecialRenderInfoClass &rinfo)
TexProjectClass * Texture_Projector
virtual void Get_Obj_Space_Bounding_Box(AABoxClass &box) const
virtual const char * Get_Name(void) const
void Set_Is_Applying_Shadow_Map()
virtual ShdRendererNodeClass * Register_Mesh(ShdMeshClass *mesh, ShdSubMeshClass *sub_mesh)=0
static ShdRendererClass * Peek_Instance()
void Init_From_Legacy_Mesh_Model(MeshModelClass *model, int first_polygon)
WW3DErrorType Load_W3D(ChunkLoadClass &cload)
int Get_Visible_Polygon_Count() const
int _cdecl Format(const TCHAR *format,...)
const StringClass & Get_Full_Path(void) const
WWINLINE void Set(float x, float y, float z)
#define REF_PTR_RELEASE(x)
#define REF_PTR_SET(dst, src)