#include <WeightedGraph.h>
List of all members.
Classes |
| class | Vertex |
Public Member Functions |
| | WeightedGraph (int maxNumber=MAX_GRAPH_SIZE) |
| | WeightedGraph (const WeightedGraph &other) |
| WeightedGraph & | operator= (const WeightedGraph &other) |
| | ~WeightedGraph () |
| void | computePaths () |
| void | insertVertex (const Vertex &newVertex) throw ( logic_error ) |
| void | insertEdge (const string &v1, const string &v2, const int wt) throw ( logic_error ) |
| bool | retrieveVertex (const string &v, Vertex &vData) const |
| bool | getEdgeWeight (const string &v1, const string &v2, int &wt) const throw ( logic_error ) |
| void | removeVertex (const string &v) throw ( logic_error ) |
| void | removeEdge (const string &v1, const string &v2) throw ( logic_error ) |
| void | clear () |
| bool | areAllEven () const |
| bool | hasProperColoring () const |
| bool | isEmpty () const |
| bool | isFull () const |
| void | showShortestPaths () |
| void | showStructure () const |
Static Public Attributes |
| static const int | MAX_GRAPH_SIZE = 10 |
| static const int | INFINITE_EDGE_WT = INT_MAX |
| static const int | NOT_FOUND = -1 |
| static const int | LOOP_COST = 0 |
| static const char | DEFAULT_COLOR = 'R' |
Private Member Functions |
| void | setEdge (const int row, const int col, const int wt) |
| void | setPath (const int row, const int col, const int cost) |
| int | getEdge (const int row, const int col) const |
| int | getIndex (const string &v) const |
| int | getPath (const int row, const int col) const |
Private Attributes |
| int | maxSize |
| int | size |
| Vertex * | vertexList |
| int * | adjacencyMatrix |
| int * | pathMatrix |
Constructor & Destructor Documentation
WeightedGraph
The default constructor for the WeightedGraph ADT. Initializes an empty graph of the given parameterized size.
- Parameters:
-
| maxNumber | The number of vertices the WeightedGraph can contain when full. By default the value MAX_GRAPH_SIZE (defined in WeightedGraph.h)is given. |
- Precondition:
- There is available memory to instantiate a WeightedGraph object.
- The WeightedGraph is given a valid identifier.
- Postcondition:
- An empty WeightedGraph object will be instantiated.
WeightedGraph
The default constructor for the WeightedGraph ADT. Initializes an empty graph of the given parameterized size.
- Parameters:
-
| maxNumber | The number of vertices the WeightedGraph can contain when full. By default the value MAX_GRAPH_SIZE (defined in WeightedGraph.h)is given. |
- Precondition:
- There is available memory to instantiate a WeightedGraph object.
- The WeightedGraph is given a valid identifier.
- Weightedgraph other is a valid instantiation of a WeightedGraph object.
- Postcondition:
- A WeightedGraph object equivalent to the given parameter WeightedGraph other will be instantiated.
WeightedGraph
The destructor for the WeightedGraph ADT. Ensures all dynamic memory is returned.
- Precondition:
- *this was a properly instantiated WeightedGraph object.
- Postcondition:
- All dynamic memory will be returned.
- *this will be destructed.
Member Function Documentation
areAllEven
Determines if each vertex in the graph has an even degree, and then returns true if each vertex does have an even degree and false otherwise.
- Returns:
- hasEulerianChain The truth value of whether or not the graph has all even degree vertices (also indicates if there is a closed chain that uses all paths once). true if all vertices do have even degree, false otherwise.
- Precondition:
- *this is a valid instantiation of a WeightedGraph.
- Postcondition:
- The WeightedGraph will remain unchanged.
- The truth of all verticex having even degree is returned.
- Every vertex is iteratively checked.
- The number of edges each vertex has is checked.
- If any vertex is found to have an odd degree the check is halted.
- Return true if all vertices have even degree, return false otherwise. TODO refine this algorithm if possible.
clear
Empties the WeightedGraph of data.
- Precondition:
- A valid WeightedGraph object has been instantiated.
- Postcondition:
- The WeightedGraph will be emptied.
- The size of the data set is reduced to zero.
computePaths
Computes the shortest paths between the vertices of a graph and stores them in the graph's path matrix.
- Precondition:
- *this is a valid instantiation of a WeightedGraph
- The adjacency matrix is in a valid state.
- Postcondition:
- The shortest (lowest cost) paths between all vertices will be computed.
- The path costs will be stored in the path matrix.
- No record of what the shortest paths actually are will be kept, only the resulting cost.
Floyd's Algorithm is used as follows:
- Every vertex is iteratively considered as a "mutual" neighbor.
- Every vertex is iteratively considered for every given "mutual" vertex as a "start" vertex.
- Every other vertex is then iteratively considered for given "mutual" and "start" vertices, as an "end" vertex.
- A check is made for the existence of paths between the start vertex and the mutual vertex and between the mutual vertex and the end vertex.
- If such paths exist, then the cost of traversing the two paths described in the previous step (the "indirect" path) is compared with the cost of the path directly from the start vertex to the end vertex.
- If the indirect path is found to be cheaper than the direct one, then the direct one is replaced with the indirect one on the path matrix.
getEdge
Returns the edge weight at the given position at the specified location in the adjacency matrix.
- Parameters:
-
| row | The row index to be searched in the path matrix. |
| col | The column index to be searched in the path matrix. |
- Returns:
- weight
- Precondition:
- *this is a valid instantiation of a WeightedGraph.
- row and col are valid positions in the adjacency matrix.
- Postcondition:
- The WeightedGraph and all its members will remain unchanged.
- The index of the desired entry in the 1-D representation of the adjacency matrix is returned.
- The indices that correspond to a 2-D matrix can be converted using the formula: (row-index * number-of-columns) + column-index.
getEdgeWeight
Finds the edge wieght corresponding to the edge between two vertices of the given labels. The weight is then passes back by reference. true is retruned to indicate that the edge (or at least the two vertices that define it) exist in the graph. Otherwise, false is returned.
- Parameters:
-
| v1 | A label for the first vertex used to define an edge. |
| v2 | A label for the second vertex used to define an edge. |
| wt | The parameter used to pass back a weight of a sought edge. |
- Returns:
- result The truth value of whether an edge could be found in a graph, true if the edge does exist in the graph, false otherwise. Also indicates if the reference parameter int wt contains valid or undeterminate data.
- Precondition:
- *this is a valid instantiation of a WeightedGraph.
- The sought vertices v1 and v2 (and therefore the edge between them) should exist in the graph.
- Postcondition:
- If the edge exists in the graph, then its weight is copied into the int wt reference parameter to be passed back and true is returned.
- Otherwise, wt will be in an undetermined state and false is returned.
- The vertex list is searched for verticex with lables matching the two given ones.
- If found, their indices are used to locate the edge wait in the adjacency matrix.
- The edge weight is copied to the reference parameter wt.
- If either of the vertices is not found, then an exception is thrown to indicate that an invalid edge was sought.
- Exceptions:
-
| logic_error | Used to indicate that at least one of the given vertex labels does not exist in the graph, and therefore the edge does not exist. |
getIndex
Retrieves the index of a vertex in the vertex list for use as a coordinate in an adjacency matrix.
- Parameters:
-
| v | A string label used a a key for finding a desired vertex. |
- Returns:
- result The integer index of the sought vertex in the vertex list.
- Precondition:
- *this is a valid instantiation of a WeightedGraph.
- Postcondition:
- The WeightedGraph will remain unchanged.
- The index of the sought vertex in the vertex list is returned.
- If the vertex is not found, NOT_FOUND (defined in WeightedGraph.h) is returned to signal that a vertex with a label matching v was not found.
- A linear search is conducted to find a vertex in the vertex list with a label matching the given parameter string v.
getPath
Returns the path cost at the given position at the specified location in the path matrix.
- Parameters:
-
| row | The row index to be searched in the path matrix. |
| col | The column index to be searched in the path matrix. |
- Returns:
- pathCost
- Precondition:
- *this is a valid instantiation of a WeightedGraph.
- row and col are valid positions in the adjacency matrix.
- Postcondition:
- The WeightedGraph and all its members will remain unchanged.
- The index of the desired entry in the 1-D representation of the adjacency matrix is returned.
- The indices that correspond to a 2-D matrix can be converted using the formula: (row-index * number-of-columns) + column-index.
hasProperColoring
Returns the truth value of whether or not the graph has a valid vertex coloring. true is returned if no vertex is adjacent to another vertex of same color, returns false otherwise.
- Returns:
- hasValidColoring The truth value of whether or not the graph has a valid vertex coloring.
- Precondition:
- *this is a valid instantiation of a WeightedGraph.
- The vertices are all colored with valid colors.
- Postcondition:
- The WeightedGraph will remain unchanged.
- If the graph has a valid vertex coloring, true is returned. Otherwise, false is returned.
- Every vertex is checked to see if it has the same color as any neighbors.
- If a pair of neighbors are found to have the same color, the check is halted.
- If no pair of neighbors are found to have the same color, then true is returned.
- If any pair of neighbors is found to have the same color, false is returned. TODO refine this algorithm if possible.
insertEdge
Inserts an undirected edge of the given weight between the given vertices.
- Parameters:
-
| v1 | The label of the first vertex in the pair defining the edge. |
| v2 | The label of the second vertex in the pair defining the edge. |
| wt | The weight of the edge to be updated or added. |
- Precondition:
- *this is a properly instantiated WeightedGraph.
- The graph contains at least two vertices.
- The vertices that define the edge should be present in the graph.
- Postcondition:
- The weighted edge will be added to the graph. That is, the adjacency matrix will contain the updated/new edge weight in the two matrix locations pertaining to the given vertices (because this is not a digraph).
- If either of the given vertex parameters are not found, then an exception of type logic_error is thrown to indicate such.
- The vertex list is searched for both vertices and their index is recorded.
- The found indices are used to locate the appropriate locations in the adjacency matrix.
- The adjacency matrix is then updated with the appropriate edge weight.
- If either of the vertices is not found in the graph, then an exception of type logic_error is thrown to indicate that the edge cannot be added between vertices that do not exist in the graph.
- Exceptions:
-
| logic_error | This exception is used to report that the edge cannot be added between vertices that do not exist in the graph. |
insertVertex
Adds a vertex to the graph if there is room in the list. An exception is thrown if parameter Vertex newVertex cannot be added. No edges are added, just a vertex.
- Parameters:
-
| newVertex | A new vertex to be added to the graph. |
- Precondition:
- A valid WeightedGraph object has been instantiated.
- The WeightedGraph has not been filled to maximum capacity.
- Postcondition:
- If possible, Vertex newVertex is added to the end of the vertexList array member.
- If the graph is full, an exception of type logic_error is thrown to indicate that the graph is full.
- If the vertexList array member is not full, then the size of the list is increased by one and the vertex is added in the last spot in the list.
- A row of "non-edges" is then added to the adjacencyMatrix array member.
- An edge with the weight of a loop cost is added where the new vertex intersects with itself in the matrix.
- A column of "non_edges" is also appended to the matrix.
- If the vertexList was full, then an exception of type logic_error is thrown to indicate that the WeightedGraph is full.
- Exceptions:
-
isEmtpy
Returns the truth of the emptiness of the graph, true if empty, false otherwise.
- Returns:
- empty The truth of the graph being empty.
- Precondition:
- *this is a valid instantiation of a WeightedGraph.
- The size member of *this is in a valid state.
- Postcondition:
- The truth of the emptiness of the graph is returned.
isFull
Returns the truth of the fullness of the graph, true if full, false otherwise.
- Returns:
- full The truth of the graph being full.
- Precondition:
- *this is a valid instantiation of a WeightedGraph.
- The size member of *this is in a valid state.
- Postcondition:
- The truth of the fullness of the graph is returned.
operator=
The overloaded assignment operator. Clones the data in the given parameter WeightedGraph other into *this.
- Parameters:
-
- Returns:
- *this A reference to this for multiple assignments on the same line.
- Precondition:
- Both *this and other are valid WeightedGraph objects.
- Postcondition:
- *this will be an equivalent object to other. All data in *this will be a clone of that in other.
- If the given parameter other is *this, no action is taken.
- If WeightedGraph other is of different size, *this is resized.
- The data in this is then made equivalent to that of other, size and all.
removeEdge
Removes an edge from the graph by giving it an "infinite" weight. (The "infinite" weight is the maximum integer value defined in climits)
- Parameters:
-
| v1 | A label corresponding to the first vertex that defines an edge. |
| v2 | A label corresponding to the second vertex that defines an edge. |
- Precondition:
- *this is a valid instantiation of a WeightedGraph.
- Vertices with labels corresponding to the parameters v1 and v2 should exist in the graph.
- Postcondition:
- If the edge exists in the graph, it is "removed" by giving it an "infinite" weight.
- If either of the given vertex labels are not present in the vertex list, an exception is thrown to indicate that an invalid edge was sought.
- The insertEdge function is called to "remove" the edge by giving it an infinite weight. This will prevent duplication of code.
- If the either of the vertices that define the edge can't be found, then an exception is thrown to indicate such.
- Exceptions:
-
| logic_error | Used to indicate that an invalid edge was chosen because at least one of the given vertex labels does not correspond to an existing vertex. |
removeVertex
Removes a vertex from the vertex list and resizes the adjacency matrix to remove any edges that were associated with the vertex.
- Parameters:
-
| v | A label corresponding to the vertex to be removed. |
- Precondition:
- *this is a valid instantiation of a WeightedGraph.
- The given label parameter should correspond to a vertex contained in the vertex list of the graph.
- Postcondition:
- The vertex corresponding to the given label will be removed.
- Data corresponding to edges shared by the removed vertex and other vertices will be removed and the adjacency matrix will be resized appropriately.
- The new size of the graph is updated.
- If the given label does not correspond to a given vertex, an exception is thrown to indicate this.
- The sought vertex is first located in the vertex list and its index is saved.
- The size of the graph is decremented.
- The vertex list is then condensed by shifting all elements in the list after the removed vertex over.
- The rows of the adjacency matrix that appear after the row corresponding to the removed vertex are moved up to replace the "removed" row.
- The columns that appear after the one corresponding to the removed vertex are shifted left in order to replace the "removed" column.
- If the given label is not found in the graph, an exception is thrown, indicating this.
- Exceptions:
-
| logic_error | Used to indicate that an attemp to remove a vertex that is not present in the graph was made. |
retriveVertex
Searches the vertex list for a particular vertex label. Passes the vertex back by reference if it is found.
- Parameters:
-
| v | A string used to identify a sought vertex. |
| vData | An object of type Vertex intended to contain the data of the sought vertex if the vertex with a label matching the parameter label is found. |
- Returns:
- result The truth value of whether the sought vertex was found. If the vertex was found and vData contains that vertex's information, then true is returned. Otherwise, false is returned and vData is in an undetermined state.
- Precondition:
- *this is a valid instantiation of a weighted graph.
- vData is a properly constructed Vertex object.
- A vertex with a label matching the one given as a parameter should exist in the graph.
- Postcondition:
- If a vertex with a matching label is found, then its data is copied into the given reference parameter Vertex vData and true is returned. Otherwise, false is returned and vData will be in an undetermined state.
- The vertex list is searched for a vertex with a label matching the given parameter.
- If such a vertex is found, its data is copied to parameter Vertex vData and true is returned.
- If a vertex with such a label is not found, then parameter Vertex vData will be in an undetermined state and false is returned.
setEdge
Given appropriate adjacency matrix coordinates, sets the weight of the edge between two vertices.
- Parameters:
-
| row | The row index of the first vertex defining the edge. |
| col | The column index of the second vertex defining the edge. |
| wt | The weight the sought edge will be given. |
- Precondition:
- *this is a valid instantiation of a WeightedGraph.
- Parameters row and col are valid indices corresponding to a location in the adjacency matrix.
- Postcondition:
- The location in the adjacency matrix representing the edge from the row index vertex to the column index vertex is given the parameterized weight.
- The indices that correspond to a 2-D matrix can be converted using the formula: (row-index * number-of-columns) + column-index.
- The resulting index is used to set the edge's weight.
setPath
Given appropriate adjacency matrix coordinates, sets the cost of the path between two vertices.
- Parameters:
-
| row | The row index of the first vertex defining the path. |
| col | The column index of the second vertex defining the path. |
| cost | The cost the sought path will be given. |
- Precondition:
- *this is a valid instantiation of a WeightedGraph.
- Parameters row and col are valid indices corresponding to a location in the path matrix.
- Postcondition:
- The location in the path matrix representing the edge from the row index vertex to the column index vertex is given the value of the parameter cost.
- The indices that correspond to a 2-D matrix can be converted using the formula: (row-index * number-of-columns) + column-index.
- The resulting index is used to set the path's cost.
showShortestPaths
Computes and displays the graphs path matrix.
- Precondition:
- *this is a valid instantiation of a WeightedGraph
- The adjacency matrix is in a valid state.
- Postcondition:
- The WeightedGraph will remain unchanged.
- The shortest (lowest cost) paths between all vertices will be re-computed.
- The shortest path matrix will be displayed.
- The shortest paths are computed and stored in the pathMatrix data member.
- Then the path matrix is displayed one row at a time.
- If the graph is actually empty, this is stated.
showStructure
Outputs a graph's vertex list and adjacency matrix. This operation is intended for testing/debugging purposes only.
PROVIDED BY THE LAB MANUAL PACKAGE
- Precondition:
- *this is a valid instantiation of a WeightedGraph.
- Postcondition:
- *this will remain unchanged.
- The vertex list an adjacency matrix for the graph will be displayed.
- The weighted graph will remain unchanged.
- A vertex list is displayed, both labels and colors
- Then the adjacency matrix is displayed one row at a time.
- If the graph is actually empty, this is stated.
Member Data Documentation
The documentation for this class was generated from the following files:


#The website for The Magic School Bot, our entry in the Annual UBC Engineering Physics Summer Robotics Competition.


- The 'br' tag does and end of line, and if we use a bunch of them, spaces
- The 'hr' tag, defines a thematic change in content
- Hr added before this element of the list
- The 'ul' tag, creates an unordered list, example below
-
- the 'ol' tag, creates an ordered list, as used to do this exercise
- The 'strong' tag is a phrase tag. It defines important text
- The 'li' tag is used to define list items
- The 'b' tag allows to use Bold text
- The 'em' tag renders as emphasized text
- The 'i' tag renders italic text
- The 'u' tag renders undelined text
- The 'h1' tag is a
Header Tag
actually the biggest one
- The 'h6' tag is a
Header Tag
actually the smalles one
- The 'tr' tag defines a table row in a HTML table, see Exmaple.html where a table is used.
- The 'th' tag defines a header cell in a HTML table, see again Exmaple.html where a table is used.
- The 'td' tag defines a standard cell in a HTML table, see again Exmaple.html where a table is used.
- The 'sub' tag renders subscripted text
- The 'sup' tag renders superscripted text
- The 'legend' tag defines a caption for the 'fieldsed' element. See table below


Discover Canberra's most
astonishing building
These Walls cannot be accessed from a desktop, please use a tablet or mobile device.
Discover Canberra's most
astonishing building
Get your first clue!
The building is a combination of two styles: an inter-war stripped classical form with extensive Australian Art Deco detailing and decorative elements. The building is faced in sandstone and has a symmetrical U-shaped layout enclosing a four-sided courtyard.
What makes the building so eye-catching (aside from its superb condition) are the strong and consistent use of motifs to reflect the building’s original use as the Australian Institute of Anatomy.
Dr (later Sir) Colin MacKenzie, a distinguished medical scientist, believed that Australia’s unique fauna was destined for extinction. So, he offered to donate his large specimen collection to the Commonwealth, if in return, they established a national anatomical museum.
The building is a combination of two styles: an inter-war stripped classical form with extensive Australian Art Deco detailing and decorative elements. The building is faced in sandstone and has a symmetrical U-shaped layout enclosing a four-sided courtyard.
What makes the building so eye-catching (aside from its superb condition) are the strong and consistent use of motifs to reflect the building’s original use as the Australian Institute of Anatomy.
The emergence of the modern movement was the most significant architectural development during the years between the two World Wars. However, it was a time of intellectual and aesthetic tension between Tradition and Modernism, between people nostalgic for the visual symbols of a pre-industrial past and those who favoured the clean but stark lines and new technologies that characterised Modernism.
The inter-war Art Deco style celebrated the exciting and dynamic aspects of the Machine Age, in an inclusive style that embraced new materials and incorporated graphic decorative elements and modern, eye-catching materials from the past. This approach appealed to more people on an emotional level. So, while not strictly a style of Modernism, there are similarities in influence.
The term comes from a French exhibition in 1925 of ‘Arts Decoratifs’ but did not enter general use until the 1960s to describe a range of inter-war styles. As a term, it captures the spirit of an age when people wanted to put the tragedies and hardships of World War I behind them, to embrace a glamorous, adventurous and elegant future. Art Deco encapsulates changes in style, aesthetics and technology that influenced every visual medium in the 1920s and 1930s.
The style is characterised by a marriage between form and function; by symmetery and balance; by simple, clean lines in buildings, transport, household items and industrial design; and by distinctive decorative embellishments.
Art Deco celebrated the benefits of the Machine Age: industrialisation, mass production, new technologies, quality materials and vibrant colours. It was an era of sky scrapers, ocean liners, railways, motor cars, electricity, bright lights, film, radio and mass entertainment. It marked the beginnings of consumerism.
No favourites.
Feature 1
Feature 2
Feature 3
Feature 5
Feature 8
Feature 1
Feature 2
Feature 3
Feature 4
Feature 5
Feature 6
Feature 7
Feature 8
Feature 9
Are you sure you've found this feature?
Are you sure you you want to be shown this feature?
Carved stone open-mouthed frilled neck lizards framed in stylised boomerangs surround the geometrically patterned front door.
Use #NFSAfront when you share it on Instagram to get your photo featured below.
If you look around the front door, blue, yellow and green stylised designs inspired by Indigenous Australian bark paintings are displayed in the tiled panels between the windows. Goannas, ferns and waratahs have been carved into the capitals of the columns of the curved portico at the building’s entrance.
Geometric Art Deco patterns are featured throughout the building, in suspended light fittings in the gallery and in the heating and air vents.
Use #NFSAgeometric when you share it on Instagram to get your photo featured below.
The Southern Gallery, now housing exhibition material from the NFSA’s national audiovisual collection, was originally used to display skeletons, casts of prehistoric skulls, anatomical specimens and models.
The geometrically patterned marble floor is inspired by Indigenous Australian art. Black marble in the floor and half-columns was quarried from approximately 300 metres away at Acton Flats, now beneath Lake Burley Griffin. This is the only building in Canberra to have this type of marble, as the quarry was virtually exhausted by the end of the project.
Use #NFSAquarry when you share it on Instagram to get your photo featured below.
The creation of the Australian Institute of Anatomy also involved the establishment of its own unique typeface. Examples can be seen in the front building signage and on the exit signs throughout the building.
The large stained-glass skylight featuring a stylised platypus is a rare example of glazing from the British company Luxfer.
Use #NFSAluxfer when you share it on Instagram to get your photo featured below.
The platypus features symbolically throughout the building as Sir Colin MacKenzie believed the ancient monotreme was the link between mammal, bird and reptile.
Along the wall are face masks of famous scientists, including two made from death masks. The Sir Colin MacKenzie commemorative plaque has his ashes interred behind it.
Use #NFSAcolin when you share it on Instagram to get your photo featured below.
The exterior of the building is faced in Hawkesbury sandstone quarried near Gosford, NSW. The red granite at the base of the exterior and front steps is from Tarana (near Bathurst), NSW and provides a warm contrast.
The walls feature decorative capitals on pilasters with plaster castings of the platypus, kookaburra, tree kangaroo, koala and wombat, painted in bronze to resemble bronze cast sculptures.
Use #NFSAbronze when you share it on Instagram to get your photo featured below.
The Northern Gallery is now home to the Arc Cinema, which was developed with full sympathy for the building’s unique design and historical significance. Originally it was devoted to displays of applied anatomy, mainly of Australian fauna specimens.
The Theatrette colour scheme is characteristic of early twentieth century theatre halls and is accented by the rich jarrah hardwood floors. The wooden stage includes the original blackboard and screen. The Art Deco patterns are continued in the light fittings and door and wall panelling.
Use #NFSAred when you share it on Instagram to get your photo featured below.
Newly refurbished, the Theatrette now highlights the original lecture theatre features and can seat up to 114 people.
Did you know there are ghost sightings reported in the building? – stemming from the period it was the Australian Institute of Anatomy. The NFSA Ghost Tour starts in the Theatrette.
The memorial fishpond was dedicated to Sir Colin MacKenzie and was a gift from Lady MacKenzie. It features an ornamental pool with a bronze platypus sculpture and plaque.
Use #NFSAlady when you share it on Instagram to get your photo featured below.
In 1988, noted Canberra garden designer Cedric Bryant re-landscaped the courtyard, keeping with 1920s Art Deco garden traditions. This garden was opened by Hazel Hawke, the then wife of former Prime Minister Bob Hawke, in September 1991.
Wombat heads within plaques are located by the arches that surround the courtyard and continue the symmetry of the building.
Use #NFSAarch when you share it on Instagram to get your photo featured below.
The fragrant garden, near the café, includes daphne and various coloured lavenders planted under a spreading loquat tree, a species originating from China and Japan which bears abundant fruit each season.
The corner diagonally opposite is predominantly shaded and features winter/spring flowers including camellias, azaleas and pieris.
You can go back and view all the features, or read about the building history and architecture.


