Пример #1
0
void Destroy_Object (OBJECT *Object)
{
  OBJECT *Sib;

  while (Object != NULL)
  {
    Destroy_Textures(Object->Texture);
    Destroy_Textures(Object->Interior_Texture);
    Destroy_Object(Object->Bound);

    Destroy_Interior((INTERIOR *)Object->Interior);

	/* NK 1998 */
    Destroy_Transform(Object->UV_Trans);

    if (Object->Bound != Object->Clip)
    {
      Destroy_Object(Object->Clip);
    }

    Sib = Object->Sibling;

    Destroy(Object);

    Object = Sib;
  }
}
Пример #2
0
void Destroy_Material(MATERIAL *Material)
{
    if (Material != NULL)
    {
        Destroy_Textures(Material->Texture);
        Destroy_Textures(Material->Interior_Texture);

        delete Material;
    }
}
Пример #3
0
void Destroy_Material(MATERIAL *Material)
{
	if (Material != NULL)
	{
		Destroy_Textures(Material->Texture);
		Destroy_Textures(Material->Interior_Texture);
		Destroy_Interior(Material->interior);

		POV_FREE(Material);
	}
}
Пример #4
0
void Destroy_Single_Object (OBJECT **ObjectPtr)
{
  OBJECT *Object;

  Object = *ObjectPtr;

  Destroy_Textures(Object->Texture);

  Destroy_Object(Object->Bound);

  Destroy_Interior((INTERIOR *)Object->Interior);

	/* NK 1998 */
  Destroy_Transform(Object->UV_Trans);

  Destroy_Object (Object->Bound);
  Destroy_Interior((INTERIOR *)Object->Interior);

  if (Object->Bound != Object->Clip)
  {
    Destroy_Object(Object->Clip);
  }

  *ObjectPtr = Object->Sibling;

  Destroy(Object);
}
Пример #5
0
void Destroy_Blend_Map (BLEND_MAP *BMap)
{
  int i;
  
  if (BMap != NULL)
  {
    if (--(BMap->Users) == 0)
    {
      for (i = 0; i < BMap->Number_Of_Entries; i++)
      {
        switch (BMap->Type)
        {
           case PIGMENT_TYPE:
           case DENSITY_TYPE:
             Destroy_Pigment(BMap->Blend_Map_Entries[i].Vals.Pigment);
             break;

           case NORMAL_TYPE:
             Destroy_Tnormal(BMap->Blend_Map_Entries[i].Vals.Tnormal);
             break;

           case TEXTURE_TYPE:
             Destroy_Textures(BMap->Blend_Map_Entries[i].Vals.Texture);
        }
      }

      POV_FREE (BMap->Blend_Map_Entries);

      POV_FREE (BMap);
    }
  }
}
Пример #6
0
void Destroy_Object(ObjectPtr Object)
{
    if(Object != NULL)
    {
        bool DestroyClip = true;
        if (!Object->Bound.empty() && !Object->Clip.empty())
            if (*Object->Bound.begin() == *Object->Clip.begin())
                DestroyClip = false;
        Destroy_Textures(Object->Texture);
        Destroy_Textures(Object->Interior_Texture);
        Destroy_Object(Object->Bound);

        if (DestroyClip)
            Destroy_Object(Object->Clip);

        if (dynamic_cast<CompoundObject *> (Object) != NULL)
            Destroy_Object ((dynamic_cast<CompoundObject *> (Object))->children);

        delete Object;
    }
}
Пример #7
0
void Destroy_Single_Object (ObjectPtr *objectPtr)
{
    ObjectPtr object = *objectPtr;

    Destroy_Textures(object->Texture);

    Destroy_Object(object->Bound);

    Destroy_Object(object->Bound);

    if(object->Bound != object->Clip)
        Destroy_Object(object->Clip);

    delete object;
}
Пример #8
0
void Destroy_Single_Object (ObjectPtr *objectPtr)
{
    ObjectPtr object = *objectPtr;

    Destroy_Textures(object->Texture);

    Destroy_Object(object->Bound);

    /* NK 1998 */
    Destroy_Transform(object->UV_Trans);

    Destroy_Object(object->Bound);

    if(object->Bound != object->Clip)
        Destroy_Object(object->Clip);

    delete object;
}