GL Studio C++ Runtime API
ComponentBase Class Reference

#include <component_base.h>

Inheritance diagram for ComponentBase:
Group DisplayFrame DisplayObject AttributeChangedNotifier WeakReferenceableMixin AttributeChangedNotifier WeakReferenceableMixin WeakReferenceable WeakReferenceable GlsRSOWrapper SplashDisplay

Public Member Functions

 ComponentBase (int generateInstance=0)
 
virtual ~ComponentBase ()
 
virtual void SetAvailableAttributes (unsigned int value)
 
bool AbsolutePlacement () const
 
virtual void AbsolutePlacement (bool val)
 
virtual void ClearDragAndFocus ()
 
virtual DisplayObjectCloneObject (bool generateNames=false)
 
virtual void CopyGeometry (DisplayObject *src)
 
virtual void CopyProperties (DisplayObject *src)
 
virtual InterfaceListTypeGetCppInterfaceDescription (InterfaceListType *addToThisList=NULL)
 
virtual void GetCppInterfaceDescriptionFree (InterfaceListType *array)
 
virtual void CreateObjects ()
 
virtual void DeleteAllChildren ()
 
virtual void Draw ()
 
virtual DisplayObjectFindByNameSameFrame (const char *name)
 
virtual void GetExtents (float &x, float &y, float &z, float &x1, float &y1, float &z1)
 
virtual void GetTransformedExtents (Vector &min, Vector &max, const GlsMatrixType &matrix, bool resetMinMax=true)
 
virtual DisplayObjectHandleInput (DisplayEvent *ev)
 
virtual void Init ()
 
virtual void Initialize ()
 
LiveComponentAccessorLiveAccessor ()
 
virtual const VertexLocation (void) const
 
virtual void Location (const Vertex &v)
 
virtual void Location (float x, float y, float z)
 
virtual void Parent (DisplayFrame *par)
 
DisplayFrameParentDisplayFrame () const
 
void ParentDisplayFrame (DisplayFrame *val)
 
virtual DisplayObjectPick3D (const Vector &winLoc, const Vector &logicalCoords, float scale, const Vector &directionVector, Vector &collisionWinLoc, const OpenGLMatrices &drawnMatrices)
 
virtual void PreDraw (const OpenGLMatrices &current, Culler &culler)
 
virtual void GetResources (std::ostream &outstr, GlsResourceFilter *filter=NULL)
 
virtual DistiAttributeBaseResource (const char *name)
 
virtual void Rotate (const Vector &orig, float angle, const Vector &axis)
 
virtual void Scale (float px, float py, float pz, Vertex *parentAnchor, int handleBar=0)
 
virtual void SetRedraw (void)
 
virtual void Translate (float tr[])
 
virtual void Translate (float x, float y, float z)
 
virtual void UseParentsLighting (const bool &)
 
virtual bool UseParentsLighting ()
 
virtual int TextureIndex ()
 
virtual void TextureIndex (int index)
 
void SetValue (int spec, va_list &args)
 
virtual InputHandlerGetInputHandler ()
 
void NotifyAttributeChanged (const AttributeName &name)
 
- Public Member Functions inherited from Group
DisplayObjectFindByName (const char *name)
 
DisplayObjectFindByName (DisplayObject *obj)
 
DisplayObjectFindByQualifiedName (const char *name)
 
DisplayObjectFindNonRecursive (DisplayObject *obj)
 
DisplayObjectArrayObjects ()
 
const DisplayObjectArrayObjects () const
 
DisplayObjectItem (unsigned int index)
 
bool PerformGroupCullCheck (void) const
 
void PerformGroupCullCheck (bool mode)
 
bool CullTestChildren (void) const
 
void CullTestChildren (bool mode)
 
unsigned int Count (void) const
 
DisplayObjectPtr operator[] (unsigned int index)
 
const DisplayObjectoperator[] (unsigned int index) const
 
DisplayObjectFirstObject ()
 
DisplayObjectLastObject (void)
 
bool IsEmpty () const
 
int Position (DisplayObject *obj)
 
 Group (int generateInstance=0)
 
 Group (const Group &group, bool generateNames)
 
void InitialGroupCount (unsigned int cnt)
 
virtual ~Group ()
 
virtual bool Hit (float x, float y, float z, float scale, const Vector &directionVector, Vector *collisionPoint)
 
void SetPainter (GlsPainter *painter)
 
virtual void TranslateVertices (float x, float y, float z)
 
virtual void InsertObject (DisplayObject *obj, bool reparent=true, bool recalculateBoundingbox=true, int loc=-1)
 
virtual bool DeleteObject (DisplayObject *obj, bool recalculateBoundingbox=true)
 
virtual void ReorderObject (unsigned int oldIndex, unsigned int newIndex)
 
virtual void PushObject (DisplayObject *obj)
 
virtual void DeleteVertex (unsigned int index)
 
virtual void InsertVertex (unsigned int index)
 
virtual void SetGroupLocation (const Vertex &v)
 
virtual void CalculateTextureCoordinates (void)
 
virtual void LineWidth (float width)
 
virtual float LineWidth (void)
 
virtual void LineStipplePattern (int pattern)
 
virtual int LineStipplePattern (void)
 
virtual void LineStippleMultiplier (int mult)
 
virtual int LineStippleMultiplier (void)
 
virtual int PolygonMode (void)
 
virtual void PolygonMode (int mode)
 
virtual void PolygonEnd (const int mode)
 
virtual int PolygonEnd (void)
 
virtual void Shading (const int mode)
 
virtual int Shading (void)
 
virtual void DepthTest (unsigned char mode)
 
virtual int DepthTest (void)
 
virtual void AntiAlias (bool mode)
 
virtual bool AntiAlias (void)
 
virtual void AlphaMode (int mode)
 
virtual int AlphaMode (void)
 
virtual void CullBackFace (const bool mode)
 
virtual bool CullBackFace (void)
 
virtual bool LightingEnabled ()
 
virtual void LightingEnabled (bool lighting)
 
virtual void SetBlendColor (const GlsColor &color)
 
virtual GlsColor GetBlendColor (void)
 
virtual void SetColor (const GlsColor &color)
 
virtual GlsColor GetColor (void)
 
virtual void SetFillColor (const GlsColor &color)
 
virtual GlsColor GetFillColor (void)
 
virtual void TextureRepeat (const int rep)
 
virtual void TextureMappingTechnique (const int map)
 
virtual int TextureMappingTechnique (void)
 
virtual void TextureMinificationFilter (const int filter)
 
virtual int TextureMinificationFilter (void)
 
virtual void TextureMagnificationFilter (const int filter)
 
virtual int TextureMagnificationFilter (void)
 
virtual void Calculate (double time)
 
CompatabilityListItemFirst ()
 
CompatabilityListItemLast ()
 
- Public Member Functions inherited from DisplayObject
 DisplayObject (float x, float y, float z)
 
 DisplayObject (const DisplayObject &object, const bool generateNames)
 
virtual ~DisplayObject (void)
 
void Destroy ()
 
void ApplyTextureSettings (int textureIndex=-1)
 
DistiAttribDictAttributes ()
 
void GetBlendColor (unsigned char color[])
 
void GetBlendColor (unsigned char &r, unsigned char &g, unsigned char &b, unsigned char &a)
 
void SetBlendColor (unsigned char color[])
 
void SetBlendColor (unsigned char r, unsigned char g, unsigned char b, unsigned char a)
 
bool BlinkedOff (void)
 
virtual bool Blinking (void)
 
virtual void Blinking (const bool blink)
 
virtual float BlinkRate (void)
 
virtual void BlinkRate (const float rate)
 
const VectorBoundingVolumeCenter () const
 
void BoundingVolumeCenter (const Vector &center)
 
bool BoundingVolumeHit (const Vector &start, const Vector &direction)
 
float BoundingVolumeRadius () const
 
void BoundingVolumeRadius (float radius)
 
void CalculateCollisionPoint (const Vector &pickLoc, const Vector &directionVector, Vector *collisionPoint)
 
virtual void CalculateParentBoundingBox (void)
 
bool GetTexturePointTransformationMatrix (GlsMatrixType &world2tex)
 
CallbackMethodCallerBaseCallbackCaller () const
 
void CallbackCaller (CallbackMethodCallerBase *cb)
 
virtual void GetCenter (Vector &center)
 
void GetColor (unsigned char c4[])
 
void GetColor (unsigned char &r, unsigned char &g, unsigned char &b, unsigned char &a)
 
void SetColor (unsigned char c4[])
 
void SetColor (unsigned char r, unsigned char g, unsigned char b, unsigned char a)
 
virtual void CopyHierarchyProperties (DisplayObject *src, bool copyName)
 
bool Culled () const
 
bool CullTest (const GlsMatrixType *matrix, const Culler &culler)
 
GlsMatrixTypeDcsMatrix ()
 
void DcsMatrix (const GlsMatrixType &matrix)
 
const GlsMatrixTypeDrawMatrix ()
 
bool NeedCalcDrawMatrix ()
 
void DynamicRotate (float angle, int axis)
 
void DynamicRotate (const Vector &v)
 
void DynamicRotate (float angle[])
 
virtual void DynamicRotate (float x, float y, float z)
 
virtual void DynamicRotateRelative (float angle, int axis)
 
virtual float DynamicRotation (int axis)
 
virtual Vector DynamicScale ()
 
virtual void DynamicScale (float x, float y, float z)
 
void DynamicScale (const Vector &scale)
 
virtual void DynamicTranslate (float x, float y, float z, bool relative=false)
 
void DynamicTranslate (const Vertex &amount, bool relative)
 
void DynamicTranslate (const Vector &amount)
 
virtual void DynamicTranslate (float amount, int axis, bool relative=false)
 
virtual float DynamicTranslation (int axis)
 
virtual Vector DynamicTranslation ()
 
DisplayObjectEditor * Editor ()
 
const DisplayObjectEditor * Editor () const
 
void Editor (DisplayObjectEditor *editor)
 
void GetExtentsDCS (Vector &min, Vector &max)
 
void GetFillColor (unsigned char &r, unsigned char &g, unsigned char &b, unsigned char &a)
 
void GetFillColor (unsigned char c4[])
 
void SetFillColor (unsigned char r, unsigned char g, unsigned char b, unsigned char a)
 
void SetFillColor (unsigned char c4[])
 
virtual void GenerateInstanceName (void)
 
virtual DisplayObjecthandle (DisplayEvent *ev)
 
virtual bool HitUtil (float x, float y, float z, float scale, Vertex *vertices, unsigned int vertex_cnt, const Vector &directionVector, Vector *collisionPoint)
 
char * InstanceName (void)
 
void InstanceName (const char *name)
 
virtual void GetLocation (Vertex &v)
 
virtual void GetLocation (float &x, float &y, float &z)
 
float X (void) const
 
float Y (void) const
 
float Z (void) const
 
void X (const float x)
 
void Y (const float y)
 
void Z (const float z)
 
virtual int MaterialIndex ()
 
virtual void MaterialIndex (int index)
 
virtual DynamicArray< int > & MaterialIndices ()
 
virtual void MaterialIndices (DynamicArray< int > indices)
 
GlsMatrixTypeModelMatrix ()
 
bool NeedCalculate ()
 
VectorNormals ()
 
virtual void SetNormals (unsigned int nPoints, Vector *vertices)
 
void VaSetNormals (unsigned int nPoints,...)
 
unsigned int NumberOfVertices () const
 
virtual float ObjectDepth (void)
 
virtual float ObjectHeight (void)
 
virtual float ObjectWidth (void)
 
virtual void SetOrigin (const Vertex &vert)
 
DisplayFrameParent (void) const
 
virtual void ParentGroup (Group *group)
 
GroupParentGroup (void) const
 
unsigned char Pickable ()
 
virtual void Pickable (unsigned char pick)
 
GlsMatrixTypeProjMatrix ()
 
virtual void ReallocateVertices (unsigned int numVertices, bool initializeNew, bool copyOld)
 
virtual float RelativeAngle (const float x, const float y)
 
void RestoreAlpha (void)
 
void RestoreAntiAlias (void)
 
void RestoreLighting (void)
 
void RestoreLineStyle (void)
 
const VertexRotationPoint () const
 
virtual void RotationPoint (const Vertex &v)
 
virtual void RotationPoint (float x, float y, float z)
 
virtual void GetRotationPoint (Vertex &v)
 
virtual void Rotate (float angle, int axis=Z_AXIS)
 
virtual void Rotate (const Vector &origin, float angle, int axis=Z_AXIS)
 
void SaveMatrices ()
 
void Scale (int handleBar, float px, float py, Vertex *anchor=NULL)
 
void Set (int spec,...)
 
bool SetupAlpha (void)
 
bool SetupAntiAlias (void)
 
void SetupDepthTest (void)
 
void SetupLighting (void)
 
bool SetupLineStyle (void)
 
void SetupPolyDrawStyle (void)
 
void SetupShading (void)
 
bool SetupTexture (void)
 
virtual void SetTexCoords (unsigned int nPoints, Vector *new_tex_coord, bool isVectorArray=true)
 
void SetTexCoords (unsigned int nPoints, Vertex *new_tex_coord)
 
void VaSetTexCoords (unsigned int nPoints,...)
 
VectorTextureCoordinates (void)
 
VectorGetTextureCoordinates (void)
 
virtual VectorGetTexturePoints (void)
 
virtual bool TextureRepeat (void)
 
virtual void UpdateBoundingVolume (void)
 
void * UserData (void) const
 
void UserData (void *data)
 
virtual void SetVertexColor (unsigned int vertex, unsigned char CurrentFillColor[])
 
virtual VertexVertices ()
 
virtual void SetVertices (unsigned int nPoints, Vertex *vertices)
 
void VaSetVertices (unsigned int nPoints,...)
 
int * ViewMatrix ()
 
bool Visible (void) const
 
bool Visibility (void) const
 
virtual void Visibility (const bool vis)
 
virtual Vector WorldRotationPoint (void)
 
virtual void WorldRotationPoint (const Vector &vert)
 
