About 
A UVWTag  stores UVW coordinates for a (polygon) object. For each polygon a set of four UVW coordinates is stored (UVWStruct ). The class UVWTag  is based on VariableTag  so the typical workflows on handling tags apply, see BaseTag and VariableTag Manual .
UVWTag  objects are an instance of Tuvw .
 
Access 
A UVWTag  is typically attached to a polygon object.
Note A polygon object can host multiple UVW tags.  
 
Allocation/Deallocation 
UVWTag  instances are created with the usual tools.
A UVW tag with projection-based UVs can be created with:
  
  
 
  UVWTag *        uvwTag = static_cast<UVWTag*>(foundTag);
 
 
  if  (uvwTag == nullptr )
  {
    
    {
      PolygonObject * 
const  polyObject = static_cast<PolygonObject*>(
object );
 
 
      if  (uvwTag == nullptr )
 
    }
  }
   
Access Data 
There are two ways to edit the data stored inside a UVWTag . The "slow" way is to access every set of UVW coordinate independently. The "fast" way works with a data handle that allows direct access to the internal memory.
 
Slow 
The UVW coordinates stored in a UVWTag  can be accessed with:
  
 
 
  for  (
Int32  i = 0; i < count; ++i)
 
  {
 
 
  }
   
Fast 
The fast access to the UVW coordinates stored in the UVWTag  is provided by a data handle and static functions:
  
 
 
 
  for  (
Int32  i = 0; i < count; ++i)
 
  {
 
    
    const  Vector  a = mg * points[polygon.
a ];
 
    const  Vector  b = mg * points[polygon.
b ];
 
    const  Vector  c = mg * points[polygon.
c ];
 
    const  Vector  d = mg * points[polygon.
d ];
 
 
    
    
 
    CalculateUVCoordinates(a, uvwData.
a );
 
    CalculateUVCoordinates(b, uvwData.
b );
 
    CalculateUVCoordinates(c, uvwData.
c );
 
    CalculateUVCoordinates(d, uvwData.
d );
 
 
  }
 
   
Further Reading 
 
 
 
Vector b
The UVW coordinate for the second point.
Definition:  operatingsystem.h:503
 
#define Opolygon
Polygon - PolygonObject.
Definition:  ge_prepass.h:967
 
Int32 GetDataCount(void) const
 
Vector c
The UVW coordinate for the third point.
Definition:  operatingsystem.h:503
 
void * UVWHandle
Handle for UVW data. See also: UVWTag.
Definition:  operatingsystem.h:449
 
Int32 b
Index of the second point in the polygon.
Definition:  c4d_baseobject.h:41
 
UVWStruct GetSlow(Int32 i)
Definition:  c4d_basetag.h:401
 
Represents a polygon that can be either a triangle or a quadrangle.
Definition:  c4d_baseobject.h:39
 
Definition:  c4d_basetag.h:40
 
Int32 d
Index of the fourth point in the polygon.
Definition:  c4d_baseobject.h:41
 
#define MAXON_SOURCE_LOCATION
Definition:  memoryallocationbase.h:66
 
#define MSG_UPDATE
Must be sent if the bounding box has to be recalculated. (Otherwise use MSG_CHANGE....
Definition:  c4d_baselist.h:335
 
static String IntToString(Int32 v)
Definition:  c4d_string.h:493
 
Definition:  c4d_basetag.h:368
 
static UVWTag * Alloc(Int32 count)
 
Definition:  operatingsystem.h:465
 
static void Set(UVWHandle dataptr, Int32 i, const UVWStruct &s)
Definition:  c4d_basetag.h:460
 
#define Tuvw
UVW data - UVWTag.
Definition:  ge_prepass.h:1238
 
maxon::Int32 Int32
Definition:  ge_sys_math.h:45
 
#define ApplicationOutput(formatString,...)
Definition:  debugdiagnostics.h:209
 
Bool Message(Int32 type, void *data=nullptr)
Definition:  c4d_baselist.h:1350
 
Definition:  c4d_baseobject.h:1537
 
Int32 c
Index of the third point in the polygon.
Definition:  c4d_baseobject.h:41
 
Vector d
The UVW coordinate for the fourth point.
Definition:  operatingsystem.h:503
 
Bool IsInstanceOf(Int32 id) const
Definition:  c4d_baselist.h:1329
 
Vector a
The UVW coordinate for the first point.
Definition:  operatingsystem.h:503
 
static String VectorToString(const Vector32 &v, Int32 nnk=-1)
Definition:  c4d_string.h:569
 
Int32 a
Index of the first point in the polygon.
Definition:  c4d_baseobject.h:41
 
UVWHandle GetDataAddressW(void)
 
Int32 GetPolygonCount(void)
Definition:  c4d_baseobject.h:1692
 
void InsertTag(BaseTag *tp, BaseTag *pred=nullptr)