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 + -
显示快捷键?