<<<<<<<<<<<<<<<<<

molecule(model) Geometric Modelling molecule(model)

NAME

molecule - a molecular analysis liaison

DESCRIPTION

This module contains classes and methods for SECULAR Liaison of the Graphics Animation System. SECULAR is the analysis of normal mode of a molecule.

SUPERCLASS

object

INSTANCE VARIABLES

analysis

analysis_ptr

atom_position_scale

atom_size_scale

atoms

bond_size_scale

bonds

double_bond

eigenvector_scale

frequency_scale

mode_number

period

resolution

start_flag

time

total_atom_number

total_bond_number

total_mode_number

MESSAGES

analysis=

analysis?

atom_position_scale=

atom_position_scale?

atom_size_scale+

atom_size_scale=

atom_size_scale?

bond_size_scale+

bond_size_scale=

bond_size_scale?

double_bond=

double_bond?

double_bond_off!

double_bond_on!

eigenvector_scale=

eigenvector_scale?

frequency_scale=

frequency_scale?

generate!

mode_number=

mode_number?

EXAMPLE

/* * This script demonstrates a small ethane molecule animation */

! build scene_1

scene_1 := scene { renderers= aren };

environment new: env variable="LYMB_RENDERER";

object#[env value?] new: arenunknown command: wh432 cameras=(camera_1)unknown command: wh288 lights= (light_1);

light_1 := LIGHT {status= 1};

! build camera_1

camera_1 := CAMERA {unknown command: wh216 position= (35, 0, 0) view_up= (0, 1, 0)unknown command: wh216 status=1unknown command: wh216 view_angle=35 clipping_range=(0.2,220) };

light_1 position= [camera_1 position?];

ethane_1 := molecule{ analysis= ethane.ana double_bond=1 file= ethane1.scr mode_number= 2 atom_position_scale= 5 eigenvector_scale= 2 scene= scene_1 cue= mode_1 renderer= aren };

/* * Create atoms and bonds */

