Access to TextureTag



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

    On 04/12/2008 at 08:08, xxxxxxxx wrote:

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

    ---------
    I am trying to export a textured object using the cpp SDK.
    The TextureTag object gives access to position,
    scale an rotation values, but these dont correspond to
    the values I entered in Cinema 4D.

    There are several tabs in the Attribute-Manager for
    TextureTags: 'Tag' and 'Coordinates'. The values I receive
    with TextureTag::GetPos() etc are those under
    'Coordinates' but have no apparent effect on Appearance.
    Those under 'Tag' have the desired effect but I cant
    find how to access them.

    Exporting the scene in 'Cinema4D xml Format' suggests
    everything is there because the following snippet looks
    like an image of the object:

    <v6_texture level='6'>
    <vector x='0' y='0' z='0' />
    <vector x='22' y='100' z='100' />
    <vector x='0' y='0' z='0' />
    <matrix>
        <vector x='0' y='0' z='0' />
        <vector x='1' y='0' z='0' />
        <vector x='0' y='1' z='0' />
        <vector x='0' y='0' z='1' />
    </matrix>
    <matrix>
        <vector x='0' y='0' z='0' />
        <vector x='1' y='0' z='0' />
        <vector x='0' y='1' z='0' />
        <vector x='0' y='0' z='1' />
    </matrix>
    <real v='0.55000001192092896' />
    <real v='0.14999999105930328' />
    <real v='0.58499997854232788' />
    <real v='0.63999998569488525' />
    <bool v='1' />
    ....
    </v6_texture>

    The TextureTag Interface gives access to the vectors and
    matrices but how do I get to the reals and the rest?

    Thank you for any suggestions.

    (A general comment of the structure of the xml-files
    and how it corresponds to SDK data structure
    would be welcome. It would probably help answer many
    questions posted here.)



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

    On 04/12/2008 at 09:02, xxxxxxxx wrote:

    The info you are looking for (tiling, scaling, etc values) are in the Container...

        
        
        
        
        BaseContainer tagvals = pTTag->GetData();  
        GePrint("TEXTURETAG_OFFSETX: " + RealToString(tagvals.GetReal(TEXTURETAG_OFFSETX)) );  
        GePrint("TEXTURETAG_OFFSETY: " + RealToString(tagvals.GetReal(TEXTURETAG_OFFSETY)) );  
        GePrint("TEXTURETAG_LENGTHX: " + RealToString(tagvals.GetReal(TEXTURETAG_LENGTHX)) );  
        GePrint("TEXTURETAG_LENGTHY: " + RealToString(tagvals.GetReal(TEXTURETAG_LENGTHY)) );
        
        
        
    

    etc. (look in "ttexture.h" for the full list of attributes)
    You might also want to look up "GenerateUVW()" in the SDK docs.  That will convert the various "Projection" types to UVW coordinates (including taking care of matrix operations, but it does NOT apply the offset and tiling adjustments, so you have to do those by hand).
    Actually, if you search the forum, I've got a thread somewhere that covers a lot of this.



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

    On 04/12/2008 at 09:23, xxxxxxxx wrote:

    Erm.. it was this thread.



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

    On 04/12/2008 at 09:50, xxxxxxxx wrote:

    Just a note, you may or may not get the actual values doing it that way. The (R9.603) doc for BaseList2D::GetParameter states that TextureTag does not store its data in the container, so you are supposed  to use GetParameter directly. For example, I just tested this, and while the offset values were found in the container, the size values were not.
    Cheers,
    JD



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

    On 04/12/2008 at 10:42, xxxxxxxx wrote:

    Thanks for the info... I'll go double-check and/or fix my code.


Log in to reply