virtual Vertex WorldVertex (unsigned int i)
 
virtual void WorldVertex (unsigned int i, const Vertex &vert)
 
bool LogicalToWindow (const Vector &logical, Vector &winLoc, const OpenGLMatrices &alternateMatrices=OpenGLMatrices())
 
bool WindowToLogical (const Vector &winLoc, Vector &logical, Vector *directionVector=NULL, const OpenGLMatrices &alternateMatrices=OpenGLMatrices())
 
void LogicalToDCS (Vector logicalPoint, Vector &objectLocal, const Vector *directionVector, const Vector &planeNormal=Vector(0, 0, 1), const Vector &planePoint=Vector(), const GlsMatrixType *dcsMatrix=NULL)
 
void DCSToLogical (Vector dcsPoint, Vector &logicalPoint, const GlsMatrixType *dcsMatrix=NULL)
 
virtual bool GetPlaneVectorPoints (Vertex &p1, Vertex &p2, Vertex &p3, Vertex &planeVector)
 
void NotifyAttributeChanged (const AttributeName &name)
 
virtual GlsPainterGetPainter ()
 
void InvalidatePainter ()
 
- Public Member Functions inherited from AttributeChangedNotifier
virtual ~AttributeChangedNotifier ()
 
- Public Member Functions inherited from WeakReferenceableMixin
void AddWeakReference (WeakReference *weakRef)
 
void NotifyWeakReferenceDestroyed (WeakReference *ref)
 
- Public Member Functions inherited from DisplayFrame
 DisplayFrame (int width, int height, bool allocateObjects=true)
 
void ClearBitfield (GLbitfield bitField)
 
GLbitfield ClearBitfield ()
 
virtual void DragObject (DisplayObject *obj)
 
virtual DisplayObjectDragObject (void)
 
virtual void ClearDrag ()
 
virtual void FocusObject (DisplayObject *obj)
 
virtual DisplayObjectFocusObject (void)
 
virtual void ClearFocus ()
 
virtual void MultitouchEnabled (bool enabled)
 
virtual bool MultitouchEnabled (void)
 
virtual DisplayObjectHandleDisplayEvent (DisplayEvent *ev)
 
virtual void WriteResources (const char *filename, GlsResourceFilter *filter=NULL)
 
virtual void ReadResources (const char *filename)
 
virtual void SetResources (std::istream &instr)
 
void SetResource (const std::string &resourceName, const std::string &resourceVal)
 
std::string GetResource (const std::string &resourceName)
 
virtual char * GetResource_CRTClean (const char *name)
 
virtual void GetResourceFree_CRTClean (char *memoryToFree)
 
virtual char * GetResources_CRTClean (GlsResourceFilter *filter)
 
virtual void GetResourcesFree_CRTClean (char *memoryToFree)
 
virtual void SetResource_CRTClean (const char *name, const char *value)
 
virtual void SetResources_CRTClean (const char *buf)
 
void SetTexturePaletteSize (int cnt)
 
void Draw (void)
 
void InsertObject (DisplayObject *obj, int loc)
 
void PushObject (DisplayObject *obj)
 
int Width (void)
 
int Height (void)
 
void SetWidth (int w)
 
void SetHeight (int h)
 
bool CullingEnabled (void)
 
void CullingEnabled (const bool enabled)
 
DistiAttribDictFrameAttribDict (void)
 
const DistiAttribDictFrameAttribDict (void) const
 
DynamicMaterialArrayMaterialPalette (void)
 
ComponentLightMgrLightMgr (void)
 
void LightMgr (ComponentLightMgr *val)
 

Static Public Member Functions

static ComponentBaseCreateLiveComponent (const char *fileName=NULL, const char *className=NULL, bool performCreate=true, const GlsBuiltVersionInfo &callingVersion=GlsBuiltVersionInfo())
 
static bool CheckLiveVersion (ComponentBase *comp, const GlsBuiltVersionInfo &callingVersion=GlsBuiltVersionInfo())
 
- Static Public Member Functions inherited from DisplayObject
static void UseManualBlinkElapsedTime (bool useManualTime)
 
static void SetManualBlinkElapsedTime (double elapsedTime)
 
- Static Public Member Functions inherited from DisplayFrame
static void SetOpenGLDefaultState (bool saveVal)
 
static void RestoreOpenGLState (void)
 

Protected Member Functions

virtual void CalcDrawMatrix ()
 
virtual void CalculateMatrices (const OpenGLMatrices &newMatrices)
 
- Protected Member Functions inherited from Group
virtual void AddAvailableAttributes (unsigned int availableAttributes)
 
virtual void GrowBoundingBox (DisplayObject *obj)
 
- Protected Member Functions inherited from DisplayObject
virtual void VaListSetVertices (unsigned int nPoints, va_list args)
 