__vector := VECTOR {dimension=3}; ethane_1_atom_1 := ACTOR { position=(0.000000, 0.000000, 3.880000) color=(0.000000, 1.000000, 0.000000) }; ethane_1_atom_2 := ACTOR { position=(0.000000, 5.165000, 5.565000) color=(1.000000, 1.000000, 1.000000) }; ethane_1_atom_3 := ACTOR { position=(4.470000, -2.580000, 5.565000) color=(1.000000, 1.000000, 1.000000) }; ethane_1_atom_4 := ACTOR { position=(-4.470000, -2.580000, 5.565000) color=(1.000000, 1.000000, 1.000000) }; ethane_1_atom_5 := ACTOR { position=(0.000000, 0.000000, -3.880000) color=(0.000000, 1.000000, 0.000000) }; ethane_1_atom_6 := ACTOR { position=(0.000000, -5.165000, -5.565000) color=(1.000000, 1.000000, 1.000000) }; ethane_1_atom_7 := ACTOR { position=(-4.470000, 2.580000, -5.565000) color=(1.000000, 1.000000, 1.000000) }; ethane_1_atom_8 := ACTOR { position=(4.470000, 2.580000, -5.565000) color=(1.000000, 1.000000, 1.000000) }; ethane_1_atoms_collection := COLLECTION { members = ( ethane_1_atom_1, ethane_1_atom_2, ethane_1_atom_3, ethane_1_atom_4, ethane_1_atom_5, ethane_1_atom_6, ethane_1_atom_7, ethane_1_atom_8 ) }; ethane_1_bond_1 := PERSON {

position=[ethane_1_atom_1 position?] front=[__vector =[ethane_1_atom_2 position?] - [ethane_1_atom_1 position?] ?] scale=(1,1,[__vector = [ethane_1_bond_1 front?] length?]) color=(0.000000, 1.000000, 0.000000) }; ethane_1_bond_1_bis := PERSON { position=[ethane_1_atom_2 position?] front=[__vector =[ethane_1_atom_1 position?] - [ethane_1_atom_2 position?] ?] scale=(1,1,[__vector = [ethane_1_bond_1_bis front?] length?]) color=(0.000000, 1.000000, 0.000000) }; ethane_1_bond_2 := PERSON { position=[ethane_1_atom_1 position?] front=[__vector =[ethane_1_atom_3 position?] - [ethane_1_atom_1 position?] ?] scale=(1,1,[__vector = [ethane_1_bond_2 front?] length?]) color=(0.000000, 1.000000, 0.000000) }; ethane_1_bond_2_bis := PERSON { position=[ethane_1_atom_3 position?] front=[__vector =[ethane_1_atom_1 position?] - [ethane_1_atom_3 position?] ?] scale=(1,1,[__vector = [ethane_1_bond_2_bis front?] length?]) color=(0.000000, 1.000000, 0.000000) }; ethane_1_bond_3 := PERSON { position=[ethane_1_atom_1 position?] front=[__vector =[ethane_1_atom_4 position?] - [ethane_1_atom_1 position?] ?] scale=(1,1,[__vector = [ethane_1_bond_3 front?] length?]) color=(0.000000, 1.000000, 0.000000) }; ethane_1_bond_3_bis := PERSON { position=[ethane_1_atom_4 position?] front=[__vector =[ethane_1_atom_1 position?] - [ethane_1_atom_4 position?] ?] scale=(1,1,[__vector = [ethane_1_bond_3_bis front?] length?]) color=(0.000000, 1.000000, 0.000000) }; ethane_1_bond_4 := PERSON { position=[ethane_1_atom_1 position?] front=[__vector =[ethane_1_atom_5 position?] - [ethane_1_atom_1 position?] ?] scale=(1,1,[__vector = [ethane_1_bond_4 front?] length?]) color=(0.000000, 0.000000, 1.000000) }; ethane_1_bond_4_bis := PERSON { position=[ethane_1_atom_5 position?] front=[__vector =[ethane_1_atom_1 position?] - [ethane_1_atom_5 position?] ?] scale=(1,1,[__vector = [ethane_1_bond_4_bis front?] length?])

color=(0.000000, 0.000000, 1.000000) }; ethane_1_bond_5 := PERSON { position=[ethane_1_atom_5 position?] front=[__vector =[ethane_1_atom_6 position?] - [ethane_1_atom_5 position?] ?] scale=(1,1,[__vector = [ethane_1_bond_5 front?] length?]) color=(0.000000, 1.000000, 0.000000) }; ethane_1_bond_5_bis := PERSON { position=[ethane_1_atom_6 position?] front=[__vector =[ethane_1_atom_5 position?] - [ethane_1_atom_6 position?] ?] scale=(1,1,[__vector = [ethane_1_bond_5_bis front?] length?]) color=(0.000000, 1.000000, 0.000000) }; ethane_1_bond_6 := PERSON { position=[ethane_1_atom_5 position?] front=[__vector =[ethane_1_atom_7 position?] - [ethane_1_atom_5 position?] ?] scale=(1,1,[__vector = [ethane_1_bond_6 front?] length?]) color=(0.000000, 1.000000, 0.000000) }; ethane_1_bond_6_bis := PERSON { position=[ethane_1_atom_7 position?] front=[__vector =[ethane_1_atom_5 position?] - [ethane_1_atom_7 position?] ?] scale=(1,1,[__vector = [ethane_1_bond_6_bis front?] length?]) color=(0.000000, 1.000000, 0.000000) }; ethane_1_bond_7 := PERSON { position=[ethane_1_atom_5 position?] front=[__vector =[ethane_1_atom_8 position?] - [ethane_1_atom_5 position?] ?] scale=(1,1,[__vector = [ethane_1_bond_7 front?] length?]) color=(0.000000, 1.000000, 0.000000) }; ethane_1_bond_7_bis := PERSON { position=[ethane_1_atom_8 position?] front=[__vector =[ethane_1_atom_5 position?] - [ethane_1_atom_8 position?] ?] scale=(1,1,[__vector = [ethane_1_bond_7_bis front?] length?]) color=(0.000000, 1.000000, 0.000000) }; ethane_1_bonds_collection := COLLECTION { members = ( ethane_1_bond_1, ethane_1_bond_1_bis, ethane_1_bond_2, ethane_1_bond_2_bis, ethane_1_bond_3, ethane_1_bond_3_bis, ethane_1_bond_4, ethane_1_bond_4_bis, ethane_1_bond_5,

ethane_1_bond_5_bis, ethane_1_bond_6, ethane_1_bond_6_bis, ethane_1_bond_7, ethane_1_bond_7_bis ) }; ethane_1_collection := COLLECTION { members+ ( [ethane_1_atoms_collection members?], [ethane_1_bonds_collection members?] ) }; mode_8 := CUE { start= 0.000000 duration= 1.000000 start_actions=("! start mode_8") tick_actions= ("ethane_1 tick!;") end_actions= ("! complete mode_8") }; scene_1 cues+ (mode_8);

aren actors+ [ethane_1_collection members?];

/* * Specify models for atoms and bonds */

sphere_modeller new: sphere1 resolution=3; sphere_modeller new: sphere2 resolution=3;

cylinder_modeller new: stick origin=(0,.5,0) rotate_x:90 scale=(.5,1,.5) resolution=10 position=(0,-.5,0);

ethane_1_bonds_collection modeller=stick; ethane_1_atoms_collection modeller=sphere1;

scalar new: frames_number = 1;

ethane_1 period: [frames_number / 1 ? ];

scene_1 start!;

SEE ALSO


Please send comments and suggestions to
consult@rpi.edu