58
1 Yahweh said to me,
"Shout loudly!
Shout like a loud trumpet!
Shout to warn my Israelite people about their sins!
2 They worship me every day;
they come to my temple because they say that they are eager to know what I want them to do.
They act as though they were a nation that does things that are righteous,
that would never abandon the commands of me, their God.
They request me to decide matters justly,
and they delight in coming to worship me.
3 They say, 'We have fasted to please you,
but you did not notice our doing that.
We humbled ourselves,
but you did not pay any attention!'
I will tell you why I did not pay attention.

Doing things like that while you fast will certainly not cause me to hear your prayers where I am, high in heaven.
5 You bow your heads
like the tops of reeds bend when the wind blows,
and you wear rough clothes and cover your heads with ashes like people do when they are grieving.
That is what you do when you are fasting,
but do you really think that will please me?
6 No, that is not the kind of fasting that I desire.

Give clothes to those who do not have clothes,
and do not hide yourself from your relatives who need help from you.
8 If you do those things,
what you do for others will be like a light that shines when it dawns.
The troubles that have been caused by your sins will end quickly.
Others will know about your righteous behavior,
and the glorious presence of Yahweh will protect you from behind
like I protected the Israelite people when they left Egypt.
9 Then you will call out to me,
and I will quickly answer and say, 'I am here to help you.'
Stop oppressing people;
stop falsely accusing people;
and stop saying evil things about people.
10 Give food to those who are hungry,
and give to people who are afflicted the things that they need.
Your doing that will be like a light that shines in the darkness;
instead of doing evil to people, the good things you do for people will be like the sunshine at noontime.
11 Yahweh will guide you continually,
and he will give you good things to satisfy you.
He will enable you to remain strong and healthy.
You will be like a garden that is well watered,
like a spring that never dries up.
12 Your people will rebuild the cities that were destroyed long ago;
they will build houses on top of the old foundations.
People will say that you are the ones who are repairing the holes in the city walls,
and who are repairing the streets where people live.
13 Do not travel on the Sabbath days,
and on Sabbath days do not do only the things that you delight to do.
Enjoy the Sabbath days, and consider them to be delightful.
The Sabbath days are my holy days.
Honor me, Yahweh, in everything that you do on the Sabbath days.
Do not talk about and do things to please yourselves.
If you do all the things that I have just now told you to do,
14 I will enable you to be joyful.
I will greatly honor you;
it will be as though you were riding with me above the highest mountains!
I will give to you the blessings that I gave to your ancestor Jacob.
Those things will surely happen because I, Yahweh, have said it."