Cytosim PI Cytoskeleton Simulator

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

List of all members | Public Member Functions | Static Public Member Functions | Static Public Attributes | Friends
Object Class Referenceabstract

## Detailed Description

This is the interface used for writing / reading from a file.

Three functions identify an Object:

- tag() [ASCII character] identifies the class of Object.
- property->index() [integer] identifies its Property.
- number() [serial-number] derived from Inventoried identifies unique instantiations.

These three qualities are concatenated in reference() and writeReference().

Objects are stored in ObjectSet.

Inheritance diagram for Object:

## Public Member Functions
| Object ()
| constructor
virtual Tag | tag () const =0
| an ASCII character identifying the ObjectSet corresponding to this object
virtual const Property * | property () const =0
| Property associated with the Object.
virtual void | write (OutputWrapper &) const =0
| write Object data to file
virtual void | read (InputWrapper &, Simul &)=0
| read Object from file, within the Simul
std::string | reference () const
| concatenation of [ tag(), property()->index(), number() ] in plain ascii More...
void | writeReference (OutputWrapper &) const
| write a reference that identifies the Object uniquely More...
void | writeReference (OutputWrapper &, Tag tag) const
| write a reference, but using the provided Tag More...
int | mark () const
| birth mark value
void | mark (int m)
| set birth mark
int | fleck () const
| fleck value (not stored in trajectory files)
void | fleck (int f) const
| set fleck (the value is not stored in trajectory files)
Object * | next () const
| extends Node::next(), with a cast to preserve type
Object * | prev () const
| extends Node::prev(), with a cast to preserve type
Public Member Functions inherited from Node
| Node ()
| constructor set as unlinked
virtual | ~Node ()
| destructor More...
bool | linked () const
| true if Node is linked
Node * | next () const
| the next Node in the list, or zero if this is last
Node * | prev () const
| the previous Node in the list, or zero if this is first
NodeList * | list () const
| the list where the object is linked, or zero
ObjectSet * | objset () const
| return associated ObjectSet
Public Member Functions inherited from Inventoried
| Inventoried ()
| initialize (name=0)
| ~Inventoried ()
| destructor
void | number (Number n)
| change the serial number
Number | number () const
| serial number : a integer identifier, unique within each class
Public Member Functions inherited from Movable
| Movable ()
| constructor
virtual | ~Movable ()
| destructor
virtual Vector | position () const
| return the position in space of the object
virtual void | setPosition (Vector const &)
| move object to specified position More...
virtual bool | translatable () const
| true if object accepts translations (default=false)
virtual void | translate (Vector const &)
| move the object ( position += given vector ) More...
virtual bool | rotatable () const
| true if object accepts rotations (default=false)
virtual void | rotate (Rotation const &)
| rotate the object around the origin of coordinates More...
virtual void | rotateP (Rotation const &)
| rotate the object around its current position More...
virtual void | foldPosition (Modulo const *)
| perform modulo for periodic boundary conditions More...

## Static Public Member Functions
static std::string | strReference (char, int, Number, int)
| build a string reference by concatenating (tag, property_index, number, mark) More...
static void | readReference (InputWrapper &, int &, Number &, int &, char pretag)
| read a reference (property_index, number, mark) from input More...
static void | writeNullReference (OutputWrapper &)
| write a reference that does not refer to any Object
Static Public Member Functions inherited from Movable
static Vector | readPrimitive (std::istream &, const Space *)
| read a position specified with primitives, such as 'circle 5', etc. More...
static Vector | readPosition (std::istream &, const Space *)
| read a position in space More...
static Vector | readDirection (std::istream &, const Vector &, const Space *)
| read an orientation, and return a normalized vector More...
static Rotation | readRotation (std::istream &, const Vector &, const Space *)
| read a rotation specified in is, at position pos More...

## Static Public Attributes
static const Tag | TAG = 'v'
| Object::TAG = 'v' represents the 'void' pointer.

## Friends
class | ObjectSet

## Additional Inherited Members
Protected Attributes inherited from Node
Node * | nNext
| the next Node in the list
Node * | nPrev
| the previous Node in the list
Protected Attributes inherited from Inventoried
Number | nNumber
| object identifier, unique within the class defined by tag()

## Member Function Documentation

void readReference | ( | InputWrapper & | in,
|  | int & | pi,
|  | Number & | nb,
|  | int & | mk,
|  | char | pretag
| ) |  |
| static

This must be able to read the formats written by Object::writeReference()

std::string reference | ( |  | ) | const

The ASCII reference has the format XP:N or XP:N:M, where:

- X=tag() is one ascii character.
- P=property->index() is the index of the property (P>=0).
- N=number() is a serial-number (N>0).
- M=mark() is an integer (the mark is added only if it is not zero)

For example 'f0:21' is the fiber of property 0, number 21

std::string strReference | ( | char | tag,
|  | int | pi,
|  | Number | nb,
|  | int | mk
| ) |  |
| static

The ASCII reference has the format XP:N or XP:N:M, where:

- X=tag is one ascii character.
- P=pi is the index of the property (P>=0).
- N=nb is a serial-number (N>0).
- M=mk is an integer (the mark is added only if it is non-zero)

For example 'f0:21' is the fiber of property 0, number 21

void writeReference | ( | OutputWrapper & | out | ) | const

Two binary formats are used:

- A short format:
  - 1 byte for the tag()
  - 1 byte for the index of the property
  - 2 bytes for the Number
- A long format:
  - the character '$'
  - 1 byte for the tag()
  - 2 bytes for the index of the property
  - 4 bytes for the Number
  - 4 bytes for the mark

There is only one ascii based format, as returned by reference(). All formats are read by ObjectSet::readReference()

void writeReference | ( | OutputWrapper & | out,
|  | Tag | g
| ) |  | const

Same as writeReference(OutputWrapper&), excepts that tag() is replaced by 'g' given as argument.