virtual void VaListSetNormals (unsigned int nPoints, va_list args)
 
virtual void VaListSetTexCoords (unsigned int nPoints, va_list args)
 
void AllocateModelMatrix ()
 
bool ApplyDynamicRotation (void)
 
void CalcDrawMatrixIfExists ()
 
bool InsideVertexExtents (float x, float y, unsigned int nVerts, Vertex *verts, float tolerance)
 
void NeedCalculate (bool val)
 
void PickSetup (float x, float y, float z, Vertex *vertices, unsigned int vertex_cnt, const Vector &directionVector)
 
void PickCleanup (Vertex *vertices, unsigned int vertex_cnt)
 
int GetApplicableTextureIndex ()
 
int GetApplicableTextureRepeat ()
 
- Protected Member Functions inherited from WeakReferenceableMixin
 WeakReferenceableMixin (void)
 
virtual ~WeakReferenceableMixin ()
 
- Protected Member Functions inherited from DisplayFrame
virtual void CurrentCursor (unsigned int cursor_id)
 
void CleanupDragMap ()
 
DisplayObjectGetDragObjectForCursor (unsigned int cursorID)
 
DisplayObjectFindDragObject ()
 
virtual float Scale (void)
 

Protected Attributes

LiveComponentAccessor_liveAccessor
 
bool _absolutePlacement
 
DisplayFrame_parentDisplayFrame
 
GlsMatrixType _editorTransformMatrix
 
- Protected Attributes inherited from DisplayObject
int _alphaMode
 
bool _antiAlias
 
bool _attributesAdded
 
bool _blinking
 
float _blinkRate
 
GlsColor _color
 
bool _cullBackFace
 
GlsMatrixType _dcsMatrix
 
unsigned char _depthTest
 
GlsMatrixType_drawMatrix
 
unsigned char _lineStippleMultiplier
 
unsigned short _lineStipplePattern
 
float _lineWidth
 
Vertex _location
 
GlsMatrixType_modelMatrix
 
Vector_normals
 
unsigned int _nTex_vertices
 
unsigned int _nVertices
 
unsigned char _polygonEnd
 
unsigned char _polygonMode
 
int _polygonOffset
 
GlsMatrixType_projMatrix
 
unsigned char _shading
 
Vector_texCoord
 
GlsColor _textureBlendColor
 
int _textureIndex
 
unsigned char _textureMagFilter
 
unsigned char _textureMinFilter
 
unsigned char _textureMap
 
Vector _texturePoints [4]
 
unsigned char _textureRepeat
 
void * _userData
 
Vertex_vertices
 
int * _viewMatrix
 
bool _visible
 
- Protected Attributes inherited from WeakReferenceableMixin
DynamicArray< WeakReference * > * _weakRefs
 
- Protected Attributes inherited from DisplayFrame
bool _cullingEnabled
 
int _width
 
int _height
 
float _lastPickedDepth
 
DynamicMaterialArray _materialPalette
 
ComponentLightMgr_lightMgr
 
GLbitfield _clearBitfield
 
std::string _componentHeaderFileName
 
unsigned int _currentCursor
 
bool _multitouchEnabled
 
unsigned int _cursorsDown
 

Friends

class disti::LiveComponentAccessor
 

Additional Inherited Members

- Public Types inherited from DisplayObject
enum  AvailableAttributesEnum
 
- Public Attributes inherited from DisplayFrame
TexturePalettetexturePalette
 
SoundSystem_sound_player
 
Groupobjects
 

Detailed Description

The ComponentBase class is derived from Group and DisplayFrame. It is capable of containing objects as well as drawing them. It is used for encapsulating object geometry and behavior. The behavior is defined when this object is derived.

Constructor & Destructor Documentation

ComponentBase ( int  generateInstance = 0)

Constructor

Parameters
generateInstanceIf true generates a new unique instance name
virtual ~ComponentBase ( )
virtual

Cleans up the object and destructs it. Don't call "delete yourComponent", instead call yourComponent->Destroy(). If this is an RSO, it will be completely destroyed, including the DLL.

Member Function Documentation

bool AbsolutePlacement ( ) const
inline

Gets the value for Absolute Placement. If true, the component will be left in the generated location. Otherwise it will be moved based on its extents

virtual void AbsolutePlacement ( bool  val)
virtual

Sets the value for Absolute Placement. This affects what happens durring the call to CreateObjects(). If true, the component will be left in the generated location. Otherwise it will be moved based on its extents

Reimplemented in GlsRSOWrapper.

virtual void CalcDrawMatrix ( )
protectedvirtual

Overridden from base class This adds the _editorTransformMatrix to the DCS. You will need to call CalcDrawMatrix whenever the _editorTransformMatrix changes.

Reimplemented from DisplayObject.

