Polygon Crucher SDK - Documentation
Documentation
Loading...
Searching...
No Matches
CChannel Class Reference

A CChannel is the base class for some additional information associated to an object. More...

Detailed Description

A CChannel is the base class for some additional information associated to an object.

CChannel is used to store UV textures, vertex colors or anything else through different channel classes (CUVWChannel, CVCChannel, CPointNormalChannel, CSpecNormalChannel...).

CChannel usually contains faces and points, but not necessary such CFaceNormalChannel with only contains a list of vector (one vector per geometry face).
When CChannel has faces, it is assumes that CChannel::GetFaceList::GetSize = C3DFaceList::GetSize.
Some channel faces might be unused, and it that case it is flag with FACE_IS_UNUSED, meaning that the face has no relative data.
A CChannel with faces can have any number of points. This number is not necessary the same than object 3D points number, as you can have one or more information per 3D points.
CChannel integrates a Clean method which make easier synchronisation between the 3D points and the channel points. Each #i face in the channel is removed if the corresponding face #i face in the object C3DFaceList has the FACE_IS_INVALID flag.

#include <Channel.h>

Inheritance diagram for CChannel:
CInstanciatedObject CFaceNormalChannel CPointNormalChannel CSpecNormalChannel CUVWChannel CVCChannel CWeightChannel

Public Member Functions

 CChannel (ChannelID id=CHANNELID_UNDEFINED)
 You may assign a specific channel id at creation. This is useful to make a known reference between material and front / back UV channel for example. Note : If id = CHANNELID_UNDEFINED, the id is automatically assigned when adding the channel to object channels. If id != CHANNELID_UNDEFINED, the id might be modified if it already exists in object channels.
 
virtual ~CChannel ()
 Use Delete instead, unless the CChannel is created on the stack (take care that it is referenced once only in this case)
 
void FreeExtra ()
 Release any extra memory attached to the channel.
 
Flags informations
void SetFlag (CHANNEL_PROPERTIES flag, bool set)
 
void SetFlags (unsigned int newflags, bool set)
 
bool IsFlagSet (unsigned int flag) const
 
bool IsOneFlagSet (unsigned int flag) const
 
CCustomDataGetCustomData ()
 
ChannelID GetChannelID () const
 The channel ID allows to rely a specific material to a specific channel. This is not a GUID (different object might different channel with the same ID, allowing a material to retrieve the UV channel to use for example)
 
CXString GetTypeString () const
 
Channel informations
CFaceListGetFaceList ()
 
CPointListGetPointList ()
 
Channel information
void SetFaceList (Channel3DType channeltype, CFaceList *newfaces, bool deletePrevious=true)
 Attach a face list to the channel. newfaces is owned by the channel, and should not be deleted by the caller.
 
void SetPointList (Channel3DType channeltype, CPointList *newpoints, bool deletePrevious=true)
 Attach a point list to the channel. newpoints is owned by the channel, and should not be deleted by the caller.
 
Channel3DType GetType () const
 
graph functions
void InitGraph (const CGeomInfo *)
 
void DeleteGraph ()
 
ChannelConnectionInfoGetChannelPointsConnectedToPoint (int point, int &size)
 Return UVs connected to the point. size is the number of ChannelConnectionInfo * array entries for point index.
 
ChannelConnectionInfoGetChannelPointsConnectedToPoint (int point, int &size, int &facesize)
 facesize is the number of faces connected to the point, which might be different than size if some face has invalid or unused UV
 
CPtGetChannelPointIndex (int facenbr, int pointindex)
 
Operation on the channel
virtual bool SwapCoordinates (unsigned int swapMode)
 
virtual bool MatrixTransform (const C4x4Matrix &matrix, POINT_PROPERTIES property=POINT_NONE, bool set=TRUE, int index=0, int count=-1)
 
virtual bool CleanRemoveDuplicateIndex ()
 
virtual bool Clean (const CGeomInfo *info, CXUIntArray *newfaceindex=NULL, CXUIntArray *newpointindex=NULL)
 
virtual bool Weld (const CGeomInfo *info, double tolerance)
 
virtual function
virtual bool Compare (const CChannel *channel) const
 Return true if the channel have same type and same content.
 
virtual bool Compare (const CPt *pt1, const CPt *pt2, double tolerance=0.0f) const
 
virtual void Serialize (CXArchive &ar)
 
virtual bool CanBeRecomputed ()
 
virtual void Inherit (const CChannel &srcChannels)
 
virtual CChannelCopy (unsigned int copyFlags) const
 
- Public Member Functions inherited from CInstanciatedObject
virtual bool Delete ()
 
int GetRefCount () const
 
int AddRef () const
 

Static Public Member Functions

static CChannelCreate (Channel3DType type, ChannelID id=CHANNELID_UNDEFINED)
 Allocates and creates a new channel. Use Delete if the channel is not attached to a CDependentChannel list. //!< If id = CHANNELID_UNDEFINED, the id is automatically assigned when adding the channel to object channels. If id != CHANNELID_UNDEFINED, the id might be modified if it already exists in object channels.
 

Member Function Documentation

◆ Compare()

virtual bool CChannel::Compare ( const CChannel channel) const
virtual

Return true if the channel have same type and same content.

Reimplemented in CUVWChannel.


The documentation for this class was generated from the following file: