Main Page | Class Hierarchy | Class List | File List | Class Members | File Members | Related Pages

HaMolView Class Reference

Class for 3D representation of a set of molecules. More...

#include <hamolview.h>

Inheritance diagram for HaMolView:

List of all members.

Labels manipulation functions

void FormatLabel (HaChain *chain, HaResidue *group, HaAtom *aptr, const char *label, char *ptr)
int DeleteLabels ()
void DefineLabels (const char *label)
void DefaultLabels (int enable)
void DisplayLabels ()
int LabelOptFlag

Monitors functions:

void DeleteMonitors ()
void AddMonitors (HaAtom *src, HaAtom *dst)
void CreateMonitor (Long src, Long dst)
void DisplayMonitors ()
list< Monitor > MonitList

Image Output related functions:

void WriteImageFile (const char *name, int type)
int WritePPMFile (const char *name, int raw)
int WriteGIFFile (const char *name)
int WriteRastFile (const char *name, int encode)
int WriteEPSFFile (const char *name, int col, int compr)
int WriteBMPFile (const char *name)
int WriteVectPSFile (const char *name)
int WritePICTFile (const char *name)
int WriteIRISFile (const char *name)
int WriteScriptFile (const char *name)
int WriteKinemageFile (const char *name)
int WriteMolScriptFile (const char *name)
int WritePOVRayFile (const char *name)
int WriteVRMLFile (const char *name)
void WriteVRMLDots ()
void WriteVRMLColour (int indent, int shade)
 Write VRML specification for colour.

void WriteVRMLTriple (double x, double y, double z)
 Write coordinate in VRML format.

void WriteVRMLAtoms ()
 Write atoms in VRML format.

void WriteVRMLLine (int src, int dst, int shade, int *flag)
void WriteVRMLWireframe ()
void DisplaySpaceFill ()
 Plot atoms as spheres in the buffer.

void DisplayWireframe ()
 function to plot wireframe molecular representation

void DisplayCylinder (int x1, int y1, int z1, int x2, int y2, int z2, int c1, int c2, int rad)
void DisplayDoubleBonds ()
void DisplayBackbone ()
 Plot the molecule backbone.

void DisplayHBonds (int mode)
 Display H-bonds(mode = HBondMode) or SS-bonds(mode = SSBondMode).

void DisplayBoxes ()
 Plot boundary box in the buffer.

void DisplayOnScreenInfo ()
 Print info on the display screen.

void DisplayPickedAtoms ()
 Display circles around picked atoms.

void RenderFrame ()
 The Main function to plot object in the buffer pixelmap before output to the display.

void TestAtomProximity (HaAtom *ptr, int xpos, int ypos)
 Set Atom as the Picked atom if it is closest so far to the (xpos,ypos) point.

void IdentifyAtom (int xpos, int ypos)
 Find the atom the mouse points to.

void InitializeTables ()
void InitializeRenderer ()
Canvas3DpCanv
 Pointer to the canvas object that contains the PixelMap buffer to plot different objects.

void WriteByte (int)
void WriteLSBShort (int)
void WriteMSBShort (int)
void WriteLSBLong (unsigned int)
void WriteMSBLong (unsigned int)
void WriteGIFCode (int code)
void WritePPMWord (int i)
void FlushRastRLE ()
void WriteRastRLECode (int val)
void WriteRastRLEPad ()
void WriteRastData (int output)
void OutputEPSFByte (int val)
void EncodeEPSFPixel (int val, int col)
void FlushBMPBuffer ()
void FlushBMPPackets ()
void ProcessBMPPacket ()
void WriteBMPCode (int val)
void WriteBMPData (int output)
int FindDepth (PSItemPtr item, int type)
void DepthSort (PSItemPtr *data, char *type, int count)
int ClipVectSphere (HaAtom *)
int ClipVectBond (HaAtom *, HaAtom *)
void WriteVectColour (int col)
void WriteVectSphere (PSItemPtr *data, char *type, int index)
void WriteVectWire (HaAtom *src, HaAtom *dst, int col, int dash)
void WriteVectStick (HaAtom *src, HaAtom *dst, int col, int rad)
Long CountPSItems ()
void FetchPSItems (PSItemPtr *, char *)
void WritePSItems (PSItemPtr *, char *, int)
void WriteVectDots ()
void WriteVectLabels ()
void WriteVectMonitors ()
void FlushPICTBuffer ()
void FlushPICTPacket ()
void WritePICTCode (int val)
void WritePICTData ()
void FlushIRISBuffer ()
void FlushIRISPacket ()
void WriteIRISCode (int val)
void DetermineIRISSizes (Long *rowstart, short *rowsize, int *min, int *max)
void WriteIRISHeader (Long *rowstart, short *rowsize, int min, int max)
void WriteIRISData ()
void WriteKinemageDots ()
void WriteKinemageData ()
int CheckKinemageChain (HaAtom *src, HaAtom *dst, HaChain *chain)
void WriteKinemageLabels (HaChain *chain)
void WriteKinemageRibbons (HaChain *chain)
void WriteKinemageSpheres (HaChain *chain)
void OutputKinemageVector (HaAtom *src, HaAtom *dst, int col)
void WriteKinemageBonds (HaChain *chain)
void WriteScriptAtoms ()
void WriteScriptBonds ()
void WriteScriptBackbone ()
void WriteScriptRibbons ()
void WriteScriptLabels ()
void WriteScriptMonitors ()
void WriteScriptHBonds (char *obj)

Public Member Functions

HaMolSetGetMolSet ()
 Get Molecular Set that the view displays.

void ResetView ()
virtual int ExecuteCommand (CmdParser &cmd_pr)
int ExecuteSetCommand (CmdParser &cmd_pr)
int ExecuteColourCommand (CmdParser &cmd_pr)
void ConnectObject (Object3D *pObj)
int BroadcastCurrAtom ()
int FillCurrAtomRef (char *buf)
bool SetImageSize (int new_ImageSize)
int GetImageSize ()
int GetImageRadius ()
void SetUseSlabPlane (int new_UseSlabPlane)
int UseSlabPlane ()
void SetSlabMode (int new_SlabMode)
int SlabMode ()
void SetSlabValue (int new_SlabValue)
int SlabValue ()
void SetSlabInten (int new_SlabInten)
void SetSliceValue (int new_SliceValue)
int SliceValue ()
void SetZOffset (int new_ZOffset)
int ZOffset ()
virtual void UpdateThisView (long lHint=0)
virtual void RefreshScreen ()
int CreateImage ()
virtual void ClearImage ()
void ClearBuffers ()
virtual void TransferImage ()
virtual int PrintImage ()
virtual int ClipboardImage ()
void ReSizeScreen ()
void ReAllocBuffers ()
void BuildHashTable ()
 Build HashTable - partion of selected atoms to grid bins.

void DrawFrame ()
 Fill FBuffer and DBuffer which determine the image call RenderFrame.

void ResetRenderer ()
void SetStereoMode (int)
void SetPickMode (int)
void PickAtom (int, int, int)
void SetRefreshScreen ()
void InitialTransform ()
 Arrange the molecular set within the window in standard orientation, and set rotation matrix to unity.

void PrepareTransform ()
void ApplyTransform ()
void ResetTransform ()
void CalcRotCenter (int sel_atoms=FALSE)
 Compute center of rotation of connected molecules ( or selected atoms).

void CenterSelected ()
 Center Selected portion of the molecular set.

void GetTransfCoord (const double x_abs, const double y_abs, const double z_abs, double &x_tr, double &y_tr, double &z_tr)
 Get tranformed coordinates (to get screen coordinates multiply by Scale and + ixadd(iyadd).

void SetAtomScreenRadVal (double rad)
 Set radii of atoms as they seen on the screen.

void SetRadiusTemperature ()
void SetAtomScreenRadVdW ()
 Set image atom radii to van der Waals radii.

void DefaultRepresentation ()
void DisableSpacefill ()
void EnableWireframe (int mask, double rad)
void DisableWireframe ()
void EnableBackbone (int mask, double rad)
void DisableBackbone ()
void SetHBondStatus (int hbonds, int enable, double rad)
void SetRibbonCartoons ()
void SetRibbonStatus (int enable, int flag, double width)
void SetTraceTemperature ()
int ComputeRevColourMap ()
void ScaleColourMap (int count)
 Prepare array of shade references Scale to display properties by colors.

void ColourBackNone ()
void ColourBondNone ()
void ColourHBondType ()
void ColourHBondNone (int hbonds)
void ColourMonitNone ()
void ColourBackAttrib (int r, int g, int b)
void ColourBondAttrib (int r, int g, int b)
void ColourHBondAttrib (int hbonds, int r, int g, int b)
void ColourMonitAttrib (int r, int g, int b)
void ColourDotsAttrib (int r, int g, int b)
void ColourDotsPotential ()
void ColourRibbonNone (int flag)
void ColourRibbonAttrib (int flag, int r, int g, int b)
void ScaleColourAttrib (int attr)
 Colour Atoms according to attributes(properties).

void MonoColourAttrib (int r, int g, int b)
void CPKColourAttrib ()
void GroupsColourAttrib ()
void ShapelyColourAttrib ()
void AminoColourAttrib ()
void StructColourAttrib ()
int IsCPKColour (HaAtom *aptr)
Display ET related quantities:
void DisplayETBestPath ()
Display Electrostatic Related quantities:
void DisplayContourSurf ()
Atom Selection Functions:
void RestrictSelected ()
 Restrict view to only selected portion of the molecular set.

Dot Surface functions:
int TestDot (double x, double y, double z, bool solvent_access)
void InitElemDots ()
void AddElemDots (int elem, int density)
void FreeElemDots ()
void DeleteDotSurfaces ()
void CalculateDotSurface (int density)
void DisplayDotSurfaces ()
Ribbons and Cartoons functions:
void DisplayRibbon (HaChain *)
 Function called in RenderFrame to display secondary structure elements as ribbons.


Static Public Member Functions

int Colour2Shade (const int x)
 Given a color index in Lut[] array get corresponding shade index.

int Shade2Colour (const int x)
 For a given shade get a position of the color in Lut array.

int OpenDisplay (int, int)
void SetMouseMode (int)
void DefineColourMap ()
 Reset color array Lut using array of shades Shade[].

int IsShadeDefined (unsigned char r, unsigned char g, unsigned char b)
 check if the shade (basic color) defined

int DefineShade (unsigned char r, unsigned char g, unsigned char b)
 set a new basic color(shade) to the Shade array

int SetShadeLutEntries (int shade_idx)
 Set intermediate colors (in Lut array) for a shade with index shade_idx (in Shade array).

int GetColorIdx (unsigned char r, unsigned char g, unsigned char b)
 Get index of the basic color from r,g,b allocating shade if necessary.


Public Attributes

int debug_level
int UseDepthCue
int UseStereo
int UseClipping
int SSBondMode
int HBondMode
int UseTransparent
int UseOutLine
int KinemageFlag
double StereoAngle
int DrawBoundBox
int DrawAxes
int DrawDoubleBonds
int DrawUnitCell
double CartoonHeight
int SolventDots
double ProbeRadius
 Probe Radius in atomic units.

int DrawDots
int DrawLabels
int DrawMonitDistance
int DrawBetaArrows
HaMolSethost_mol_set
Partition HashTable
int XOffset
int YOffset
int ideltx
int idelty
 Current translation values along X and Y axis.

double CenX
double CenY
double CenZ
 Coordinates of the Center of the Zone.

double CurRX
 Current value of rotation of the view around X axis ( in [-1.1] interval).

double CurRY
 Current value of rotation of the view around Y axis ( in [-1.1] interval).

double CurRZ
 Current value of rotation of the view around Z axis ( in [-1.1] interval).

double CurTX
 Current translation value of the view along X axis ( in [-1.1] interval).

double CurTY
 Current translation value of the view along Y axis ( in [-1.1] interval).

double CurZoom
 Current Zoom value ( in [-1.1] interval).

double CurSlabValue
 Current slab value ( in [-1.1] interval).

double LastRX
double LastRY
double LastRZ
double LastTX
double LastTY
int PointX
 X screen coordinate of the point of mouse click or release.

int PointY
 Y screen coordinate of the point of mouse click or release.

int InitX
 reference X screen coordinate of the point of mouse click in mouse motion tracking

int InitY
 reference Y screen coordinate of the point of mouse click in mouse motion tracking

int UseLabelCol
HaMat_double Rot
 Coordinates of x, y, z directional vectors in the screen(transformed) coordinate system.

HaVec_double Orig
 Coordinates of the origin of the absolute coordinate system in the screen(transformed) c.s.

double Zoom
 Zoom value.

double Scale
 coef of transformation from the World Coordinates in Bohr to Screen integer coordinates

double DScale
 1.0/(Max size of the displayed portion of the molecular set)

int UseScreenClip
int m_screen_transform
 flag to set rotations and traslation only on the screen absolute atomic coordinates are not changed

int ReDrawFlag
int Hydrogens
int HetaGroups
int DrawAtoms
int DrawBonds
int DrawRibbon
int DrawBestPath
int DrawContourSurf
int DrawSolidSurfaces
vector< int > min_color_map
 Array of minimal set of colors to describe the image.

map< int, int, less< int > > rev_color_map
 Map from colors to indexes in min_color_map.


Static Public Attributes

int ZoneBoth = True
 Flag to select bond if both atoms of the bond are selected.

ShadeDesc Shade [LastShade]
 Array of shades(basic colors) every color used to.

ShadeRef ScaleRef [LastShade]
 Shades intermediate colors from blue to red.

int ScaleCount = 0
 Number of colors(shades) in ScaleRef.

int FakeSpecular = False
int SpecPower = 8
int BackR = 0
int BackG = 0
int BackB = 0
 Background color (rgb).

int LabR = 255
int LabG = 255
int LabB = 255
 Default labels color (rgb).

int BoxR = 255
int BoxG = 255
int BoxB = 255
 Clor used to plot boxes (rgb).

int UseBackFade = False
double Ambient = DefaultAmbient
int MouseMode = MMRasMol
int UseHourGlass = True

Protected Member Functions

void MouseMove (int status, int dx, int dy)
void ClampShiftVal (int ival, double value)
 Shift value of the current translation, zoom or slab with restriction [-1,1].

void WrapShiftVal (int iaxis, double value)
 Shift current rotation value around X,Y or Z axis, wraping them to [-1,1] interval.


Protected Attributes

int StereoView
int FBufX
int FBufY
 Save previous values of XRange and YRange.


Detailed Description

Class for 3D representation of a set of molecules.


Member Function Documentation

int HaMolView::BroadcastCurrAtom  ) 
 

This function send message IDU_ATOM_SELECT to Dialog classes that are able to prosess this info and call AtomEdit::BroadCastPickedAtom(PkAtom) - for atom select edit boxes

void HaMolView::DrawFrame  ) 
 

Fill FBuffer and DBuffer which determine the image call RenderFrame.

Fill FBuffer and DBuffer that determine the image Use RenderFrame and changing View Structure to plot Stereo this mechanism may be used to plot multiple molecule on the same screen for the bulder for example?

void HaMolView::DefineColourMap  )  [static]
 

Reset color array Lut using array of shades Shade[].

This function is called in HaMolViewMFC::RefreshScreen when RFColour flag in ReDrawFlag is set

Management of colors in HARLEM: Array Shade[] - Contain Basic Colors of HARLEM Array Lut[] as first goes basic color and then with increasing intensity colors obtained by darkening of the basic color ColourDepth - the number of intermediate (darkened) colors to interpolate effects of shaded parts of the object Shade2Colour(j) - macro return the position of the basic color specified by shade in palitra Lut

int HaMolView::ComputeRevColourMap  ) 
 

and compute reverse color map rev_color_map < return number of colors in min_color_map

void HaMolView::ScaleColourMap int  count  ) 
 

Prepare array of shade references Scale to display properties by colors.

Prepare for coloring by property value Fill ScaleRef with ScaleCount colors from blue to red

int HaMolView::DefineShade unsigned char  r,
unsigned char  g,
unsigned char  b
[static]
 

set a new basic color(shade) to the Shade array

If Shade array is full it will return the position of the shade best matching the color

void HaMolView::RenderFrame  ) 
 

The Main function to plot object in the buffer pixelmap before output to the display.

Function to create image by filling View Structure Enter plotting of new elements here


Member Data Documentation

double HaMolView::LastRZ
 

Previous values of CurRX,CurRY,CurRZ < Rotations around X,Y and Z axis

double HaMolView::LastTY
 

Previous values of CurTX,CurTY - < Translations along X,Y axis


The documentation for this class was generated from the following files:
Generated on Tue Feb 17 02:03:19 2004 for harlem by doxygen 1.3.6