|
Developer Documentation |
|
Centre for Vision, Speech & Signal Processing |
|
PUBLIC |
BodyCTriSetC::BodyCTriSetC(void)
BodyCTriSetC::BodyCTriSetC(IntT,IntT,BooleanT)
BodyCTriSetC::BodyCTriSetC(const BodyTriSetC &,BooleanT)
BodyCTriSetC::BodyCTriSetC(FilenameC)
BodyCTriSetC::Textured(void) const
BodyCTriSetC::TextureFile(void) const
BodyCTriSetC::SetTextureFile(StringC)
BodyCTriSetC::TexturePerVertex(void) const
BodyCTriSetC::SetTexturePerVertex(BooleanT)
BodyCTriSetC::VertexTextureCoord(const IntT,const IntT) const
BodyCTriSetC::SetVertexTextureCoord(const IntT,const Point2dC &,const IntT)
BodyCTriSetC::GenerateTexCoords(void)
BodyCTriSetC::FitTexCoords(const BaseImageC &)
BodyCTriSetC::SaveVRML(FilenameC)
BodyCTriSetC::SaveVRML(FilenameC,Vector3dC,Vector3dC)
BodyCTriSetC::SaveCTri(FilenameC) const
BodyCTriSetC::BodyCTriSetC(const BodyCTriSetC &)
BodyCTriSetC::LoadCTri(FilenameC)
BodyCTriSetC::AllocateTextureCoordinates(void)
BodyTriSetC::Copy(void) const
BodyTriSetC::PutVertex(const IndexT,const Vector3dC)
BodyTriSetC::PutElement(const IndexT,const TriC)
BodyTriSetC::NumVertex(void) const
BodyTriSetC::NumElement(void) const
BodyTriSetC::Vertex(const IndexT) const
BodyTriSetC::Vertex(const IndexT)
BodyTriSetC::Element(const IndexT) const
BodyTriSetC::Element(const IndexT)
BodyTriSetC::PElement(const IndexT)
BodyTriSetC::Save(FilenameC)
BodyTriSetC::SaveVRML(FilenameC)
BodyTriSetC::FitPlane(void)
BodyTriSetC::Length(const IntT,const IntT)
BodyTriSetC::AverageEdgeLength(void)
BodyTriSetC::MinimumEdgeLength(void)
BodyTriSetC::AverageNormal(void)
BodyTriSetC::VertexNormal(const IndexT)
BodyTriSetC::SurfaceNormal(RealT,RealT,IndexT)
BodyTriSetC::Limits(Vector3dC &,Vector3dC &)
BodyTriSetC::IsSetupBound(void) const
BodyTriSetC::SetupBound(void)
BodyTriSetC::ExportPolops(void) const
BodyTriSetC::VertexP(const IndexT)
BodyTriSetC::SetupVertexNormal(void)
BodyTriSetC::LoadTri(FilenameC)
BodyTriSetC::SaveTri(FilenameC)
BodyTriSetC::operator<<(ostream &,const BodyTriSetC &)
BodyRefCounterVC::Copy(void) const
BodyRefCounterVC::operator==(const BodyRefCounterVC &) const
BodyRefCounterVC::operator!=(const BodyRefCounterVC &) const
BodyRefCounterVC::Save(ostream &) const
BodyRefCounterC::AddReference(void)
BodyRefCounterC::RemoveReference(void)
BodyRefCounterC::SetConst(void) const
BodyRefCounterC::SetConst(void)
BodyRefCounterC::IsConst(void) const
BodyRefCounterC::IsNotConst(void) const
BodyRefCounterC::ToBeDeleted(void) const
BodyRefCounterC::ToBeDeletedRemoveIgnoreNoRemove(void)
BodyRefCounterC::ToBeDeletedRemove(void)
BodyRefCounterC::BodyMightBeDeleted(void) const
BodyRefCounterC::IsCountZero(void) const
BodyRefCounterC::BRCPtrCanDeleteObject(void) const
BodyRefCounterC::Count(void) const
BodyRefCounterC::operator=(const BodyRefCounterC &)
BodyRefCounterC::IsValidObject(void) const
BodyRefCounterC::UserBitTest(IntT) const
BodyRefCounterC::UserBitSet(IntT,BooleanT)
BodyRefCounterC::UserBitZero(IntT)
BodyRefCounterC::ReportBRCError(char *)
BodyRefCounterC::Hash(void) const
BodyRefCounterC::SetUndeletable(void)
BodyRefCounterC::ReportInvalidObject(char *) const
RefCounterBaseC::Label(void) const
|
Comments:
BodyCTriSetC class adds an image filename and texture coordinates to BodyTriSetC.
Parent Classes:
Variables:
- StringC m_strTextureFile;
-
- BooleanT m_bTexturePerVertex;
-
- SArray1dC m_aTexCoords;
-
Methods:
- BodyCTriSetC()
-
Default constructor
- BodyCTriSetC(IntT nvertex,IntT nelement,BooleanT bTexturePerVertex = true)
-
Constructor
Construct a colour triset with nvertex vertices and nelement triangles.
If bTexturePerVertex is true, each vertex has one texture coordinate. Otherwise,
each face has three texture coordinates
- explicit BodyCTriSetC(const BodyTriSetC & triset,BooleanT bTexturePerVertex = true)
-
Construct from TriSetC (no copy)
If bTexturePerVertex is true, each vertex has one texture coordinate. Otherwise,
each face has three texture coordinates
- BodyCTriSetC(FilenameC filename)
-
Assignment
Access Functions
- BooleanT Textured() const
-
Is the mesh textured already?
Returns true if the mesh has got texture coordinates.
- StringC TextureFile() const
-
Access to texture file
Returns the name of the texture file associated with this object.
- void SetTextureFile(StringC filename)
-
Set texture filename
- BooleanT TexturePerVertex() const
-
Access to m_bTexturePerVertex value
Returns true if the model has one texture coordinate per vertex,
and false if it has three per face.
- void SetTexturePerVertex(BooleanT bTexturePerVertex)
-
Set whether textures are done per vertex or per face.
WARNING: This function destroys all current texture coordinates and
allocates space for a new set.
- Point2dC VertexTextureCoord(const IntT vertex,const IntT face = 0) const
-
Get a texture coordinate
Returns texture coordinate for vertex on face. If texturing is done
per vertex, the value of the texture coord for the vertex is returned
and the face parameter is not used.
- void SetVertexTextureCoord(const IntT vertex,const Point2dC & coord,const IntT face = 0)
-
Set a texture coordinate
Sets texture coordinate for vertex on face. If texturing is done
per vertex, the value of the texture coord for the vertex is returned
and the face parameter is not used.
Coordinate should be in the range [0,1]
- BooleanT GenerateTexCoords(void)
-
Automatically generates texture coordinates.
This function will only execute if the CTriSetC is textured per triangle, not per
vertex, and if it does not already have texture coordinates. It returns true if it
succeeds, false if it fails.
- void FitTexCoords(const BaseImageC & img)
-
Alter texture coordinates to lie on pixel centres in the passed image
Load/Save Functions
- void SaveVRML(FilenameC filename)
-
Save as VRML 2.0
Save as a texture mapped mesh scaled to maximum size =1
- void SaveVRML(FilenameC filename,Vector3dC translation,Vector3dC scale)
-
Save as VRML 2.0
Save as a texture mapped mesh with translation & scale as specified
- void SaveCTri(FilenameC filename) const
-
Save in CTri format
- BodyCTriSetC(const BodyCTriSetC & oth)
-
Don't let this happen.
- BooleanT LoadCTri(FilenameC filename)
-
- void AllocateTextureCoordinates(void)
-
- BodyRefCounterVC & Copy() const
-
new physical copy
- void PutVertex(const IndexT iIndex,const Vector3dC v)
-
- void PutElement(const IndexT iIndex,const TriC t)
-
--------------------------------------------- Access
- IntT NumVertex() const
-
- IntT NumElement() const
-
- Vector3dC Vertex(const IndexT iIndex) const
-
- Vector3dC & Vertex(const IndexT iIndex)
-
- const TriC & Element(const IndexT iIndex) const
-
- TriC & Element(const IndexT iIndex)
-
access i^th element
- TriC * PElement(const IndexT iIndex)
-
CAUTION - not ref counted
--------------------------------------------- Operations
- void Save(FilenameC name)
-
save to file 'name' in .tri format
- void SaveVRML(FilenameC filename)
-
save vrml 2 format (geometry only)
- PlanePVV3dC FitPlane()
-
Best fit plane through data
- 1st two eigenvectors of vertex covariance matrix
- RealT Length(const IntT i1,const IntT i2)
-
- RealT AverageEdgeLength()
-
- RealT MinimumEdgeLength()
-
- Vector3dC AverageNormal()
-
average element normal
- Vector3dC VertexNormal(const IndexT iIndex)
-
return vertex normal
(setup an internal array of vertex normals)
- Vector3dC SurfaceNormal(RealT dAlpha,RealT dBeta,IndexT iElement)
-
Return an interpolated surface normal
dAlpha and dBeta are barycentric coordinates of a point on iElement.
The returned vector is the interpolated normal at this point.
- void Limits(Vector3dC & xmin,Vector3dC & xmax)
-
bounding volume in 3D
- BooleanT IsSetupBound() const
-
returns setup status of bound
- void SetupBound()
-
Setup boundary information for each TriC Element
(call in constructor)
- PolopsC ExportPolops() const
-
- Vector3dC * VertexP(const IndexT iIndex)
-
----------------------------------------------- Vertex Normal
- void SetupVertexNormal()
-
------------------------------------------------
- IntT LoadTri(FilenameC fname)
-
- void SaveTri(FilenameC fname)
-
------------------------------------------------
- ostream & operator<<(ostream & s,const BodyTriSetC & t)
-
- BodyRefCounterVC & Copy() const
-
Creat a copy of this object.
- BooleanT operator==(const BodyRefCounterVC & oth) const
-
Compair identitys.
- BooleanT operator!=(const BodyRefCounterVC & oth) const
-
Compair identitys.
- BooleanT Save(ostream & out) const
-
Save to ostream.
- void AddReference()
-
Another reference to the object has been created.
- void RemoveReference()
-
One reference to the object was deleted.
Locking scheme
--------------
The object is possible to lock (to make constant). The scheme
assumes that the object is created, it can be locked, after that
it can only be destroyed. The locked object cannot be unlocked.
This locking scheme is very useful
during debugging, using assert() function,
when it is necassary to check that object
is treated as constant and the constancy is not violated by
any casting or passing through the copy constructor of shared
objects.
- void SetConst(void) const
-
This locks the object.
Often objects you wish to lock are already const.
- void SetConst(void)
-
This locks the object.
- BooleanT IsConst(void) const
-
Returns TRUE if the object is locked, ie. it is assumed to be constant.
- BooleanT IsNotConst(void) const
-
Returns TRUE if the object is unlocked.
ie. there is no special
information if the object is constant or not.
Counter state information
-------------------------
- BooleanT ToBeDeleted() const
-
Returns TRUE if there is only one reference to the object and the whole object or its reference counting part can be deleted.
- BooleanT ToBeDeletedRemoveIgnoreNoRemove()
-
Decrement refrence by 1 return true if this leaves no refrences to the object.
- BooleanT ToBeDeletedRemove()
-
Decrement refrence by 1 return true if this leaves no refrences to the object. This also checks the NoRemove flag.
- BooleanT BodyMightBeDeleted() const
-
Returns TRUE if the reference counted part of the object can be deleted, ie. flag NOREMOVE is false .
- BooleanT IsCountZero() const
-
Are there any refrences left ?
- BooleanT BRCPtrCanDeleteObject() const
-
Used by BRRCPtrC to establish if an object has ZERO refrences and can be deleted.
- IntT Count() const
-
Returns the current state of the counter, ie. how many references to this object exist.
- const BodyRefCounterC & operator=(const BodyRefCounterC & b)
-
It has not meaning to assign object 'b' to this object because it would destroy a history of the object which is counted. So this is a dummy function.
- BooleanT IsValidObject() const
-
Test if object is valid.
When amma check is disabled this always returns true.
- BooleanT UserBitTest(IntT x) const
-
Test user flag.
- void UserBitSet(IntT x,BooleanT setit = TRUE)
-
Test user flag.
- void UserBitZero(IntT x)
-
Set bit to zero.
- void ReportBRCError(char * Msg)
-
Report error, used in BRCPtrC.
- UIntT Hash() const
-
Hash on address of object.
- void SetUndeletable()
-
Make object undeletable.
Usefull to prevent recursive deleting in graph structures.
Only hackers need this function.
- void ReportInvalidObject(char * Msg = 0) const
-
Tell user about validation failure.
- LabelT Label() const
-
Returns the label of this reference counter.
The member function
is useful mainly to recognize objects during debugging.
The value of the label is uniquely defined pointer.
|
Programmer:Adrian Hilton, Documentation by CxxDoc: Tue Mar 20 10:49:27 2001
|