virtual void CalculateMatrices ( const OpenGLMatrices newMatrices)
protectedvirtual

Applies the _drawMatrix to the modelMatrix. If necessary derived classes can save other matrices.

Parameters
newMatricesA set of matrices passed down to this object from its parent.

Reimplemented from DisplayObject.

static bool CheckLiveVersion ( ComponentBase comp,
const GlsBuiltVersionInfo callingVersion = GlsBuiltVersionInfo() 
)
static

Returns true if version checks ok, false if there MIGHT be a problem. The consequences of version mismatches depend on the methods that will be called on the object. This will emit warnings to stdout.

Parameters
compRSO
callingVersionLeave this as the default and it will use the calling function's version information.
Returns
true If version is considered OK.
virtual void ClearDragAndFocus ( )
virtual

Call this before deleting objects which may be being kept by the drag or focus objects.

Reimplemented from DisplayFrame.

virtual DisplayObject* CloneObject ( bool  generateNames = false)
virtual

Copy+Create operation in one method. In derived classes, this method will create a new instance of the derived class and then copy the object into the new instance. The cut,copy,paste and undo operations use this method.

Parameters
generateNamesWhether or not to generate new names for cloned objects
Returns
A new object, identical to the original, except for the instance name

Reimplemented from Group.

Reimplemented in GlsRSOWrapper, and SplashDisplay.

virtual void CopyGeometry ( DisplayObject src)
virtual

Copies the geometry information from one object to another. Used by the undo mechanism to allow user to undo a geometry change.

Parameters
srcThe object to copy geometry from

Reimplemented from Group.

Reimplemented in GlsRSOWrapper.

virtual void CopyProperties ( DisplayObject src)
virtual

Copies the attributes except for geometry attributes from one object to another. Used by the undo mechanism to undo most attribute change operations.

Parameters
srcThe object to copy properties from

Reimplemented from Group.

Reimplemented in GlsRSOWrapper.

static ComponentBase* CreateLiveComponent ( const char *  fileName = NULL,
const char *  className = NULL,
bool  performCreate = true,
const GlsBuiltVersionInfo callingVersion = GlsBuiltVersionInfo() 
)
static

Create RSO static This will load the specified DLL and try to create the specified class. It will return the ComponentBase* on success, and NULL on failure. Internally, this uses a LiveComponentAccessor. If more control is needed, it is recommended to create a LiveComponentAccessor.

Parameters
fileNameThe name of the DLL
classNameThe class name to create. If NULL, the default class will be created.
performCreateIf true, CreateObjects() will be called, otherwise it will not.
callingVersion
Returns
NULL on failure.
virtual void CreateObjects ( )
virtual

In derived classes this creates all the geometry for the component

Reimplemented in GlsRSOWrapper, and SplashDisplay.

virtual void DeleteAllChildren ( )
virtual

Overriden to avoid children getting deleted until object deletion.

Reimplemented from Group.

virtual void Draw ( )
virtual

Draws this object and all its contained objects in the current OpenGL pipeline. This can be overloaded to perform any special effects. If PreDraw and Draw are needed, call DisplayFrame::Draw()

Reimplemented from Group.

Reimplemented in GlsRSOWrapper.

virtual DisplayObject* FindByNameSameFrame ( const char *  name)
virtual

Finds a pointer to the display object in the group, using the object's instance name as a key. Because this is a component, it will always return NULL.

Parameters
nameInstance name of the object to find
Returns
A pointer to the object if it is in the group, otherwise NULL

Reimplemented from Group.

virtual InterfaceListType* GetCppInterfaceDescription ( InterfaceListType addToThisList = NULL)
virtual

Get the details of the Cpp Interface The actual interface is exposed in compiled code.

Parameters
addToThisListA list to add to and then return. Creates a new one if NULL.
Returns
A templated list. The caller must call the corresponding free method to safely free the memory.

Reimplemented from DisplayFrame.

Reimplemented in GlsRSOWrapper, and SplashDisplay.

virtual void GetCppInterfaceDescriptionFree ( InterfaceListType array)
virtual

Frees the memory allocated by a previous GetCppInterfaceDescription call

Parameters
arrayPointer to memory allocated by GetCppInterfaceDescription

Reimplemented from DisplayFrame.

Reimplemented in GlsRSOWrapper, and SplashDisplay.

virtual void GetExtents ( float &  x,
float &  y,
float &  z,
float &  x1,
float &  y1,
float &  z1 
)
virtual

Figure out the static extents for the object. Used by the editor as part of the pick operation and for figuring out the size of groups.

Parameters
xGets the minimum x extent
yGets the minimum y extent
zGets the minimum z extent
x1Gets the maximum x extent
y1Gets the maximum y extent
z1Gets the maximum z extent

Reimplemented from Group.

Reimplemented in GlsRSOWrapper.

