PLearn 0.1
|
00001 // -*- C++ -*- 00002 00003 // MeshGraph.cc 00004 // 00005 // Copyright (C) 2004 Pascal Lamblin 00006 // 00007 // Redistribution and use in source and binary forms, with or without 00008 // modification, are permitted provided that the following conditions are met: 00009 // 00010 // 1. Redistributions of source code must retain the above copyright 00011 // notice, this list of conditions and the following disclaimer. 00012 // 00013 // 2. Redistributions in binary form must reproduce the above copyright 00014 // notice, this list of conditions and the following disclaimer in the 00015 // documentation and/or other materials provided with the distribution. 00016 // 00017 // 3. The name of the authors may not be used to endorse or promote 00018 // products derived from this software without specific prior written 00019 // permission. 00020 // 00021 // THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR 00022 // IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 00023 // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN 00024 // NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 00025 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 00026 // TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 00027 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 00028 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 00029 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 00030 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00031 // 00032 // This file is part of the PLearn library. For more information on the PLearn 00033 // library, go to the PLearn Web site at www.plearn.org 00034 00035 /* ******************************************************* 00036 * $Id: MeshGraph.cc,v 1.3 2004/11/11 19:54:14 lamblinp Exp $ 00037 ******************************************************* */ 00038 00039 // Authors: Pascal Lamblin 00040 00044 #include "MeshGraph.h" 00045 00046 namespace PLearn { 00047 using namespace std; 00048 00049 MeshGraph::MeshGraph() : 00050 id( 0 ), 00051 resolution( 0 ), 00052 size( 0 ) 00053 {} 00054 00055 /* 00056 MeshGraph::MeshGraph( const MeshGraph& g ) : 00057 id( g.id ), 00058 resolution( g.resolution ), 00059 size( g.size ), 00060 faces( g.faces ), 00061 face_norm( g.face_norm ) 00062 {} 00063 */ 00064 00065 PLEARN_IMPLEMENT_OBJECT(MeshGraph, 00066 "Graph properties of a SurfaceMesh", 00067 "" 00068 ); 00069 00070 void MeshGraph::declareOptions(OptionList& ol) 00071 { 00072 declareOption(ol, "id", &MeshGraph::id, OptionBase::buildoption, 00073 "Graph identifier"); 00074 00075 declareOption(ol, "resolution", &MeshGraph::resolution, 00076 OptionBase::buildoption, 00077 "mesh resolution"); 00078 00079 declareOption(ol, "size", &MeshGraph::size, OptionBase::buildoption, 00080 "mesh size"); 00081 00082 declareOption(ol, "faces", &MeshGraph::faces, OptionBase::buildoption, 00083 "MeshFaces of the mesh"); 00084 00085 // Now call the parent class' declareOptions 00086 inherited::declareOptions(ol); 00087 } 00088 00089 void MeshGraph::build_() 00090 {} 00091 00092 void MeshGraph::build() 00093 { 00094 inherited::build(); 00095 build_(); 00096 } 00097 00098 void MeshGraph::makeDeepCopyFromShallowCopy(CopiesMap& copies) 00099 { 00100 inherited::makeDeepCopyFromShallowCopy(copies); 00101 00102 deepCopyField(faces, copies); 00103 } 00104 00105 /* 00106 MeshGraph& MeshGraph::operator=( const MeshGraph& g ) 00107 { 00108 id = g.id; 00109 resolution = g.resolution; 00110 size = g.size; 00111 faces = g.faces; 00112 face_norm = g.face_norm; 00113 00114 return *this; 00115 } 00116 */ 00117 00118 int MeshGraph::compare( const MeshGraph& g, const MeshGraph& h ) 00119 { 00120 return( g.id - h.id ); 00121 } 00122 00123 } // end of namespace PLearn