Main Page   Modules   Class Hierarchy   Compound List   File List   Compound Members   File Members   Related Pages  

CGeometricObject Class Reference

#include <hyp.data.object.h>

Inheritance diagram for CGeometricObject::

IGeometricObject List of all members.

Common Functions

See the Hyperion Pattern.

 CGeometricObject (hyp_ker::IUnknown *, const hyp_ker::hypCLSID *)
virtual ~CGeometricObject ()
virtual hyp_DECLARE_IUNKNOWN
hyp_ker::com_result 
NondelegatingQueryInterface (const hyp_ker::hypIID &, void **)
hyp_ker::com_result Init (void)
void FinalRelease (void)
hyp_ker::com_result CreateInstanceForGeometry (hyp_ker::IUnknown *,hyp_ker::CUnknown **)
hyp_ker::com_result CreateInstanceForFiniteElement (hyp_ker::IUnknown *,hyp_ker::CUnknown **)

IGeometricObject Interface

virtual IGeometricSideCreateSide (const t_label &, const t_label_enum &)
virtual IGeometricSideCreateSide (const t_label &)
virtual IGeometricVertexCreateVertex (const t_label &, const t_real &, const t_real &, const t_real &)
virtual IGeometricVertexCreateVertex (const t_label &)
virtual void AddSide (IGeometricSide *, const t_label &)
virtual void DeleteSide (const t_label &)
virtual IContainerKeyGetContainerOfSides ()
virtual t_size GetNumberOfSides ()
virtual IGeometricSideGetSide (const t_label &)

Detailed Description

This is the default implementation of the interface IGeometricObject
CLSID
Here are the Class Indetifiers (CLSID) supported by the class:
Supported Interfaces
Here is the interfaces which are supported by the component.

    hyp_ker::com_result CGeometricObject::NondelegatingQueryInterface(const hyp_ker::hypIID& iid,void** ppv)
    {
            if(iid==IID_hypIGeometricObject) {
                    return FinishQI(static_cast<IGeometricObject*>(this),ppv);
            } else if(iid==IID_hypIGeometricBase ||
                    iid==IID_hypIContainer ||
                    iid==IID_hypIContainerKey ||
                    iid==IID_hypIContainerIterator) {
                    return m_spUnknownVertices->QueryInterface(iid,ppv);
            } /*else if(iid==IID_hypID3DRMMeshObject) {
                    return FinishQI(static_cast<ID3DRMMeshObject*>(this),ppv);
            }*/ else {
                    return CUnknown::NondelegatingQueryInterface(iid,ppv);
            }
    }
    //DOXYTAG
Implementation Details


Member Function Documentation

void CGeometricObject::AddSide IGeometricSide *   pObject,
const t_label &   Label
[virtual]
 

Adds a side to the component.

Parameters:
pObject   Side added
Label   Label of the side inserted

Reimplemented from IGeometricObject.

hyp_ker::com_result CGeometricObject::CreateInstanceForFiniteElement hyp_ker::IUnknown *   pUnknownOuter,
hyp_ker::CUnknown **   ppNewComponent
[static]
 

The new component will create CFEONode component when the method CreateVertex will be called.

hyp_ker::com_result CGeometricObject::CreateInstanceForGeometry hyp_ker::IUnknown *   pUnknownOuter,
hyp_ker::CUnknown **   ppNewComponent
[static]
 

The new component will create CGeometricVertex component when the method CreateVertex will be called.

IGeometricSide * CGeometricObject::CreateSide const t_label &   Label [virtual]
 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

This side doesn't have vertices.

Reimplemented from IGeometricObject.

IGeometricSide * CGeometricObject::CreateSide const t_label &   Label,
const t_label_enum &   LabelEnum
[virtual]
 

Creates a new side. The created sides is attached to the IGeometricObject object. Moreover the side attaches a cluster of vertices. The vertices must be inserted in the IGeometricObject object.

Parameters:
Label   Side label of the created side
LabelEnum   Enumeration of Vertex Labels which must be attached to the created side.
Todo:
The order of the enumeration is important

Reimplemented from IGeometricObject.

IGeometricVertex * CGeometricObject::CreateVertex const t_label &   Label [virtual]
 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

The coordinates of the vertex are not explicitly initialized.

Invariant:
The implmentation of the vertex object must initialize the coordinate at the creation. For instance {0,0,0}

Reimplemented from IGeometricObject.

IGeometricVertex * CGeometricObject::CreateVertex const t_label &   Label,
const t_real &   X,
const t_real &   Y,
const t_real &   Z
[virtual]
 

Creates a new vertex. The created vertex is attached to the IGeometricObject object.

Parameters:
Label   Vertex label of the created vertex
X   Coordianate of the vertex along the X-axe
Y   Coordinate of the vertex along the Y-axe
Z   Coodinate of the vertex along the Z-axe

Reimplemented from IGeometricObject.

void CGeometricObject::DeleteSide const t_label &   Label [virtual]
 

Delates a side associated to a label.

Parameters:
Label   Label of the side

Reimplemented from IGeometricObject.

IContainerKey * CGeometricObject::GetContainerOfSides   [virtual]
 

Gets the container of sides.

Reimplemented from IGeometricObject.

t_size CGeometricObject::GetNumberOfSides   [virtual]
 

Gets the numer of sides attached to the component.

Reimplemented from IGeometricObject.

IGeometricSide * CGeometricObject::GetSide const t_label &   Label [virtual]
 

Gets the side associated to the label.

Parameters:
Label   Label of the side

Reimplemented from IGeometricObject.


The documentation for this class was generated from the following files:
Top of Page
written by Pierre Rebours © 2000-2001. Terms of Use.