atom.php

来自「视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.」· PHP 代码 · 共 185 行

PHP
185
字号
<?php//// +----------------------------------------------------------------------+// | PHP Version 4                                                        |// +----------------------------------------------------------------------+// | Copyright (c) 1997-2003 The PHP Group                                |// +----------------------------------------------------------------------+// | This source file is subject to version 2.0 of the PHP license,       |// | that is bundled with this package in the file LICENSE, and is        |// | available at through the world-wide-web at                           |// | http://www.php.net/license/2_02.txt.                                 |// | If you did not receive a copy of the PHP license and are unable to   |// | obtain it through the world-wide-web, please send a note to          |// | license@php.net so we can mail you a copy immediately.               |// +----------------------------------------------------------------------+// | Authors: Jesus M. Castagnetto <jmcastagnetto@php.net>                |// +----------------------------------------------------------------------+//// $Id: Atom.php,v 1.4 2003/05/13 01:18:17 jmcastagnetto Exp $//require_once "Science/Chemistry.php";/** * Base class representing an Atom * * @author  Jesus M. Castagnetto <jmcastagnetto@php.net> * @version 1.0 * @access  public * @package Science_Chemistry */class Science_Chemistry_Atom {    /**     * Element symbol     *     * @var     string     * @access  private     *     * @see     getElement();     */    var $element="";    /**     * Science_Chemistry_Coordinates object     *     * @var     object  Science_Chemistry_Coordinates     * @access  private     *     * @see     getCoordinates();     */    var $xyz;    /**     * Constructor for the class, requires the element symbol     * and an optional array of coordinates     *     * @param   string  $element    chemical symbol     * @param   optional array   $coords     array of coordinates (x, y, z)     * @access  public     * @return  object  Science_Chemistry_Atom     *     * @see     setCoordinates()     */    function Science_Chemistry_Atom($element, $coords="") {        if ($element && ereg("[[:alpha:]]{1,2}", $element))            $this->element = $element;        else            return null;        if (is_array($coords) && count($coords) == 3)            if (!$this->xyz = new Science_Chemistry_Coordinates($coords))                return null;    }    /**     * Sets the coordinates for the atom object     *     * @param   array   $coords     array of coordinates (x, y, z)     * @return  boolean     * @access  public     */    function setCoordinates($coords) {        $this->xyz = new Science_Chemistry_Coordinates($coords);        return (is_object($this->xyz) && !empty($this->xyz));    }    /**     * Returns the chemical symbol for the atom     *     * @return  string     * @access  public     *     * @see     $element;     */    function getElement() {        return $this->element;    }    /**     * Returns the coordinates object for the atom     *     * @return  object  Science_Chemistry_Coordinates     * @access  public     *     * @see     $xyz;     */    function getCoordinates() {        return $this->xyz;    }    /**     * Calculates the cartesian distance from this atom     * instance to another     *     * @param   object  Science_Chemistry_Atom $atom2     * @return  float   distance     * @access  public     */    function distance($atom2) {        if (!empty($this->xyz) && Science_Chemistry_Coordinates::areCoordinates($this->xyz)             && Science_Chemistry_Atom::isAtom($atom2))            return $this->xyz->distance($atom2->xyz);        else            return -1.0;    }    /**     * Checks if the object is an instance of Science_Chemistry_Atom     *     * @param   object  Science_Chemistry_Atom $obj     * @return  boolean     * @access  public     */    function isAtom($obj) {        return  (is_object($obj) &&                  (strtolower(get_class($obj)) == strtolower("Science_Chemistry_Atom")                  || is_subclass_of($obj, strtolower("Science_Chemistry_Atom")))                );    }    /**     * Returns a string representation of the Science_Chemistry_Atom object     * Alias of toXYZ()     *     * @return  string     * @access  public     * @see toXYZ()     */    function toString() {        return $this->toXYZ();    }    /**     * Returns a XYZ representation of the Science_Chemistry_Atom object     *     * @return  string     * @access  public     * @see toString()     */    function toXYZ() {        if ($this->element && $this->xyz)            return sprintf("%2s",$this->element)." ".$this->xyz->toString();    }    /**     * Returns a CML representation of the Science_Chemistry_Atom object     * Accepts an optional id     *     * @param   optional    string  $id     * @return  string     * @access  public     */    function toCML($id=1) {        $out = "   <atom title=\"atom\" id=\"$id\">\n";        $out .= "    <string title=\"name\">".$this->element."</string>\n";        $out .= "    ".$this->xyz->toCML();        $out .= "   </atom>\n";        return $out;    }} // end of class Science_Chemistry_Atom// vim: expandtab: ts=4: sw=4?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?