Material Link



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 16/07/2003 at 04:46, xxxxxxxx wrote:

    User Information:
    Cinema 4D Version:   8.100 
    Platform:   Windows  ;   
    Language(s) :     C++  ;

    ---------
    Hello,
    I am trying to read the LINK from TextureTag, but I always get a
    NULL - Pointer . The other datas from TextureTag could I read.
    Here is some part of my code:
     
    void explore_tag(BaseObject *base)
    {
     BaseContainer bc;
     BaseMaterial *bmat = NULL;
     BaseList2D  *bl = NULL;
     BaseTag   *tag = base->GetFirstTag();
     BaseDocument *doc = GetActiveDocument();

    for (; tag!=NULL; tag = tag->GetNext())
     {
      GePrint("    TAGS: "+tag->GetName());
      bc = tag->GetData();
      
      //  bl = bc.GetLink(TEXTURETAG_MATERIAL,doc);
      //bmat = bc.GetMaterialLink(TEXTURETAG_MATERIAL,doc); 
     
      bmat = bc.GetMaterialLink(TEXTURETAG_MATERIAL,doc);

    if (bmat) GePrint("BaseMaterial vorhanden");
      Real x = bc.GetReal(TEXTURETAG_LENGTHX);
      Real y = bc.GetReal(TEXTURETAG_LENGTHY);
      GePrint("X: "+RTS(x)+"  Y: "+RTS(y));
      LONG mapping = bc.GetLong(TEXTURETAG_PROJECTION);
      String res = bc.GetString(TEXTURETAG_RESTRICTION);
      GePrint("Restriction:  "+res);
      switch (mapping)
      {
      case (0) : GePrint("Kugel-Mapping");break;
      case (1) : GePrint("Zylinder-Mapping");break;
      case (2) : GePrint("Fläche-Mapping");break;
      case (3) : GePrint("Quader-Mapping");break;
      case (4) : GePrint("Frontal-Mapping");break;
      case (5) : GePrint("Spat-Mapping");break;
      case (6) : GePrint("UVW-Mapping");break;
      case (7) : GePrint("Shrink-Mapping");break;
      }
     }
    }
     
    Where is the problem or error ??



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 02/03/2007 at 04:21, xxxxxxxx wrote:

    *bump*

    same problem here. didnt want to start a new topic.

    BaseTag *baset = obj->GetTag(Ttexture,0);
    BaseContainer basec = baset->GetData();

    BaseMaterial *bm = basec.GetMaterialLink(TEXTURETAG_MATERIAL, doc);

    always returns a null-pointer. could use some help



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 02/03/2007 at 11:49, xxxxxxxx wrote:

    Try this instead:

    GeData data;  
    ttag->GetParameter(DescID(TEXTURETAG_MATERIAL), data, NULL);  
    Material* mat = static_cast<Material*>(data.GetLink(doc, Mbase));  
    if (!mat) return FALSE;
    


  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 03/03/2007 at 04:03, xxxxxxxx wrote:

    thank you. works very well.


Log in to reply