virtual InputHandler* GetInputHandler ( )
virtual
See also
DisplayFrame Returns the parents input handler if a parent exists, else returns this component's input handler

Reimplemented from DisplayFrame.

virtual void GetResources ( std::ostream &  outstr,
GlsResourceFilter filter = NULL 
)
virtual

Get the resources for this display frame and all it's children acording to the filter

Parameters
outstrThe stream to write to
filterThe filter to control what gets written.

Reimplemented from DisplayFrame.

Reimplemented in GlsRSOWrapper.

virtual void GetTransformedExtents ( Vector min,
Vector max,
const GlsMatrixType matrix,
bool  resetMinMax = true 
)
virtual

Determines the extents of geometry projected to the XY plane of an arbirary coordinate system.

Parameters
minReturns the minimum values found in the traversal
maxReturns the maximum values found in the traversal
matrixTransformation matrix from world coordinates to the desired coordinate system.
resetMinMaxNormally not specified by user. Should be true for the initial call.

Reimplemented from Group.

Reimplemented in GlsRSOWrapper.

virtual DisplayObject* HandleInput ( DisplayEvent ev)
virtual

Handles input events. It traverses the hierarchy with Pick3D. Then THE picked object is given the handle() call.

Parameters
evThe event data.
Returns
The object that handled the input.

Reimplemented in GlsRSOWrapper.

virtual void Init ( )
virtual

Peforms post creation tasks including reparenting all objects. and adjusting their position. It checks the value of _absolutePlacement to determine if movement of the generated objects is necessary /see AbsolutePlacement

Reimplemented in GlsRSOWrapper.

virtual void Initialize ( )
virtual

The GL Studio code generator allways derives a new Initialize method for the user This is called after all the objects are created.

Reimplemented in GlsRSOWrapper, and SplashDisplay.

LiveComponentAccessor* LiveAccessor ( )
inline

If this component was loaded from an RSO library, this method returns the object's library reference. The library reference should be deleted AFTER the component is deleted. If the component was not loaded from an RSO library, this method returns NULL.

virtual const Vertex& Location ( void  ) const
inlinevirtual
Returns
The location of the origin of the object Lifetime is guaranteed to coincide with the DisplayObject's lifetime.

Reimplemented from DisplayObject.

virtual void Location ( const Vertex v)
virtual

Sets the location of the origin of the object

Parameters
vThe new location

Reimplemented from Group.

virtual void Location ( float  x,
float  y,
float  z 
)
virtual

Sets the location of the origin of the object

Parameters
xX Coordinate of the new location
yY Coordinate of the new location
zZ Coordinate of the new location

Reimplemented from Group.

void NotifyAttributeChanged ( const AttributeName name)
virtual

overrides DisplayObject::NotifyAttributeChanged

Reimplemented from DisplayFrame.

virtual void Parent ( DisplayFrame par)
virtual

Sets the DisplayFrame for this object. It does not set the specified parent for all the children. Instead, it sets all the children's parent to 'this'. And saves the argument 'par' in _parentDisplayFrame. This allows special traversals, which traverse out of the ComponentBase to the ComponentBase's parent.

Parameters
parThe parent which will be saved in _parentDisplayFrame
See also
ParentDisplayFrame

Reimplemented from Group.

DisplayFrame* ParentDisplayFrame ( ) const
inline

Gets the value of the DisplayFrame containing this component

Returns
the value of the DisplayFrame containing this component. Returns NULL if there is no parent DisplayFrame
void ParentDisplayFrame ( DisplayFrame val)
inline

Sets the parent DisplayFrame for this object. This is normally only set by a call to Parent().

Parameters
valThe new val for _parentDisplayFrame
See also
ComponentBase::Parent()
virtual DisplayObject* Pick3D ( const Vector winLoc,
const Vector logicalCoords,
float  scale,
const Vector directionVector,
Vector collisionWinLoc,
const OpenGLMatrices drawnMatrices 
)
virtual

Attempts to pick an object in 3D and accounting for dynamic rotations and translations of this object or parent objects. It also looks at the pickable status and attempts to return the "Best" pick if that is what is desired.

Note: This method will pick objects in the scene based on a pick ray starting at winLoc and pointing into the screen. It will not pick objects behind the depth specified by winLoc.z. Typically winLoc.z should be set to 0 to ensure that the pick ray starts at near clip plane.

Parameters
winLocDevice coordinates for the mouse click. Z value should be set to 0 to ensure pick ray starts at near clip plane.
logicalCoordsThe start of the pick ray in logical coordinates. Should be calculated from the winLoc using this->WindowToLogical(winLoc, logicalCoords, &directionVector).
scaleCurrent window scale. Affects picking radius of outlines. Initial value should typically be 1.0.
directionVectorThe direction of the pick ray in logical coordinates. Should be calculated from the winLoc using this->WindowToLogical(winLoc, logicalCoords, &directionVector).
collisionWinLocReturns where the pick vector intersects the object that is hit in device coordinates.
drawnMatricesThe matrices used to draw the object, including matrices set by parents that may have dynamically rotated, translated or scaled this object. Initial value should typically be a default OpenGLMatrices() object.
Returns
The object that was hit, or NULL if no object hit

Reimplemented from Group.

Reimplemented in GlsRSOWrapper.

virtual void PreDraw ( const OpenGLMatrices current,
Culler culler 
)
virtual

Traverses the hierarchy calculating the _modelMatrix, _projMatrix, _viewMatrix as needed.

Parameters
currentCurrent matrices inherited from parent
cullerObject that possibly marks this object for culling

Reimplemented from Group.

Reimplemented in GlsRSOWrapper.

virtual DistiAttributeBase& Resource ( const char *  name)
virtual

Gets a reference to the specified attribute for reading and writing. This reference can be streamed into and out of variables. This can access different levels of objects. For example: The DisplayFrame: Resource("ComponentHeaderFile") >> someStdString; An object in the DisplayFrame: Resource("SomeObject.Visible") << someBool; An object in a Component in this DisplayFrame: Resource("SomeComponentObject.SomeObject.Visible") >> someBool;

Reimplemented from DisplayFrame.

Reimplemented in GlsRSOWrapper.

virtual void Rotate ( const Vector orig,
float  angle,
const Vector axis 
)
virtual

Rotates the object (around the specified axis) by the angle indicated, at the point specified. Recalculates the vertex data.

Parameters
origThe point to rotate around
angleThe angle to rotate by, in degrees
axisThe arbitrary axis to rotate the object around

Reimplemented from Group.

virtual void Scale ( float  px,
float  py,
float  pz,
Vertex anchor,
int  handleBar = 0 
)
virtual

Scales the object, either the handleBar, or the Anchor is used to translate the object, not both. Anchor takes presidence, if it is set HandleBar is ignored. The footprint is different from the 2D scale so the compiler can destinguish the two.

Parameters
pxValue of the percentage of scale in x-axis
pyValue of the percentage of scale in y-axis
pzValue of the percentage of scale in z-axis
anchorAnchor from which to scale object relative to
handleBarVertex that is being dragged

Reimplemented from Group.

virtual void SetAvailableAttributes ( unsigned int  value)
virtual

Specifies which attributes are available for the object. Currently the available attributes cannot be changed after they have been set. (Only the first call has an effect.)

Parameters
valueA bitfield specifying which types of attributes to make available.
See also
AvailableAttributesEnum

Reimplemented from Group.

virtual void SetRedraw ( void  )
virtual

This will call our parent display frame's SetRedraw() causing this component to be redrawn in the future.

Reimplemented from DisplayFrame.

void SetValue ( int  spec,
va_list &  args 
)
virtual

Sets an attribute of this object using variable arguments

Parameters
specA GLS_Initializer tag
argsA variable argument list

Reimplemented from DisplayObject.

Reimplemented in GlsRSOWrapper.

virtual int TextureIndex ( )
virtual

Overridden so we will always get -1 for our texture index. This keeps our children from trying to draw with our texture index which would be for the wrong palette.

Reimplemented from DisplayObject.

Reimplemented in GlsRSOWrapper.

virtual void TextureIndex ( int  textureIndex)
inlinevirtual

Sets the texture index to be used when drawing the object.

Parameters
textureIndexThe texture index to use. -1 indicates that no texture will be drawn.

Reimplemented from DisplayObject.

Reimplemented in GlsRSOWrapper.

virtual void Translate ( float  tr[])
virtual

Moves the object by the amount indicated.

Parameters
trFloat[3] array containing the x,y,z amounts to translate by

Reimplemented from Group.

virtual void Translate ( float  x,
float  y,
float  z 
)
virtual

Moves the object by the amount indicated.

Parameters
xX amount to translate by
yY amount to translate by
zZ amount to translate by

Reimplemented from Group.

virtual void UseParentsLighting ( const bool &  )
virtual

If UseParentsLighting is true, the component will add it's lights to those already set by it's parent. If false, the component will only use it's own lights.

virtual bool UseParentsLighting ( )
virtual

If UseParentsLighting is true, the component will add it's lights to those already set by it's parent. If false, the component will only use it's own lights.

Member Data Documentation

bool _absolutePlacement
protected
GlsMatrixType _editorTransformMatrix
protected

The static transformation from the internal component coordinates to the parent's coordinate system

LiveComponentAccessor* _liveAccessor
protected
DisplayFrame* _parentDisplayFrame
protected

The delta vector used when using relative placemnt /see ComponentBase::ParentDisplayFrame


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